Support for royal save card.

Contributed by Sero.
This commit is contained in:
MobiusDevelopment 2021-04-25 23:32:42 +00:00
parent 42af50a931
commit cdfcf4e13a
22 changed files with 168 additions and 48 deletions

View File

@ -2570,5 +2570,13 @@
<support id="23778" targetGrade="A" minEnchant="10" maxEnchant="15" bonusRate="18" />
<support id="23779" targetGrade="S" minEnchant="10" maxEnchant="15" bonusRate="15" />
<support id="23780" targetGrade="R" minEnchant="10" maxEnchant="15" bonusRate="10" />
<!-- Royal Gold Save Ticket -->
<support id="80501" targetGrade="R" maxEnchant="30" bonusRate="20" />
<!-- Royal Black Save Ticket -->
<support id="80449" targetGrade="R" minEnchant="3" maxEnchant="11" bonusRate="20" />
<!-- Royal Gold Save Ticket -->
<support id="81697" targetGrade="R" maxEnchant="30" bonusRate="10" />
<!-- Royal Black Save Ticket -->
<support id="81698" targetGrade="R" maxEnchant="30" bonusRate="10" />
</list>

View File

@ -640,8 +640,13 @@
<!-- Enchant success rate +20% for R-grade armor when using an Enchant Scroll. Only for +3 to +11 enchanted items. If enchantment fails. the enchant value of the item will increase randomly by 1 to 2. If enchantment fails. the item will not be crystallized but its enchant value will decrease by 1. -->
<set name="icon" val="icon.bm_royal_black_ticket_all" />
<set name="material" val="PAPER" />
<set name="immediate_effect" val="true" />
<set name="etcitem_type" val="ENCHT_AM_DOWN" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<skills>
<skill id="39435" level="1" /> <!-- Royal Black Save Card -->
</skills>
</item>
<item id="80450" name="Penitent's Mark" type="EtcItem">
<!-- A mark that shows its holder is walking the path of penitence. Double-click to summon the Sin Eater and receive the Hour of Penitence buff. -->

View File

@ -12,8 +12,13 @@
<!-- A ticket that enhances probability by 20% when using a Normal Weapon Enchant Scroll to enchant R-grade Weapons. When Enchant succeeds, it increases by 1-3. When Enchant fails, the item does not crystallize, but the existing enchant value decreases by 1. -->
<set name="icon" val="icon.bm_royal_gold_ticket_all" />
<set name="material" val="PAPER" />
<set name="immediate_effect" val="true" />
<set name="etcitem_type" val="ENCHT_WP_DOWN" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<skills>
<skill id="39446" level="1" /> <!-- Royal Gold Save Card -->
</skills>
</item>
<item id="80502" name="Gran Kain's Scroll: Enchant Armor (R-grade)" type="EtcItem">
<!-- For R-grade armor and accessories. P. Def. +2. When enchanted to +4, P. Def. is greatly increased and HP is increased with each enchant value. The enchanting is safe up to +3. In case of failure, the item is not crystallized, and its enchant value remains the same. Cannot be used with equipment enchanted to +12 or higher. -->

View File

