Addition of BLESS_ENCHT_AM_DOWN support.

Contributed by CostyKiller.
This commit is contained in:
MobiusDevelopment
2021-10-20 01:55:47 +00:00
parent cfc1d03d13
commit eaf795e34b
40 changed files with 126 additions and 65 deletions

View File

@@ -1172,7 +1172,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1186,7 +1186,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1200,7 +1200,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>

View File

@@ -43,6 +43,8 @@ public abstract class AbstractEnchantItem
EtcItemType.BLESS_ENCHT_WP, EtcItemType.BLESS_ENCHT_WP,
EtcItemType.ENCHT_AM, EtcItemType.ENCHT_AM,
EtcItemType.ENCHT_WP, EtcItemType.ENCHT_WP,
EtcItemType.ENCHT_WP_DOWN,
EtcItemType.ENCHT_AM_DOWN,
EtcItemType.GIANT_ENCHT_AM, EtcItemType.GIANT_ENCHT_AM,
EtcItemType.GIANT_ENCHT_WP, EtcItemType.GIANT_ENCHT_WP,
EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM, EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM,

View File

@@ -135,10 +135,6 @@ public class EnchantScroll extends AbstractEnchantItem
{ {
return false; return false;
} }
else if ((isBlessedDown() && !supportItem.isBlessed()) || (!isBlessedDown() && supportItem.isBlessed()))
{
return false;
}
else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant())) else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant()))
{ {
return false; return false;

View File

@@ -27,6 +27,7 @@ public class EnchantSupportItem extends AbstractEnchantItem
{ {
private final boolean _isWeapon; private final boolean _isWeapon;
private final boolean _isBlessed; private final boolean _isBlessed;
private final boolean _isDown;
private final boolean _isGiant; private final boolean _isGiant;
private final ItemType type; private final ItemType type;
@@ -34,8 +35,9 @@ public class EnchantSupportItem extends AbstractEnchantItem
{ {
super(set); super(set);
type = getItem().getItemType(); type = getItem().getItemType();
_isWeapon = (type == EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isWeapon = (type == EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.ENCHT_WP_DOWN) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isBlessed = (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isBlessed = (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isDown = (type == EtcItemType.ENCHT_AM_DOWN) || (type == EtcItemType.ENCHT_WP_DOWN);
_isGiant = (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isGiant = (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
} }
@@ -50,6 +52,11 @@ public class EnchantSupportItem extends AbstractEnchantItem
return _isBlessed; return _isBlessed;
} }
public boolean isDown()
{
return _isDown;
}
public boolean isGiant() public boolean isGiant()
{ {
return _isGiant; return _isGiant;

View File

@@ -42,6 +42,8 @@ public enum EtcItemType implements ItemType
MATURECROP, MATURECROP,
ENCHT_WP, ENCHT_WP,
ENCHT_AM, ENCHT_AM,
ENCHT_AM_DOWN,
ENCHT_WP_DOWN,
GIANT_ENCHT_WP, GIANT_ENCHT_WP,
GIANT_ENCHT_AM, GIANT_ENCHT_AM,
BLESS_ENCHT_WP, BLESS_ENCHT_WP,
@@ -71,7 +73,6 @@ public enum EtcItemType implements ItemType
SOULSHOT, SOULSHOT,
SHAPE_SHIFTING_WP, SHAPE_SHIFTING_WP,
BLESS_SHAPE_SHIFTING_WP, BLESS_SHAPE_SHIFTING_WP,
// EIT_RESTORE_SHAPE_SHIFTING_WP,
SHAPE_SHIFTING_WP_FIXED, SHAPE_SHIFTING_WP_FIXED,
SHAPE_SHIFTING_AM, SHAPE_SHIFTING_AM,
BLESS_SHAPE_SHIFTING_AM, BLESS_SHAPE_SHIFTING_AM,

View File

@@ -310,11 +310,12 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.broadcastUserInfo(); player.broadcastUserInfo();
} }
if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isBlessed())) if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed()))
{ {
// blessed enchant - enchant value down by 1 // blessed enchant - enchant value down by 1
if (scrollTemplate.isBlessedDown()) if (scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()))
{ {
player.sendMessage("The enchant value is decreased by 1.");
item.setEnchantLevel(item.getEnchantLevel() - 1); item.setEnchantLevel(item.getEnchantLevel() - 1);
} }
else // blessed enchant - clear enchant value else // blessed enchant - clear enchant value

View File

@@ -1182,7 +1182,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1196,7 +1196,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1210,7 +1210,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>

View File

@@ -43,6 +43,8 @@ public abstract class AbstractEnchantItem
EtcItemType.BLESS_ENCHT_WP, EtcItemType.BLESS_ENCHT_WP,
EtcItemType.ENCHT_AM, EtcItemType.ENCHT_AM,
EtcItemType.ENCHT_WP, EtcItemType.ENCHT_WP,
EtcItemType.ENCHT_WP_DOWN,
EtcItemType.ENCHT_AM_DOWN,
EtcItemType.GIANT_ENCHT_AM, EtcItemType.GIANT_ENCHT_AM,
EtcItemType.GIANT_ENCHT_WP, EtcItemType.GIANT_ENCHT_WP,
EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM, EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM,

View File

@@ -135,10 +135,6 @@ public class EnchantScroll extends AbstractEnchantItem
{ {
return false; return false;
} }
else if ((isBlessedDown() && !supportItem.isBlessed()) || (!isBlessedDown() && supportItem.isBlessed()))
{
return false;
}
else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant())) else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant()))
{ {
return false; return false;

View File

@@ -27,6 +27,7 @@ public class EnchantSupportItem extends AbstractEnchantItem
{ {
private final boolean _isWeapon; private final boolean _isWeapon;
private final boolean _isBlessed; private final boolean _isBlessed;
private final boolean _isDown;
private final boolean _isGiant; private final boolean _isGiant;
private final ItemType type; private final ItemType type;
@@ -34,8 +35,9 @@ public class EnchantSupportItem extends AbstractEnchantItem
{ {
super(set); super(set);
type = getItem().getItemType(); type = getItem().getItemType();
_isWeapon = (type == EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isWeapon = (type == EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.ENCHT_WP_DOWN) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isBlessed = (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isBlessed = (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isDown = (type == EtcItemType.ENCHT_AM_DOWN) || (type == EtcItemType.ENCHT_WP_DOWN);
_isGiant = (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isGiant = (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
} }
@@ -50,6 +52,11 @@ public class EnchantSupportItem extends AbstractEnchantItem
return _isBlessed; return _isBlessed;
} }
public boolean isDown()
{
return _isDown;
}
public boolean isGiant() public boolean isGiant()
{ {
return _isGiant; return _isGiant;

View File

@@ -42,6 +42,8 @@ public enum EtcItemType implements ItemType
MATURECROP, MATURECROP,
ENCHT_WP, ENCHT_WP,
ENCHT_AM, ENCHT_AM,
ENCHT_AM_DOWN,
ENCHT_WP_DOWN,
GIANT_ENCHT_WP, GIANT_ENCHT_WP,
GIANT_ENCHT_AM, GIANT_ENCHT_AM,
BLESS_ENCHT_WP, BLESS_ENCHT_WP,
@@ -71,7 +73,6 @@ public enum EtcItemType implements ItemType
SOULSHOT, SOULSHOT,
SHAPE_SHIFTING_WP, SHAPE_SHIFTING_WP,
BLESS_SHAPE_SHIFTING_WP, BLESS_SHAPE_SHIFTING_WP,
// EIT_RESTORE_SHAPE_SHIFTING_WP,
SHAPE_SHIFTING_WP_FIXED, SHAPE_SHIFTING_WP_FIXED,
SHAPE_SHIFTING_AM, SHAPE_SHIFTING_AM,
BLESS_SHAPE_SHIFTING_AM, BLESS_SHAPE_SHIFTING_AM,

View File

@@ -310,11 +310,12 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.broadcastUserInfo(); player.broadcastUserInfo();
} }
if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isBlessed())) if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed()))
{ {
// blessed enchant - enchant value down by 1 // blessed enchant - enchant value down by 1
if (scrollTemplate.isBlessedDown()) if (scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()))
{ {
player.sendMessage("The enchant value is decreased by 1.");
item.setEnchantLevel(item.getEnchantLevel() - 1); item.setEnchantLevel(item.getEnchantLevel() - 1);
} }
else // blessed enchant - clear enchant value else // blessed enchant - clear enchant value

View File

@@ -1181,7 +1181,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1195,7 +1195,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1209,7 +1209,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>

View File

@@ -43,6 +43,8 @@ public abstract class AbstractEnchantItem
EtcItemType.BLESS_ENCHT_WP, EtcItemType.BLESS_ENCHT_WP,
EtcItemType.ENCHT_AM, EtcItemType.ENCHT_AM,
EtcItemType.ENCHT_WP, EtcItemType.ENCHT_WP,
EtcItemType.ENCHT_WP_DOWN,
EtcItemType.ENCHT_AM_DOWN,
EtcItemType.GIANT_ENCHT_AM, EtcItemType.GIANT_ENCHT_AM,
EtcItemType.GIANT_ENCHT_WP, EtcItemType.GIANT_ENCHT_WP,
EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM, EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM,

View File

@@ -135,10 +135,6 @@ public class EnchantScroll extends AbstractEnchantItem
{ {
return false; return false;
} }
else if ((isBlessedDown() && !supportItem.isBlessed()) || (!isBlessedDown() && supportItem.isBlessed()))
{
return false;
}
else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant())) else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant()))
{ {
return false; return false;

View File

@@ -27,6 +27,7 @@ public class EnchantSupportItem extends AbstractEnchantItem
{ {
private final boolean _isWeapon; private final boolean _isWeapon;
private final boolean _isBlessed; private final boolean _isBlessed;
private final boolean _isDown;
private final boolean _isGiant; private final boolean _isGiant;
private final ItemType type; private final ItemType type;
@@ -34,8 +35,9 @@ public class EnchantSupportItem extends AbstractEnchantItem
{ {
super(set); super(set);
type = getItem().getItemType(); type = getItem().getItemType();
_isWeapon = (type == EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isWeapon = (type == EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.ENCHT_WP_DOWN) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isBlessed = (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isBlessed = (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isDown = (type == EtcItemType.ENCHT_AM_DOWN) || (type == EtcItemType.ENCHT_WP_DOWN);
_isGiant = (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isGiant = (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
} }
@@ -50,6 +52,11 @@ public class EnchantSupportItem extends AbstractEnchantItem
return _isBlessed; return _isBlessed;
} }
public boolean isDown()
{
return _isDown;
}
public boolean isGiant() public boolean isGiant()
{ {
return _isGiant; return _isGiant;

View File

@@ -42,6 +42,8 @@ public enum EtcItemType implements ItemType
MATURECROP, MATURECROP,
ENCHT_WP, ENCHT_WP,
ENCHT_AM, ENCHT_AM,
ENCHT_AM_DOWN,
ENCHT_WP_DOWN,
GIANT_ENCHT_WP, GIANT_ENCHT_WP,
GIANT_ENCHT_AM, GIANT_ENCHT_AM,
BLESS_ENCHT_WP, BLESS_ENCHT_WP,
@@ -71,7 +73,6 @@ public enum EtcItemType implements ItemType
SOULSHOT, SOULSHOT,
SHAPE_SHIFTING_WP, SHAPE_SHIFTING_WP,
BLESS_SHAPE_SHIFTING_WP, BLESS_SHAPE_SHIFTING_WP,
// EIT_RESTORE_SHAPE_SHIFTING_WP,
SHAPE_SHIFTING_WP_FIXED, SHAPE_SHIFTING_WP_FIXED,
SHAPE_SHIFTING_AM, SHAPE_SHIFTING_AM,
BLESS_SHAPE_SHIFTING_AM, BLESS_SHAPE_SHIFTING_AM,

View File

@@ -310,11 +310,12 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.broadcastUserInfo(); player.broadcastUserInfo();
} }
if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isBlessed())) if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed()))
{ {
// blessed enchant - enchant value down by 1 // blessed enchant - enchant value down by 1
if (scrollTemplate.isBlessedDown()) if (scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()))
{ {
player.sendMessage("The enchant value is decreased by 1.");
item.setEnchantLevel(item.getEnchantLevel() - 1); item.setEnchantLevel(item.getEnchantLevel() - 1);
} }
else // blessed enchant - clear enchant value else // blessed enchant - clear enchant value

View File

@@ -1181,7 +1181,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1195,7 +1195,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1209,7 +1209,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>

View File

@@ -43,6 +43,8 @@ public abstract class AbstractEnchantItem
EtcItemType.BLESS_ENCHT_WP, EtcItemType.BLESS_ENCHT_WP,
EtcItemType.ENCHT_AM, EtcItemType.ENCHT_AM,
EtcItemType.ENCHT_WP, EtcItemType.ENCHT_WP,
EtcItemType.ENCHT_WP_DOWN,
EtcItemType.ENCHT_AM_DOWN,
EtcItemType.GIANT_ENCHT_AM, EtcItemType.GIANT_ENCHT_AM,
EtcItemType.GIANT_ENCHT_WP, EtcItemType.GIANT_ENCHT_WP,
EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM, EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM,

View File

@@ -135,10 +135,6 @@ public class EnchantScroll extends AbstractEnchantItem
{ {
return false; return false;
} }
else if ((isBlessedDown() && !supportItem.isBlessed()) || (!isBlessedDown() && supportItem.isBlessed()))
{
return false;
}
else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant())) else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant()))
{ {
return false; return false;

View File

@@ -27,6 +27,7 @@ public class EnchantSupportItem extends AbstractEnchantItem
{ {
private final boolean _isWeapon; private final boolean _isWeapon;
private final boolean _isBlessed; private final boolean _isBlessed;
private final boolean _isDown;
private final boolean _isGiant; private final boolean _isGiant;
private final ItemType type; private final ItemType type;
@@ -34,8 +35,9 @@ public class EnchantSupportItem extends AbstractEnchantItem
{ {
super(set); super(set);
type = getItem().getItemType(); type = getItem().getItemType();
_isWeapon = (type == EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isWeapon = (type == EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.ENCHT_WP_DOWN) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isBlessed = (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isBlessed = (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isDown = (type == EtcItemType.ENCHT_AM_DOWN) || (type == EtcItemType.ENCHT_WP_DOWN);
_isGiant = (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isGiant = (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
} }
@@ -50,6 +52,11 @@ public class EnchantSupportItem extends AbstractEnchantItem
return _isBlessed; return _isBlessed;
} }
public boolean isDown()
{
return _isDown;
}
public boolean isGiant() public boolean isGiant()
{ {
return _isGiant; return _isGiant;

View File

@@ -42,6 +42,8 @@ public enum EtcItemType implements ItemType
MATURECROP, MATURECROP,
ENCHT_WP, ENCHT_WP,
ENCHT_AM, ENCHT_AM,
ENCHT_AM_DOWN,
ENCHT_WP_DOWN,
GIANT_ENCHT_WP, GIANT_ENCHT_WP,
GIANT_ENCHT_AM, GIANT_ENCHT_AM,
BLESS_ENCHT_WP, BLESS_ENCHT_WP,
@@ -71,7 +73,6 @@ public enum EtcItemType implements ItemType
SOULSHOT, SOULSHOT,
SHAPE_SHIFTING_WP, SHAPE_SHIFTING_WP,
BLESS_SHAPE_SHIFTING_WP, BLESS_SHAPE_SHIFTING_WP,
// EIT_RESTORE_SHAPE_SHIFTING_WP,
SHAPE_SHIFTING_WP_FIXED, SHAPE_SHIFTING_WP_FIXED,
SHAPE_SHIFTING_AM, SHAPE_SHIFTING_AM,
BLESS_SHAPE_SHIFTING_AM, BLESS_SHAPE_SHIFTING_AM,

View File

@@ -312,11 +312,12 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.broadcastUserInfo(); player.broadcastUserInfo();
} }
if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isBlessed())) if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed()))
{ {
// blessed enchant - enchant value down by 1 // blessed enchant - enchant value down by 1
if (scrollTemplate.isBlessedDown()) if (scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()))
{ {
player.sendMessage("The enchant value is decreased by 1.");
item.setEnchantLevel(item.getEnchantLevel() - 1); item.setEnchantLevel(item.getEnchantLevel() - 1);
} }
else // blessed enchant - clear enchant value else // blessed enchant - clear enchant value

View File

@@ -1181,7 +1181,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1195,7 +1195,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1209,7 +1209,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>

View File

@@ -43,6 +43,8 @@ public abstract class AbstractEnchantItem
EtcItemType.BLESS_ENCHT_WP, EtcItemType.BLESS_ENCHT_WP,
EtcItemType.ENCHT_AM, EtcItemType.ENCHT_AM,
EtcItemType.ENCHT_WP, EtcItemType.ENCHT_WP,
EtcItemType.ENCHT_WP_DOWN,
EtcItemType.ENCHT_AM_DOWN,
EtcItemType.GIANT_ENCHT_AM, EtcItemType.GIANT_ENCHT_AM,
EtcItemType.GIANT_ENCHT_WP, EtcItemType.GIANT_ENCHT_WP,
EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM, EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM,

View File

@@ -135,10 +135,6 @@ public class EnchantScroll extends AbstractEnchantItem
{ {
return false; return false;
} }
else if ((isBlessedDown() && !supportItem.isBlessed()) || (!isBlessedDown() && supportItem.isBlessed()))
{
return false;
}
else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant())) else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant()))
{ {
return false; return false;

View File

@@ -27,6 +27,7 @@ public class EnchantSupportItem extends AbstractEnchantItem
{ {
private final boolean _isWeapon; private final boolean _isWeapon;
private final boolean _isBlessed; private final boolean _isBlessed;
private final boolean _isDown;
private final boolean _isGiant; private final boolean _isGiant;
private final ItemType type; private final ItemType type;
@@ -34,8 +35,9 @@ public class EnchantSupportItem extends AbstractEnchantItem
{ {
super(set); super(set);
type = getItem().getItemType(); type = getItem().getItemType();
_isWeapon = (type == EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isWeapon = (type == EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.ENCHT_WP_DOWN) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isBlessed = (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isBlessed = (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isDown = (type == EtcItemType.ENCHT_AM_DOWN) || (type == EtcItemType.ENCHT_WP_DOWN);
_isGiant = (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isGiant = (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
} }
@@ -50,6 +52,11 @@ public class EnchantSupportItem extends AbstractEnchantItem
return _isBlessed; return _isBlessed;
} }
public boolean isDown()
{
return _isDown;
}
public boolean isGiant() public boolean isGiant()
{ {
return _isGiant; return _isGiant;

View File

@@ -42,6 +42,8 @@ public enum EtcItemType implements ItemType
MATURECROP, MATURECROP,
ENCHT_WP, ENCHT_WP,
ENCHT_AM, ENCHT_AM,
ENCHT_AM_DOWN,
ENCHT_WP_DOWN,
GIANT_ENCHT_WP, GIANT_ENCHT_WP,
GIANT_ENCHT_AM, GIANT_ENCHT_AM,
BLESS_ENCHT_WP, BLESS_ENCHT_WP,
@@ -71,7 +73,6 @@ public enum EtcItemType implements ItemType
SOULSHOT, SOULSHOT,
SHAPE_SHIFTING_WP, SHAPE_SHIFTING_WP,
BLESS_SHAPE_SHIFTING_WP, BLESS_SHAPE_SHIFTING_WP,
// EIT_RESTORE_SHAPE_SHIFTING_WP,
SHAPE_SHIFTING_WP_FIXED, SHAPE_SHIFTING_WP_FIXED,
SHAPE_SHIFTING_AM, SHAPE_SHIFTING_AM,
BLESS_SHAPE_SHIFTING_AM, BLESS_SHAPE_SHIFTING_AM,

View File

@@ -312,11 +312,12 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.broadcastUserInfo(); player.broadcastUserInfo();
} }
if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isBlessed())) if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed()))
{ {
// blessed enchant - enchant value down by 1 // blessed enchant - enchant value down by 1
if (scrollTemplate.isBlessedDown()) if (scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()))
{ {
player.sendMessage("The enchant value is decreased by 1.");
item.setEnchantLevel(item.getEnchantLevel() - 1); item.setEnchantLevel(item.getEnchantLevel() - 1);
} }
else // blessed enchant - clear enchant value else // blessed enchant - clear enchant value

View File

@@ -1232,7 +1232,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1246,7 +1246,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1260,7 +1260,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>

View File

@@ -39,6 +39,7 @@ public abstract class AbstractEnchantItem
EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM, EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM,
EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP, EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP,
EtcItemType.BLESS_ENCHT_AM, EtcItemType.BLESS_ENCHT_AM,
EtcItemType.BLESS_ENCHT_AM_DOWN,
EtcItemType.BLESS_ENCHT_WP, EtcItemType.BLESS_ENCHT_WP,
EtcItemType.ENCHT_AM, EtcItemType.ENCHT_AM,
EtcItemType.ENCHT_WP, EtcItemType.ENCHT_WP,

View File

@@ -37,6 +37,7 @@ public class EnchantScroll extends AbstractEnchantItem
{ {
private final boolean _isWeapon; private final boolean _isWeapon;
private final boolean _isBlessed; private final boolean _isBlessed;
private final boolean _isBlessedDown;
private final boolean _isSafe; private final boolean _isSafe;
private final boolean _isGiant; private final boolean _isGiant;
private final int _scrollGroupId; private final int _scrollGroupId;
@@ -50,6 +51,7 @@ public class EnchantScroll extends AbstractEnchantItem
final ItemType type = getItem().getItemType(); final ItemType type = getItem().getItemType();
_isWeapon = (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.BLESS_ENCHT_WP) || (type == EtcItemType.ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_WP); _isWeapon = (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.BLESS_ENCHT_WP) || (type == EtcItemType.ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_WP);
_isBlessed = (type == EtcItemType.BLESS_ENCHT_AM) || (type == EtcItemType.BLESS_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isBlessed = (type == EtcItemType.BLESS_ENCHT_AM) || (type == EtcItemType.BLESS_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isBlessedDown = (type == EtcItemType.BLESS_ENCHT_AM_DOWN);
_isSafe = (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.ENCHT_ATTR_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ENCHT_ATTR_CRYSTAL_ENCHANT_WP); _isSafe = (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.ENCHT_ATTR_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ENCHT_ATTR_CRYSTAL_ENCHANT_WP);
_isGiant = (type == EtcItemType.GIANT_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_WP); _isGiant = (type == EtcItemType.GIANT_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_WP);
} }
@@ -68,6 +70,14 @@ public class EnchantScroll extends AbstractEnchantItem
return _isBlessed; return _isBlessed;
} }
/**
* @return {@code true} for blessed scrolls (enchanted item will remain on failure and enchant value will go down by 1), {@code false} otherwise
*/
public boolean isBlessedDown()
{
return _isBlessedDown;
}
/** /**
* @return {@code true} for safe-enchant scrolls (enchant level will remain on failure), {@code false} otherwise * @return {@code true} for safe-enchant scrolls (enchant level will remain on failure), {@code false} otherwise
*/ */

View File

@@ -48,6 +48,7 @@ public enum EtcItemType implements ItemType
GIANT_ENCHT_AM, GIANT_ENCHT_AM,
BLESS_ENCHT_WP, BLESS_ENCHT_WP,
BLESS_ENCHT_AM, BLESS_ENCHT_AM,
BLESS_ENCHT_AM_DOWN,
COUPON, COUPON,
ELIXIR, ELIXIR,
ENCHT_ATTR, ENCHT_ATTR,

View File

@@ -312,11 +312,12 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.broadcastUserInfo(); player.broadcastUserInfo();
} }
if (scrollTemplate.isBlessed() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed())) if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed()))
{ {
// blessed enchant - enchant value down by 1 // blessed enchant - enchant value down by 1
if (((supportTemplate != null) && supportTemplate.isDown())) if (scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()))
{ {
client.sendPacket(SystemMessageId.THE_ENCHANT_VALUE_IS_DECREASED_BY_1);
item.setEnchantLevel(item.getEnchantLevel() - 1); item.setEnchantLevel(item.getEnchantLevel() - 1);
} }
else // blessed enchant - clear enchant value else // blessed enchant - clear enchant value

View File

@@ -1232,7 +1232,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1246,7 +1246,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>
@@ -1260,7 +1260,7 @@
<set name="is_sellable" val="false" /> <set name="is_sellable" val="false" />
<set name="is_stackable" val="true" /> <set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" /> <set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" /> <set name="etcitem_type" val="BLESS_ENCHT_AM_DOWN" />
<set name="immediate_effect" val="true" /> <set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" /> <set name="handler" val="EnchantScrolls" />
<skills> <skills>

View File

@@ -39,6 +39,7 @@ public abstract class AbstractEnchantItem
EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM, EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM,
EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP, EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP,
EtcItemType.BLESS_ENCHT_AM, EtcItemType.BLESS_ENCHT_AM,
EtcItemType.BLESS_ENCHT_AM_DOWN,
EtcItemType.BLESS_ENCHT_WP, EtcItemType.BLESS_ENCHT_WP,
EtcItemType.ENCHT_AM, EtcItemType.ENCHT_AM,
EtcItemType.ENCHT_WP, EtcItemType.ENCHT_WP,

View File

@@ -37,6 +37,7 @@ public class EnchantScroll extends AbstractEnchantItem
{ {
private final boolean _isWeapon; private final boolean _isWeapon;
private final boolean _isBlessed; private final boolean _isBlessed;
private final boolean _isBlessedDown;
private final boolean _isSafe; private final boolean _isSafe;
private final boolean _isGiant; private final boolean _isGiant;
private final int _scrollGroupId; private final int _scrollGroupId;
@@ -50,6 +51,7 @@ public class EnchantScroll extends AbstractEnchantItem
final ItemType type = getItem().getItemType(); final ItemType type = getItem().getItemType();
_isWeapon = (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.BLESS_ENCHT_WP) || (type == EtcItemType.ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_WP); _isWeapon = (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.BLESS_ENCHT_WP) || (type == EtcItemType.ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_WP);
_isBlessed = (type == EtcItemType.BLESS_ENCHT_AM) || (type == EtcItemType.BLESS_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP); _isBlessed = (type == EtcItemType.BLESS_ENCHT_AM) || (type == EtcItemType.BLESS_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
_isBlessedDown = (type == EtcItemType.BLESS_ENCHT_AM_DOWN);
_isSafe = (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.ENCHT_ATTR_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ENCHT_ATTR_CRYSTAL_ENCHANT_WP); _isSafe = (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.ENCHT_ATTR_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ENCHT_ATTR_CRYSTAL_ENCHANT_WP);
_isGiant = (type == EtcItemType.GIANT_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_WP); _isGiant = (type == EtcItemType.GIANT_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_WP);
} }
@@ -68,6 +70,14 @@ public class EnchantScroll extends AbstractEnchantItem
return _isBlessed; return _isBlessed;
} }
/**
* @return {@code true} for blessed scrolls (enchanted item will remain on failure and enchant value will go down by 1), {@code false} otherwise
*/
public boolean isBlessedDown()
{
return _isBlessedDown;
}
/** /**
* @return {@code true} for safe-enchant scrolls (enchant level will remain on failure), {@code false} otherwise * @return {@code true} for safe-enchant scrolls (enchant level will remain on failure), {@code false} otherwise
*/ */

View File

@@ -48,6 +48,7 @@ public enum EtcItemType implements ItemType
GIANT_ENCHT_AM, GIANT_ENCHT_AM,
BLESS_ENCHT_WP, BLESS_ENCHT_WP,
BLESS_ENCHT_AM, BLESS_ENCHT_AM,
BLESS_ENCHT_AM_DOWN,
COUPON, COUPON,
ELIXIR, ELIXIR,
ENCHT_ATTR, ENCHT_ATTR,

View File

@@ -312,11 +312,12 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.broadcastUserInfo(); player.broadcastUserInfo();
} }
if (scrollTemplate.isBlessed() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed())) if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed()))
{ {
// blessed enchant - enchant value down by 1 // blessed enchant - enchant value down by 1
if (((supportTemplate != null) && supportTemplate.isDown())) if (scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isDown()))
{ {
client.sendPacket(SystemMessageId.THE_ENCHANT_VALUE_IS_DECREASED_BY_1);
item.setEnchantLevel(item.getEnchantLevel() - 1); item.setEnchantLevel(item.getEnchantLevel() - 1);
} }
else // blessed enchant - clear enchant value else // blessed enchant - clear enchant value