@ -1025,9 +1025,11 @@
<cond msgId="113" addName="1">
<player level="110" />
</cond>
<skills>
<skill id="39395" level="1" /> <!-- Artifact Book (Open 3 Slot) -->
<skill id="39677" level="1" /> <!-- Artifact Book (Open 3 Slot) -->
</skills>
<!-- Skill handled by enchantItemOptions -->
</item>
<item id="81696" name="Unique Artifact Book" additionalName="Lv. 3" type="Armor">
<!-- Unlocks 3 attack slots, 3 defense slots, 3 support slots and 12 balance slots. When equipping 3 sets of artifacts, damage +6%, received damage -7%, all basic stats +1. <Enchanting>. Use Blessed Scroll: Enchant Artifact Book. -->
@ -1043,22 +1045,33 @@
<player level="110" />
</cond>
<skills>
<skill id="39395" level="1" /> <!-- Artifact Book (Open 3 Slot) -->
<skill id="39678" level="1" /> <!-- Artifact Book (Open 3 Slot) -->
</skills>
<!-- Skill handled by enchantItemOptions -->
</item>
<item id="81697" name="Gold Save Ticket" type="EtcItem">
<!-- A ticket that enhances probability by +10% when using a Normal Weapon Enchant Scroll to enchant R-grade Weapons. When Enchant succeeds, it increases by 1-3. When Enchant fails, the item does not crystallize, but the existing enchant value decreases by 1. -->
<set name="icon" val="icon.gold_save_r" />
<set name="material" val="PAPER" />
<set name="immediate_effect" val="true" />
<set name="etcitem_type" val="ENCHT_WP_DOWN" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<skills>
<skill id="39680" level="1" /> <!-- Gold Save Ticket -->
</skills>
</item>
<item id="81698" name="Black Save Ticket" type="EtcItem">
<!-- Enchant success rate +10% for R-grade armor when using an Enchant Scroll. Only for armor of R-grade and higher. If enchantment fails. the enchant value of the item will increase randomly by 1 to 2. If enchantment fails. the item will not be crystallized but its enchant value will decrease by 1. -->
<set name="icon" val="icon.black_save_r" />
<set name="material" val="PAPER" />
<set name="immediate_effect" val="true" />
<set name="etcitem_type" val="ENCHT_AM_DOWN" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<skills>
<skill id="39681" level="1" /> <!-- Black Save Ticket -->
</skills>
</item>
<item id="81699" name="Corroded Fields's Time Stone" type="EtcItem">
<!-- Adds 60 min. to the hunting time in the Corroded Fields. Required level: 100+. -->

View File

@ -1138,6 +1138,12 @@
</skill>
<skill id="39435" toLevel="1" name="Royal Black Save Ticket">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="39436" toLevel="2" name="Soul Crystal Box Lv. 3">
<operateType>A1</operateType>
@ -1200,6 +1206,12 @@
</skill>
<skill id="39446" toLevel="1" name="Royal Gold Save Ticket">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="39447" toLevel="1" name="Gran Kain's Scroll: Enchant R-grade Armor">
<operateType>A1</operateType>

View File

@ -1099,10 +1099,22 @@
<skill id="39680" toLevel="1" name="Royal Gold Save Ticket">
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="39681" toLevel="1" name="Royal Black Save Ticket">
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="39682" toLevel="1" name="Corroded Fields's Time Stone">
<icon>icon.skill0000</icon>

View File

@ -39,10 +39,11 @@ public abstract class AbstractEnchantItem
EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM,
EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP,
EtcItemType.BLESS_ENCHT_AM,
EtcItemType.BLESS_ENCHT_AM_DOWN,
EtcItemType.BLESS_ENCHT_WP,
EtcItemType.ENCHT_AM,
EtcItemType.ENCHT_WP,
EtcItemType.ENCHT_WP_DOWN,
EtcItemType.ENCHT_AM_DOWN,
EtcItemType.GIANT_ENCHT_AM,
EtcItemType.GIANT_ENCHT_WP,
EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM,

View File

@ -37,7 +37,6 @@ public class EnchantScroll extends AbstractEnchantItem
{
private final boolean _isWeapon;
private final boolean _isBlessed;
private final boolean _isBlessedDown;
private final boolean _isSafe;
private final boolean _isGiant;
private final int _scrollGroupId;
@ -51,7 +50,6 @@ public class EnchantScroll extends AbstractEnchantItem
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);
_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);
_isGiant = (type == EtcItemType.GIANT_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_WP);
}
@ -70,14 +68,6 @@ public class EnchantScroll extends AbstractEnchantItem
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
*/
@ -135,10 +125,6 @@ public class EnchantScroll extends AbstractEnchantItem
{
return false;
}
else if ((isBlessedDown() && !supportItem.isBlessed()) || (!isBlessedDown() && supportItem.isBlessed()))
{
return false;
}
else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant()))
{
return false;

View File

@ -27,6 +27,7 @@ public class EnchantSupportItem extends AbstractEnchantItem
{
private final boolean _isWeapon;
private final boolean _isBlessed;
private final boolean _isDown;
private final boolean _isGiant;
private final ItemType type;
@ -34,8 +35,9 @@ public class EnchantSupportItem extends AbstractEnchantItem
{
super(set);
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);
_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);
}
@ -50,6 +52,11 @@ public class EnchantSupportItem extends AbstractEnchantItem
return _isBlessed;
}
public boolean isDown()
{
return _isDown;
}
public boolean isGiant()
{
return _isGiant;

View File

@ -42,11 +42,12 @@ public enum EtcItemType implements ItemType
MATURECROP,
ENCHT_WP,
ENCHT_AM,
ENCHT_AM_DOWN,
ENCHT_WP_DOWN,
GIANT_ENCHT_WP,
GIANT_ENCHT_AM,
BLESS_ENCHT_WP,
BLESS_ENCHT_AM,
BLESS_ENCHT_AM_DOWN,
COUPON,
ELIXIR,
ENCHT_ATTR,
@ -71,7 +72,6 @@ public enum EtcItemType implements ItemType
SOULSHOT,
SHAPE_SHIFTING_WP,
BLESS_SHAPE_SHIFTING_WP,
// EIT_RESTORE_SHAPE_SHIFTING_WP,
SHAPE_SHIFTING_WP_FIXED,
SHAPE_SHIFTING_AM,
BLESS_SHAPE_SHIFTING_AM,

View File

@ -198,7 +198,18 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
else
{
item.setEnchantLevel(item.getEnchantLevel() + 1);
if (((supportTemplate != null) && (supportTemplate.getId() == 80501)) || ((supportTemplate != null) && (supportTemplate.getId() == 81697))) // Save ticket gold
{
item.setEnchantLevel(Math.min(item.getEnchantLevel() + 1 + Rnd.get(3), scrollTemplate.getMaxEnchantLevel()));
}
else if (((supportTemplate != null) && (supportTemplate.getId() == 80449)) || ((supportTemplate != null) && (supportTemplate.getId() == 81698))) // Save ticket black
{
item.setEnchantLevel(Math.min(item.getEnchantLevel() + 1 + Rnd.get(2), scrollTemplate.getMaxEnchantLevel()));
}
else
{
item.setEnchantLevel(item.getEnchantLevel() + 1);
}
}
item.updateDatabase();
}
@ -319,10 +330,10 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.broadcastUserInfo();
}
if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isBlessed()))
if (scrollTemplate.isBlessed() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed()))
{
// blessed enchant - enchant value down by 1
if (scrollTemplate.isBlessedDown())
if (((supportTemplate != null) && supportTemplate.isDown()))
{
item.setEnchantLevel(item.getEnchantLevel() - 1);
}

View File

@ -2570,5 +2570,13 @@
<support id="23778" targetGrade="A" minEnchant="10" maxEnchant="15" bonusRate="18" />
<support id="23779" targetGrade="S" minEnchant="10" maxEnchant="15" bonusRate="15" />
<support id="23780" targetGrade="R" minEnchant="10" maxEnchant="15" bonusRate="10" />
<!-- Royal Gold Save Ticket -->
<support id="80501" targetGrade="R" maxEnchant="30" bonusRate="20" />
<!-- Royal Black Save Ticket -->
<support id="80449" targetGrade="R" minEnchant="3" maxEnchant="11" bonusRate="20" />
<!-- Royal Gold Save Ticket -->
<support id="81697" targetGrade="R" maxEnchant="30" bonusRate="10" />
<!-- Royal Black Save Ticket -->
<support id="81698" targetGrade="R" maxEnchant="30" bonusRate="10" />
</list>

View File

@ -640,8 +640,13 @@
<!-- Enchant success rate +20% for R-grade armor when using an Enchant Scroll. Only for +3 to +11 enchanted items. If enchantment fails. the enchant value of the item will increase randomly by 1 to 2. If enchantment fails. the item will not be crystallized but its enchant value will decrease by 1. -->
<set name="icon" val="icon.bm_royal_black_ticket_all" />
<set name="material" val="PAPER" />
<set name="immediate_effect" val="true" />
<set name="etcitem_type" val="ENCHT_AM_DOWN" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<skills>
<skill id="39435" level="1" /> <!-- Royal Black Save Card -->
</skills>
</item>
<item id="80450" name="Penitent's Mark" type="EtcItem">
<!-- A mark that shows its holder is walking the path of penitence. Double-click to summon the Sin Eater and receive the Hour of Penitence buff. -->

View File

@ -12,8 +12,13 @@
<!-- A ticket that enhances probability by 20% when using a Normal Weapon Enchant Scroll to enchant R-grade Weapons. When Enchant succeeds, it increases by 1-3. When Enchant fails, the item does not crystallize, but the existing enchant value decreases by 1. -->
<set name="icon" val="icon.bm_royal_gold_ticket_all" />
<set name="material" val="PAPER" />
<set name="immediate_effect" val="true" />
<set name="etcitem_type" val="ENCHT_WP_DOWN" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<skills>
<skill id="39446" level="1" /> <!-- Royal Gold Save Card -->
</skills>
</item>
<item id="80502" name="Gran Kain's Scroll: Enchant Armor (R-grade)" type="EtcItem">
<!-- For R-grade armor and accessories. P. Def. +2. When enchanted to +4, P. Def. is greatly increased and HP is increased with each enchant value. The enchanting is safe up to +3. In case of failure, the item is not crystallized, and its enchant value remains the same. Cannot be used with equipment enchanted to +12 or higher. -->

View File

@ -1025,9 +1025,11 @@
<cond msgId="113" addName="1">
<player level="110" />
</cond>
<skills>
<skill id="39395" level="1" /> <!-- Artifact Book (Open 3 Slot) -->
<skill id="39677" level="1" /> <!-- Artifact Book (Open 3 Slot) -->
</skills>
<!-- Skill handled by enchantItemOptions -->
</item>
<item id="81696" name="Unique Artifact Book" additionalName="Lv. 3" type="Armor">
<!-- Unlocks 3 attack slots, 3 defense slots, 3 support slots and 12 balance slots. When equipping 3 sets of artifacts, damage +6%, received damage -7%, all basic stats +1. <Enchanting>. Use Blessed Scroll: Enchant Artifact Book. -->
@ -1043,22 +1045,33 @@
<player level="110" />
</cond>
<skills>
<skill id="39395" level="1" /> <!-- Artifact Book (Open 3 Slot) -->
<skill id="39678" level="1" /> <!-- Artifact Book (Open 3 Slot) -->
</skills>
<!-- Skill handled by enchantItemOptions -->
</item>
<item id="81697" name="Gold Save Ticket" type="EtcItem">
<!-- A ticket that enhances probability by +10% when using a Normal Weapon Enchant Scroll to enchant R-grade Weapons. When Enchant succeeds, it increases by 1-3. When Enchant fails, the item does not crystallize, but the existing enchant value decreases by 1. -->
<set name="icon" val="icon.gold_save_r" />
<set name="material" val="PAPER" />
<set name="immediate_effect" val="true" />
<set name="etcitem_type" val="ENCHT_WP_DOWN" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<skills>
<skill id="39680" level="1" /> <!-- Gold Save Ticket -->
</skills>
</item>
<item id="81698" name="Black Save Ticket" type="EtcItem">
<!-- Enchant success rate +10% for R-grade armor when using an Enchant Scroll. Only for armor of R-grade and higher. If enchantment fails. the enchant value of the item will increase randomly by 1 to 2. If enchantment fails. the item will not be crystallized but its enchant value will decrease by 1. -->
<set name="icon" val="icon.black_save_r" />
<set name="material" val="PAPER" />
<set name="immediate_effect" val="true" />
<set name="etcitem_type" val="ENCHT_AM_DOWN" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<skills>
<skill id="39681" level="1" /> <!-- Black Save Ticket -->
</skills>
</item>
<item id="81699" name="Corroded Fields's Time Stone" type="EtcItem">
<!-- Adds 60 min. to the hunting time in the Corroded Fields. Required level: 100+. -->

View File

@ -1138,6 +1138,12 @@
</skill>
<skill id="39435" toLevel="1" name="Royal Black Save Ticket">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="39436" toLevel="2" name="Soul Crystal Box Lv. 3">
<operateType>A1</operateType>
@ -1200,6 +1206,12 @@
</skill>
<skill id="39446" toLevel="1" name="Royal Gold Save Ticket">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="39447" toLevel="1" name="Gran Kain's Scroll: Enchant R-grade Armor">
<operateType>A1</operateType>

View File

@ -1099,10 +1099,22 @@
<skill id="39680" toLevel="1" name="Royal Gold Save Ticket">
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="39681" toLevel="1" name="Royal Black Save Ticket">
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="39682" toLevel="1" name="Corroded Fields's Time Stone">
<icon>icon.skill0000</icon>

View File

@ -39,10 +39,11 @@ public abstract class AbstractEnchantItem
EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM,
EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP,
EtcItemType.BLESS_ENCHT_AM,
EtcItemType.BLESS_ENCHT_AM_DOWN,
EtcItemType.BLESS_ENCHT_WP,
EtcItemType.ENCHT_AM,
EtcItemType.ENCHT_WP,
EtcItemType.ENCHT_WP_DOWN,
EtcItemType.ENCHT_AM_DOWN,
EtcItemType.GIANT_ENCHT_AM,
EtcItemType.GIANT_ENCHT_WP,
EtcItemType.ENCHT_ATTR_INC_PROP_ENCHT_AM,

View File

@ -37,7 +37,6 @@ public class EnchantScroll extends AbstractEnchantItem
{
private final boolean _isWeapon;
private final boolean _isBlessed;
private final boolean _isBlessedDown;
private final boolean _isSafe;
private final boolean _isGiant;
private final int _scrollGroupId;
@ -51,7 +50,6 @@ public class EnchantScroll extends AbstractEnchantItem
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);
_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);
_isGiant = (type == EtcItemType.GIANT_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_WP);
}
@ -70,14 +68,6 @@ public class EnchantScroll extends AbstractEnchantItem
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
*/
@ -135,10 +125,6 @@ public class EnchantScroll extends AbstractEnchantItem
{
return false;
}
else if ((isBlessedDown() && !supportItem.isBlessed()) || (!isBlessedDown() && supportItem.isBlessed()))
{
return false;
}
else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant()))
{
return false;

View File

@ -27,6 +27,7 @@ public class EnchantSupportItem extends AbstractEnchantItem
{
private final boolean _isWeapon;
private final boolean _isBlessed;
private final boolean _isDown;
private final boolean _isGiant;
private final ItemType type;
@ -34,8 +35,9 @@ public class EnchantSupportItem extends AbstractEnchantItem
{
super(set);
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);
_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);
}
@ -50,6 +52,11 @@ public class EnchantSupportItem extends AbstractEnchantItem
return _isBlessed;
}
public boolean isDown()
{
return _isDown;
}
public boolean isGiant()
{
return _isGiant;

View File

@ -42,11 +42,12 @@ public enum EtcItemType implements ItemType
MATURECROP,
ENCHT_WP,
ENCHT_AM,
ENCHT_AM_DOWN,
ENCHT_WP_DOWN,
GIANT_ENCHT_WP,
GIANT_ENCHT_AM,
BLESS_ENCHT_WP,
BLESS_ENCHT_AM,
BLESS_ENCHT_AM_DOWN,
COUPON,
ELIXIR,
ENCHT_ATTR,
@ -71,7 +72,6 @@ public enum EtcItemType implements ItemType
SOULSHOT,
SHAPE_SHIFTING_WP,
BLESS_SHAPE_SHIFTING_WP,
// EIT_RESTORE_SHAPE_SHIFTING_WP,
SHAPE_SHIFTING_WP_FIXED,
SHAPE_SHIFTING_AM,
BLESS_SHAPE_SHIFTING_AM,

View File

@ -198,7 +198,18 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
else
{
item.setEnchantLevel(item.getEnchantLevel() + 1);
if (((supportTemplate != null) && (supportTemplate.getId() == 80501)) || ((supportTemplate != null) && (supportTemplate.getId() == 81697))) // Save ticket gold
{
item.setEnchantLevel(Math.min(item.getEnchantLevel() + 1 + Rnd.get(3), scrollTemplate.getMaxEnchantLevel()));
}
else if (((supportTemplate != null) && (supportTemplate.getId() == 80449)) || ((supportTemplate != null) && (supportTemplate.getId() == 81698))) // Save ticket black
{
item.setEnchantLevel(Math.min(item.getEnchantLevel() + 1 + Rnd.get(2), scrollTemplate.getMaxEnchantLevel()));
}
else
{
item.setEnchantLevel(item.getEnchantLevel() + 1);
}
}
item.updateDatabase();
}
@ -319,10 +330,10 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.broadcastUserInfo();
}
if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isBlessed()))
if (scrollTemplate.isBlessed() || ((supportTemplate != null) && supportTemplate.isDown()) || ((supportTemplate != null) && supportTemplate.isBlessed()))
{
// blessed enchant - enchant value down by 1
if (scrollTemplate.isBlessedDown())
if (((supportTemplate != null) && supportTemplate.isDown()))
{
item.setEnchantLevel(item.getEnchantLevel() - 1);
}