Addition of new skill condition for cloak enchant.

Contributed by CostyKiller.
This commit is contained in:
MobiusDevelopment 2022-01-11 04:56:31 +00:00
parent db8aa344f6
commit 5e17feaabc
51 changed files with 4178 additions and 151 deletions

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -4,130 +4,433 @@
<!-- SP when hunting +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="SpModify">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28001" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to recover $s1 of damage as HP. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VampiricAttack">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
<chance>60</chance>
</effect>
</effects>
</skill>
<skill id="28002" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
</effects>
</skill>
<skill id="28003" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- M. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
</effects>
</skill>
<skill id="28004" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Reflect $s1 of received damage -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="DamageShield">
<amount>
<value level="1">7</value>
<value level="2">8</value>
<value level="3">10</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28005" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Fixed Damage Resistance +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="RealDamageResist">
<amount>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28006" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a $s1 chance to return all status effects to the enemy. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>PHYSICAL</type>
</effect>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>MAGIC</type>
</effect>
</effects>
</skill>
<skill id="28007" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When using a single attack skill, there's a chance for Silence to be activated. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<magicLevel>99</magicLevel>
<magicCriticalRate>5</magicCriticalRate>
<effects>
<effect name="TriggerSkillByMagicType">
<magicTypes>0;1</magicTypes>
<skillId>28008</skillId> <!-- Legendary Cloak - Silence -->
<skillLevel>1</skillLevel>
<chance>30</chance>
<targetType>ENEMY</targetType>
</effect>
</effects>
</skill>
<skill id="28008" toLevel="1" name="Legendary Cloak - Silence">
<!-- Skills are sealed momentarily because of Silence. Ignores debuff immunity. -->
<icon>icon.skill1064</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isDebuff>true</isDebuff>
<castRange>1000</castRange>
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<activateRate>100</activateRate>
<abnormalType>SILENCE</abnormalType>
<abnormalVisualEffect>SILENCE</abnormalVisualEffect>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<trait>DERANGEMENT</trait>
<effects>
<effect name="Mute" />
<effect name="PhysicalMute" />
</effects>
</skill>
<skill id="28009" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When receiving a fatal attack, CP/HP recovers by 100% for 1 min. When the effect is applied the buff disappears. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill19211</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>867</effectPoint>
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>60</abnormalTime>
<abnormalType>SHILLIEN_PROTECTION</abnormalType>
<abnormalVisualEffect>SHILLIEN_PROTECTION</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="IgnoreDeath" />
<effect name="TriggerSkillByDeathBlow">
<chance>100</chance>
<skillId>19221</skillId> <!-- Power of Darkness -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28010" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Activates a shield that has a chance to absorb $s1 damage when hit. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>30</chance>
<allowSkillAttack>true</allowSkillAttack>
<allowNormalAttack>true</allowNormalAttack>
<skillId>28011</skillId> <!-- Legendary Cloak - Barrier -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="28011" toLevel="3" name="Legendary Cloak - Barrier">
<!-- Activates a shield that has a chance to absorb $s2 damage when hit for $s1. -->
<icon>icon.skill1514</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<hitTime>1000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>60000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalType>ABSORB</abnormalType>
<abnormalVisualEffect>AVE_ABSORB2_SHIELD</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>99</magicLevel>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<staticReuse>true</staticReuse>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="AbsorbDamage">
<damage>
<value level="1">10000</value>
<value level="2">15000</value>
<value level="3">30000</value>
</damage>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28012" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P./M. Skill Power +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="PhysicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28013" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Resurrects from death with full recovery. Buffs/debuffs stay when dying. However, the Noblesse Blessing and Lucky Charms disappear. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill11826</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<castRange>600</castRange>
<hitTime>4000</hitTime>
<reuseDelay>3600000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalLevel>2</abnormalLevel>
<abnormalType>RESURRECTION_SPECIAL</abnormalType>
<abnormalTime>3600</abnormalTime>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquippedCloakEnchant">
<amount>15</amount>
</condition>
</conditions>
<effects>
<effect name="ResurrectionSpecial">
<power>100</power>
<hpPercent>100</hpPercent>
<mpPercent>100</mpPercent>
<cpPercent>100</cpPercent>
</effect>
</effects>
</skill>
<skill id="28014" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 seconds by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28015</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28015" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 seconds by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>180000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
</effects>
</skill>
<skill id="28016" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Invincibility activated for 5 seconds if damage received when HP is below 30%. This effect is only activated once every 5 minutes. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>85</magicLevel>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByHpPercent">
<skillId>28017</skillId> <!-- Legendary Cloak - Invincibility -->
<skillLevel>1</skillLevel>
<percentTo>30</percentTo>
</effect>
</effects>
</skill>
<skill id="28017" toLevel="1" name="Legendary Cloak - Invincibility">
<!-- Become invincible. -->
<icon>icon.skill1917</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<abnormalType>INVINCIBILITY</abnormalType>
<abnormalVisualEffect>INVINCIBILITY</abnormalVisualEffect>
<isTriggeredSkill>true</isTriggeredSkill>
<magicLevel>99</magicLevel>
<operateType>A2</operateType>
<hitTime>200</hitTime>
<reuseDelay>300000</reuseDelay>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="RemainHpPer">
<amount>30</amount>
<percentType>LESS</percentType>
<affectType>CASTER</affectType>
</condition>
</conditions>
<effects>
<effect name="DamageBlock">
<type>BLOCK_HP</type>
</effect>
<effect name="DamageBlock">
<type>BLOCK_MP</type>
</effect>
<effect name="DebuffBlock" />
<effect name="DefenceTrait">
<HOLD>100</HOLD>
<SLEEP>100</SLEEP>
<DERANGEMENT>100</DERANGEMENT>
<CHANGEBODY>100</CHANGEBODY>
<PARALYZE>100</PARALYZE>
<SHOCK>100</SHOCK>
<KNOCKBACK>100</KNOCKBACK>
<KNOCKDOWN>100</KNOCKDOWN>
<AIRBIND>100</AIRBIND>
<TURN_STONE>100</TURN_STONE>
</effect>
<effect name="DispelByCategory">
<slot>DEBUFF</slot>
<rate>100</rate>
<max>10</max>
</effect>
<effect name="ResistDispelByCategory">
<amount>-100</amount>
<slot>ALL</slot>
</effect>
</effects>
</skill>
<skill id="28018" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 seconds by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28019</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28019" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 seconds by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>15</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
<effect name="Speed">
<amount>100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28020" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Bonus EXP obtained in Vitality state +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VitalityExpRate">
<amount>
<value level="1">2</value>
<value level="2">10</value>
<value level="3">20</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28021" toLevel="1" name="Scroll: Enchant Cloak">
<operateType>A1</operateType>
@ -149,11 +452,49 @@
</skill>
<skill id="28023" toLevel="1" name="Scroll: Ancient Cloak">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28024" toLevel="1" name="Spirit Stone Pack - Legendary">
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>28602</itemConsumeId>
<operateType>A1</operateType>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>500</hitTime>
<coolTime>500</coolTime>
<hitCancelTime>0</hitCancelTime>
<conditions>
<condition name="OpEncumbered">
<weightPercent>20</weightPercent>
<slotsPercent>10</slotsPercent>
</condition>
</conditions>
<effects>
<effect name="RestorationRandom">
<items>
<item chance="20">
<item id="28597" count="1" /> <!-- Cloak Augmenting Stone Ancient Kingdom -->
</item>
<item chance="20">
<item id="28598" count="1" /> <!-- Cloak Augmenting Stone Elmoreden -->
</item>
<item chance="20">
<item id="28599" count="1" /> <!-- Cloak Augmenting Stone Aden -->
</item>
<item chance="20">
<item id="28600" count="1" /> <!-- Cloak Augmenting Stone Elmore -->
</item>
<item chance="20">
<item id="28601" count="1" /> <!-- Cloak Augmenting Stone Ferios -->
</item>
</items>
</effect>
</effects>
</skill>
<skill id="28025" toLevel="2" name="Dragon's Treasure Chest">
<!-- Double-click to obtain an item. -->

View File

@ -668,7 +668,6 @@
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="level" type="xs:unsignedByte" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="mode">
@ -1113,12 +1112,8 @@
<xs:element name="pAccuracyAmount" type="xs:decimal" />
<xs:element name="pAccuracyMode" type="xs:string" />
<xs:element name="hpPercent" type="xs:unsignedByte" />
<xs:element name="mpPercent" type="xs:unsignedByte" />
<xs:element name="cpPercent" type="xs:unsignedByte" />
<xs:element name="attribute" type="xs:string" />
<xs:element name="attackerType" type="xs:string" />
<xs:element name="minAttackerLevel" type="xs:unsignedByte" />
<xs:element name="maxAttackerLevel" type="xs:unsignedByte" />
<xs:element name="minDamage">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
@ -2068,6 +2063,8 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="mpPercent" type="xs:unsignedByte" />
<xs:element name="cpPercent" type="xs:unsignedByte" />
<xs:element name="FIRE" type="xs:byte" />
<xs:element name="hp" type="xs:unsignedByte" />
<xs:element name="mp" type="xs:unsignedByte" />
@ -2095,6 +2092,7 @@
<xs:element name="skills" type="xs:string" />
<xs:element name="isSummonSpawn" type="xs:boolean" />
<xs:element name="randomOffset" type="xs:unsignedByte" />
<xs:element name="percentTo" type="xs:unsignedByte" />
<xs:element name="debuffModifier" type="xs:decimal" />
<xs:element name="HATE">
<xs:complexType mixed="true">
@ -2247,45 +2245,47 @@
<xs:element maxOccurs="unbounded" name="condition">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element minOccurs="0" name="type" type="xs:string" />
<xs:element minOccurs="0" name="level" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="hasAbnormal" type="xs:boolean" />
<xs:element minOccurs="0" name="alignment" type="xs:string" />
<xs:element minOccurs="0" name="amount" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="percentType" type="xs:string" />
<xs:element minOccurs="0" name="skillIds">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:unsignedShort" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="classIds">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="armorType">
<xs:complexType>
<xs:sequence>
<xs:element name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="minLevel" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="maxLevel" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="affectType" type="xs:string" />
<xs:element minOccurs="0" name="isWithin" type="xs:boolean" />
<xs:element minOccurs="0" name="includeMe" type="xs:boolean" />
<xs:element minOccurs="0" name="weaponType">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice maxOccurs="unbounded">
<xs:element name="classIds">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="affectType" type="xs:string" />
<xs:element name="isWithin" type="xs:boolean" />
<xs:element name="armorType">
<xs:complexType>
<xs:sequence>
<xs:element name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="minLevel" type="xs:unsignedByte" />
<xs:element name="maxLevel" type="xs:unsignedByte" />
<xs:element name="includeMe" type="xs:boolean" />
<xs:element name="weaponType">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="skillIds">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:unsignedShort" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="amount" type="xs:unsignedByte" />
<xs:element name="percentType" type="xs:string" />
<xs:element name="alignment" type="xs:string" />
<xs:element name="type" type="xs:string" />
<xs:element name="level" type="xs:unsignedByte" />
<xs:element name="hasAbnormal" type="xs:boolean" />
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -4,130 +4,433 @@
<!-- SP when hunting +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="SpModify">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28001" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to recover $s1 of damage as HP. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VampiricAttack">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
<chance>60</chance>
</effect>
</effects>
</skill>
<skill id="28002" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
</effects>
</skill>
<skill id="28003" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- M. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
</effects>
</skill>
<skill id="28004" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Reflect $s1 of received damage -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="DamageShield">
<amount>
<value level="1">7</value>
<value level="2">8</value>
<value level="3">10</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28005" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Fixed damage resistance +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="RealDamageResist">
<amount>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28006" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a $s1 chance to return all status effects to the enemy. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>PHYSICAL</type>
</effect>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>MAGIC</type>
</effect>
</effects>
</skill>
<skill id="28007" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When using a single attack skill, there's a chance for Silence to be activated. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<magicLevel>99</magicLevel>
<magicCriticalRate>5</magicCriticalRate>
<effects>
<effect name="TriggerSkillByMagicType">
<magicTypes>0;1</magicTypes>
<skillId>28008</skillId> <!-- Legendary Cloak - Silence -->
<skillLevel>1</skillLevel>
<chance>30</chance>
<targetType>ENEMY</targetType>
</effect>
</effects>
</skill>
<skill id="28008" toLevel="1" name="Legendary Cloak - Silence">
<!-- Skills are sealed momentarily because of Silence. Ignores debuff immunity. -->
<icon>icon.skill1064</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isDebuff>true</isDebuff>
<castRange>1000</castRange>
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<activateRate>100</activateRate>
<abnormalType>SILENCE</abnormalType>
<abnormalVisualEffect>SILENCE</abnormalVisualEffect>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<trait>DERANGEMENT</trait>
<effects>
<effect name="Mute" />
<effect name="PhysicalMute" />
</effects>
</skill>
<skill id="28009" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When receiving a fatal attack, CP/ HP recovers by 100% for 1 min. When the effect is applied the buff disappears. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill19211</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>867</effectPoint>
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>60</abnormalTime>
<abnormalType>SHILLIEN_PROTECTION</abnormalType>
<abnormalVisualEffect>SHILLIEN_PROTECTION</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="IgnoreDeath" />
<effect name="TriggerSkillByDeathBlow">
<chance>100</chance>
<skillId>19221</skillId> <!-- Power of Darkness -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28010" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Activates a shield that has a chance to absorb $s1 damage when hit. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>30</chance>
<allowSkillAttack>true</allowSkillAttack>
<allowNormalAttack>true</allowNormalAttack>
<skillId>28011</skillId> <!-- Legendary Cloak - Barrier -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="28011" toLevel="3" name="Legendary Cloak - Barrier">
<!-- Activates a shield that has a chance to absorb $s2 damage when hit for $s1. -->
<icon>icon.skill1514</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<hitTime>1000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>60000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalType>ABSORB</abnormalType>
<abnormalVisualEffect>AVE_ABSORB2_SHIELD</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>99</magicLevel>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<staticReuse>true</staticReuse>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="AbsorbDamage">
<damage>
<value level="1">10000</value>
<value level="2">15000</value>
<value level="3">30000</value>
</damage>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28012" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P./ M. Skill Power +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="PhysicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28013" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Resurrects from death with full recovery. Buffs/ debuffs stay when dying. However, the Noblesse Blessing and Lucky Charms disappear. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill11826</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<castRange>600</castRange>
<hitTime>4000</hitTime>
<reuseDelay>3600000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalLevel>2</abnormalLevel>
<abnormalType>RESURRECTION_SPECIAL</abnormalType>
<abnormalTime>3600</abnormalTime>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquippedCloakEnchant">
<amount>15</amount>
</condition>
</conditions>
<effects>
<effect name="ResurrectionSpecial">
<power>100</power>
<hpPercent>100</hpPercent>
<mpPercent>100</mpPercent>
<cpPercent>100</cpPercent>
</effect>
</effects>
</skill>
<skill id="28014" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 seconds by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28015</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28015" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 seconds by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>180000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
</effects>
</skill>
<skill id="28016" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Invincibility activated for 5 seconds if damage received when HP is below 30%. This effect is only activated once every 5 minutes. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>85</magicLevel>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByHpPercent">
<skillId>28017</skillId> <!-- Legendary Cloak - Invincibility -->
<skillLevel>1</skillLevel>
<percentTo>30</percentTo>
</effect>
</effects>
</skill>
<skill id="28017" toLevel="1" name="Legendary Cloak - Invincibility">
<!-- Become invincible. -->
<icon>icon.skill1917</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<abnormalType>INVINCIBILITY</abnormalType>
<abnormalVisualEffect>INVINCIBILITY</abnormalVisualEffect>
<isTriggeredSkill>true</isTriggeredSkill>
<magicLevel>99</magicLevel>
<operateType>A2</operateType>
<hitTime>200</hitTime>
<reuseDelay>300000</reuseDelay>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="RemainHpPer">
<amount>30</amount>
<percentType>LESS</percentType>
<affectType>CASTER</affectType>
</condition>
</conditions>
<effects>
<effect name="DamageBlock">
<type>BLOCK_HP</type>
</effect>
<effect name="DamageBlock">
<type>BLOCK_MP</type>
</effect>
<effect name="DebuffBlock" />
<effect name="DefenceTrait">
<HOLD>100</HOLD>
<SLEEP>100</SLEEP>
<DERANGEMENT>100</DERANGEMENT>
<CHANGEBODY>100</CHANGEBODY>
<PARALYZE>100</PARALYZE>
<SHOCK>100</SHOCK>
<KNOCKBACK>100</KNOCKBACK>
<KNOCKDOWN>100</KNOCKDOWN>
<AIRBIND>100</AIRBIND>
<TURN_STONE>100</TURN_STONE>
</effect>
<effect name="DispelByCategory">
<slot>DEBUFF</slot>
<rate>100</rate>
<max>10</max>
</effect>
<effect name="ResistDispelByCategory">
<amount>-100</amount>
<slot>ALL</slot>
</effect>
</effects>
</skill>
<skill id="28018" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 seconds by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28019</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28019" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 seconds by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>15</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
<effect name="Speed">
<amount>100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28020" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Bonus EXP obtained in Vitality state +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VitalityExpRate">
<amount>
<value level="1">2</value>
<value level="2">10</value>
<value level="3">20</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28021" toLevel="1" name="Scroll: Enchant Cloak">
<operateType>A1</operateType>
@ -149,11 +452,49 @@
</skill>
<skill id="28023" toLevel="1" name="Scroll: Ancient Cloak">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28024" toLevel="1" name="Spirit Stone Pack - Legendary">
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>28602</itemConsumeId>
<operateType>A1</operateType>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>500</hitTime>
<coolTime>500</coolTime>
<hitCancelTime>0</hitCancelTime>
<conditions>
<condition name="OpEncumbered">
<weightPercent>20</weightPercent>
<slotsPercent>10</slotsPercent>
</condition>
</conditions>
<effects>
<effect name="RestorationRandom">
<items>
<item chance="20">
<item id="28597" count="1" /> <!-- Cloak Augmenting Stone Ancient Kingdom -->
</item>
<item chance="20">
<item id="28598" count="1" /> <!-- Cloak Augmenting Stone Elmoreden -->
</item>
<item chance="20">
<item id="28599" count="1" /> <!-- Cloak Augmenting Stone Aden -->
</item>
<item chance="20">
<item id="28600" count="1" /> <!-- Cloak Augmenting Stone Elmore -->
</item>
<item chance="20">
<item id="28601" count="1" /> <!-- Cloak Augmenting Stone Ferios -->
</item>
</items>
</effect>
</effects>
</skill>
<skill id="28025" toLevel="2" name="Dragon's Treasure Chest">
<!-- Double-click to obtain an item. -->

View File

@ -2096,6 +2096,7 @@
<xs:element name="replacementSkillId" type="xs:unsignedShort" />
<xs:element name="isSummonSpawn" type="xs:boolean" />
<xs:element name="randomOffset" type="xs:unsignedByte" />
<xs:element name="percentTo" type="xs:unsignedByte" />
<xs:element name="debuffModifier" type="xs:decimal" />
<xs:element name="HATE">
<xs:complexType mixed="true">

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -4,130 +4,433 @@
<!-- SP when hunting +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="SpModify">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28001" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to recover $s1 of damage as HP. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VampiricAttack">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
<chance>60</chance>
</effect>
</effects>
</skill>
<skill id="28002" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
</effects>
</skill>
<skill id="28003" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- M. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
</effects>
</skill>
<skill id="28004" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Reflect $s1 of received damage -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="DamageShield">
<amount>
<value level="1">7</value>
<value level="2">8</value>
<value level="3">10</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28005" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Fixed Damage Resistance +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="RealDamageResist">
<amount>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28006" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a $s1 chance to return all status effects to the enemy. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>PHYSICAL</type>
</effect>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>MAGIC</type>
</effect>
</effects>
</skill>
<skill id="28007" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When using a single attack skill, there's a chance for Silence to be activated. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<magicLevel>99</magicLevel>
<magicCriticalRate>5</magicCriticalRate>
<effects>
<effect name="TriggerSkillByMagicType">
<magicTypes>0;1</magicTypes>
<skillId>28008</skillId> <!-- Legendary Cloak - Silence -->
<skillLevel>1</skillLevel>
<chance>30</chance>
<targetType>ENEMY</targetType>
</effect>
</effects>
</skill>
<skill id="28008" toLevel="1" name="Legendary Cloak - Silence">
<!-- Skills are sealed momentarily because of Silence. Ignores debuff immunity. -->
<icon>icon.skill1064</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isDebuff>true</isDebuff>
<castRange>1000</castRange>
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<activateRate>100</activateRate>
<abnormalType>SILENCE</abnormalType>
<abnormalVisualEffect>SILENCE</abnormalVisualEffect>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<trait>DERANGEMENT</trait>
<effects>
<effect name="Mute" />
<effect name="PhysicalMute" />
</effects>
</skill>
<skill id="28009" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When receiving a fatal attack, CP/ HP recovers by 100% for 1 min. When the effect is applied the buff disappears. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill19211</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>867</effectPoint>
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>60</abnormalTime>
<abnormalType>SHILLIEN_PROTECTION</abnormalType>
<abnormalVisualEffect>SHILLIEN_PROTECTION</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="IgnoreDeath" />
<effect name="TriggerSkillByDeathBlow">
<chance>100</chance>
<skillId>19221</skillId> <!-- Power of Darkness -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28010" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Activates a shield that has a chance to absorb $s1 damage when hit. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>30</chance>
<allowSkillAttack>true</allowSkillAttack>
<allowNormalAttack>true</allowNormalAttack>
<skillId>28011</skillId> <!-- Legendary Cloak - Barrier -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="28011" toLevel="3" name="Legendary Cloak - Barrier">
<!-- Activates a shield that has a chance to absorb $s2 damage when hit for $s1. -->
<icon>icon.skill1514</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<hitTime>1000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>60000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalType>ABSORB</abnormalType>
<abnormalVisualEffect>AVE_ABSORB2_SHIELD</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>99</magicLevel>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<staticReuse>true</staticReuse>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="AbsorbDamage">
<damage>
<value level="1">10000</value>
<value level="2">15000</value>
<value level="3">30000</value>
</damage>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28012" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P./ M. Skill Power +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="PhysicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28013" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Resurrects from death with full recovery. Buffs/ debuffs stay when dying. However, the Noblesse Blessing and Lucky Charms disappear. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill11826</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<castRange>600</castRange>
<hitTime>4000</hitTime>
<reuseDelay>3600000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalLevel>2</abnormalLevel>
<abnormalType>RESURRECTION_SPECIAL</abnormalType>
<abnormalTime>3600</abnormalTime>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquippedCloakEnchant">
<amount>15</amount>
</condition>
</conditions>
<effects>
<effect name="ResurrectionSpecial">
<power>100</power>
<hpPercent>100</hpPercent>
<mpPercent>100</mpPercent>
<cpPercent>100</cpPercent>
</effect>
</effects>
</skill>
<skill id="28014" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28015</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28015" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>180000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
</effects>
</skill>
<skill id="28016" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Invincibility activated for 5 sec. if damage received when HP is below 30%. This effect is only activated once every 5 min. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>85</magicLevel>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByHpPercent">
<skillId>28017</skillId> <!-- Legendary Cloak - Invincibility -->
<skillLevel>1</skillLevel>
<percentTo>30</percentTo>
</effect>
</effects>
</skill>
<skill id="28017" toLevel="1" name="Legendary Cloak - Invincibility">
<!-- Become invincible. -->
<icon>icon.skill1917</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<abnormalType>INVINCIBILITY</abnormalType>
<abnormalVisualEffect>INVINCIBILITY</abnormalVisualEffect>
<isTriggeredSkill>true</isTriggeredSkill>
<magicLevel>99</magicLevel>
<operateType>A2</operateType>
<hitTime>200</hitTime>
<reuseDelay>300000</reuseDelay>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="RemainHpPer">
<amount>30</amount>
<percentType>LESS</percentType>
<affectType>CASTER</affectType>
</condition>
</conditions>
<effects>
<effect name="DamageBlock">
<type>BLOCK_HP</type>
</effect>
<effect name="DamageBlock">
<type>BLOCK_MP</type>
</effect>
<effect name="DebuffBlock" />
<effect name="DefenceTrait">
<HOLD>100</HOLD>
<SLEEP>100</SLEEP>
<DERANGEMENT>100</DERANGEMENT>
<CHANGEBODY>100</CHANGEBODY>
<PARALYZE>100</PARALYZE>
<SHOCK>100</SHOCK>
<KNOCKBACK>100</KNOCKBACK>
<KNOCKDOWN>100</KNOCKDOWN>
<AIRBIND>100</AIRBIND>
<TURN_STONE>100</TURN_STONE>
</effect>
<effect name="DispelByCategory">
<slot>DEBUFF</slot>
<rate>100</rate>
<max>10</max>
</effect>
<effect name="ResistDispelByCategory">
<amount>-100</amount>
<slot>ALL</slot>
</effect>
</effects>
</skill>
<skill id="28018" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28019</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28019" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>15</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
<effect name="Speed">
<amount>100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28020" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Vitality Bonus +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VitalityExpRate">
<amount>
<value level="1">2</value>
<value level="2">10</value>
<value level="3">20</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28021" toLevel="1" name="Scroll: Enchant Cloak">
<operateType>A1</operateType>
@ -149,11 +452,49 @@
</skill>
<skill id="28023" toLevel="1" name="Scroll: Ancient Cloak">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28024" toLevel="1" name="Spirit Stone Pack - Legendary">
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>28602</itemConsumeId>
<operateType>A1</operateType>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>500</hitTime>
<coolTime>500</coolTime>
<hitCancelTime>0</hitCancelTime>
<conditions>
<condition name="OpEncumbered">
<weightPercent>20</weightPercent>
<slotsPercent>10</slotsPercent>
</condition>
</conditions>
<effects>
<effect name="RestorationRandom">
<items>
<item chance="20">
<item id="28597" count="1" /> <!-- Cloak Augmenting Stone Ancient Kingdom -->
</item>
<item chance="20">
<item id="28598" count="1" /> <!-- Cloak Augmenting Stone Elmoreden -->
</item>
<item chance="20">
<item id="28599" count="1" /> <!-- Cloak Augmenting Stone Aden -->
</item>
<item chance="20">
<item id="28600" count="1" /> <!-- Cloak Augmenting Stone Elmore -->
</item>
<item chance="20">
<item id="28601" count="1" /> <!-- Cloak Augmenting Stone Ferios -->
</item>
</items>
</effect>
</effects>
</skill>
<skill id="28025" toLevel="2" name="Dragon's Treasure Chest">
<!-- Double-click to obtain an item. -->

View File

@ -2001,6 +2001,7 @@
<xs:element name="replacementSkillId" type="xs:unsignedShort" />
<xs:element name="isSummonSpawn" type="xs:boolean" />
<xs:element name="randomOffset" type="xs:unsignedByte" />
<xs:element name="percentTo" type="xs:unsignedByte" />
<xs:element name="debuffModifier" type="xs:decimal" />
<xs:element name="HATE">
<xs:complexType mixed="true">

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -4,130 +4,433 @@
<!-- SP when hunting +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="SpModify">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28001" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to recover $s1 of damage as HP. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VampiricAttack">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
<chance>60</chance>
</effect>
</effects>
</skill>
<skill id="28002" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
</effects>
</skill>
<skill id="28003" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- M. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
</effects>
</skill>
<skill id="28004" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Reflect $s1 of received damage -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="DamageShield">
<amount>
<value level="1">7</value>
<value level="2">8</value>
<value level="3">10</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28005" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Fixed Damage Resistance +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="RealDamageResist">
<amount>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28006" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a $s1 chance to return all status effects to the enemy. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>PHYSICAL</type>
</effect>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>MAGIC</type>
</effect>
</effects>
</skill>
<skill id="28007" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When using a single attack skill, there's a chance for Silence to be activated. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<magicLevel>99</magicLevel>
<magicCriticalRate>5</magicCriticalRate>
<effects>
<effect name="TriggerSkillByMagicType">
<magicTypes>0;1</magicTypes>
<skillId>28008</skillId> <!-- Legendary Cloak - Silence -->
<skillLevel>1</skillLevel>
<chance>30</chance>
<targetType>ENEMY</targetType>
</effect>
</effects>
</skill>
<skill id="28008" toLevel="1" name="Legendary Cloak - Silence">
<!-- Skills are sealed momentarily because of Silence. Ignores debuff immunity. -->
<icon>icon.skill1064</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isDebuff>true</isDebuff>
<castRange>1000</castRange>
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<activateRate>100</activateRate>
<abnormalType>SILENCE</abnormalType>
<abnormalVisualEffect>SILENCE</abnormalVisualEffect>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<trait>DERANGEMENT</trait>
<effects>
<effect name="Mute" />
<effect name="PhysicalMute" />
</effects>
</skill>
<skill id="28009" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When receiving a fatal attack, CP/ HP recovers by 100% for 1 min. When the effect is applied the buff disappears. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill19211</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>867</effectPoint>
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>60</abnormalTime>
<abnormalType>SHILLIEN_PROTECTION</abnormalType>
<abnormalVisualEffect>SHILLIEN_PROTECTION</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="IgnoreDeath" />
<effect name="TriggerSkillByDeathBlow">
<chance>100</chance>
<skillId>19221</skillId> <!-- Power of Darkness -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28010" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Activates a shield that has a chance to absorb $s1 damage when hit. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>30</chance>
<allowSkillAttack>true</allowSkillAttack>
<allowNormalAttack>true</allowNormalAttack>
<skillId>28011</skillId> <!-- Legendary Cloak - Barrier -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="28011" toLevel="3" name="Legendary Cloak - Barrier">
<!-- Activates a shield that has a chance to absorb $s2 damage when hit for $s1. -->
<icon>icon.skill1514</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<hitTime>1000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>60000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalType>ABSORB</abnormalType>
<abnormalVisualEffect>AVE_ABSORB2_SHIELD</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>99</magicLevel>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<staticReuse>true</staticReuse>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="AbsorbDamage">
<damage>
<value level="1">10000</value>
<value level="2">15000</value>
<value level="3">30000</value>
</damage>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28012" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P./ M. Skill Power +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="PhysicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28013" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Resurrects from death with full recovery. Buffs/ debuffs stay when dying. However, the Noblesse Blessing and Lucky Charms disappear. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill11826</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<castRange>600</castRange>
<hitTime>4000</hitTime>
<reuseDelay>3600000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalLevel>2</abnormalLevel>
<abnormalType>RESURRECTION_SPECIAL</abnormalType>
<abnormalTime>3600</abnormalTime>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquippedCloakEnchant">
<amount>15</amount>
</condition>
</conditions>
<effects>
<effect name="ResurrectionSpecial">
<power>100</power>
<hpPercent>100</hpPercent>
<mpPercent>100</mpPercent>
<cpPercent>100</cpPercent>
</effect>
</effects>
</skill>
<skill id="28014" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28015</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28015" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>180000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
</effects>
</skill>
<skill id="28016" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Invincibility activated for 5 sec. if damage received when HP is below 30%. This effect is only activated once every 5 min. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>85</magicLevel>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByHpPercent">
<skillId>28017</skillId> <!-- Legendary Cloak - Invincibility -->
<skillLevel>1</skillLevel>
<percentTo>30</percentTo>
</effect>
</effects>
</skill>
<skill id="28017" toLevel="1" name="Legendary Cloak - Invincibility">
<!-- Become invincible. -->
<icon>icon.skill1917</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<abnormalType>INVINCIBILITY</abnormalType>
<abnormalVisualEffect>INVINCIBILITY</abnormalVisualEffect>
<isTriggeredSkill>true</isTriggeredSkill>
<magicLevel>99</magicLevel>
<operateType>A2</operateType>
<hitTime>200</hitTime>
<reuseDelay>300000</reuseDelay>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="RemainHpPer">
<amount>30</amount>
<percentType>LESS</percentType>
<affectType>CASTER</affectType>
</condition>
</conditions>
<effects>
<effect name="DamageBlock">
<type>BLOCK_HP</type>
</effect>
<effect name="DamageBlock">
<type>BLOCK_MP</type>
</effect>
<effect name="DebuffBlock" />
<effect name="DefenceTrait">
<HOLD>100</HOLD>
<SLEEP>100</SLEEP>
<DERANGEMENT>100</DERANGEMENT>
<CHANGEBODY>100</CHANGEBODY>
<PARALYZE>100</PARALYZE>
<SHOCK>100</SHOCK>
<KNOCKBACK>100</KNOCKBACK>
<KNOCKDOWN>100</KNOCKDOWN>
<AIRBIND>100</AIRBIND>
<TURN_STONE>100</TURN_STONE>
</effect>
<effect name="DispelByCategory">
<slot>DEBUFF</slot>
<rate>100</rate>
<max>10</max>
</effect>
<effect name="ResistDispelByCategory">
<amount>-100</amount>
<slot>ALL</slot>
</effect>
</effects>
</skill>
<skill id="28018" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28019</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28019" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>15</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
<effect name="Speed">
<amount>100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28020" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Vitality Bonus +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VitalityExpRate">
<amount>
<value level="1">2</value>
<value level="2">10</value>
<value level="3">20</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28021" toLevel="1" name="Scroll: Enchant Cloak">
<operateType>A1</operateType>
@ -149,11 +452,49 @@
</skill>
<skill id="28023" toLevel="1" name="Scroll: Ancient Cloak">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28024" toLevel="1" name="Spirit Stone Pack - Legendary">
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>28602</itemConsumeId>
<operateType>A1</operateType>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>500</hitTime>
<coolTime>500</coolTime>
<hitCancelTime>0</hitCancelTime>
<conditions>
<condition name="OpEncumbered">
<weightPercent>20</weightPercent>
<slotsPercent>10</slotsPercent>
</condition>
</conditions>
<effects>
<effect name="RestorationRandom">
<items>
<item chance="20">
<item id="28597" count="1" /> <!-- Cloak Augmenting Stone Ancient Kingdom -->
</item>
<item chance="20">
<item id="28598" count="1" /> <!-- Cloak Augmenting Stone Elmoreden -->
</item>
<item chance="20">
<item id="28599" count="1" /> <!-- Cloak Augmenting Stone Aden -->
</item>
<item chance="20">
<item id="28600" count="1" /> <!-- Cloak Augmenting Stone Elmore -->
</item>
<item chance="20">
<item id="28601" count="1" /> <!-- Cloak Augmenting Stone Ferios -->
</item>
</items>
</effect>
</effects>
</skill>
<skill id="28025" toLevel="2" name="Dragon's Treasure Chest">
<!-- Double-click to obtain an item. -->

View File

@ -2001,6 +2001,7 @@
<xs:element name="replacementSkillId" type="xs:unsignedShort" />
<xs:element name="isSummonSpawn" type="xs:boolean" />
<xs:element name="randomOffset" type="xs:unsignedByte" />
<xs:element name="percentTo" type="xs:unsignedByte" />
<xs:element name="debuffModifier" type="xs:decimal" />
<xs:element name="HATE">
<xs:complexType mixed="true">

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -4,130 +4,433 @@
<!-- SP when hunting +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="SpModify">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28001" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to recover $s1 of damage as HP. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VampiricAttack">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
<chance>60</chance>
</effect>
</effects>
</skill>
<skill id="28002" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
</effects>
</skill>
<skill id="28003" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- M. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
</effects>
</skill>
<skill id="28004" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Reflect $s1 of received damage -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="DamageShield">
<amount>
<value level="1">7</value>
<value level="2">8</value>
<value level="3">10</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28005" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Fixed Damage Resistance +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="RealDamageResist">
<amount>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28006" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a $s1 chance to return all status effects to the enemy. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>PHYSICAL</type>
</effect>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>MAGIC</type>
</effect>
</effects>
</skill>
<skill id="28007" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When using a single attack skill, there's a chance for Silence to be activated. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<magicLevel>99</magicLevel>
<magicCriticalRate>5</magicCriticalRate>
<effects>
<effect name="TriggerSkillByMagicType">
<magicTypes>0;1</magicTypes>
<skillId>28008</skillId> <!-- Legendary Cloak - Silence -->
<skillLevel>1</skillLevel>
<chance>30</chance>
<targetType>ENEMY</targetType>
</effect>
</effects>
</skill>
<skill id="28008" toLevel="1" name="Legendary Cloak - Silence">
<!-- Skills are sealed momentarily because of Silence. Ignores debuff immunity. -->
<icon>icon.skill1064</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isDebuff>true</isDebuff>
<castRange>1000</castRange>
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<activateRate>100</activateRate>
<abnormalType>SILENCE</abnormalType>
<abnormalVisualEffect>SILENCE</abnormalVisualEffect>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<trait>DERANGEMENT</trait>
<effects>
<effect name="Mute" />
<effect name="PhysicalMute" />
</effects>
</skill>
<skill id="28009" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When receiving a fatal attack, CP/ HP recovers by 100% for 1 min When the effect is applied the buff disappears. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill19211</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>867</effectPoint>
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>60</abnormalTime>
<abnormalType>SHILLIEN_PROTECTION</abnormalType>
<abnormalVisualEffect>SHILLIEN_PROTECTION</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="IgnoreDeath" />
<effect name="TriggerSkillByDeathBlow">
<chance>100</chance>
<skillId>19221</skillId> <!-- Power of Darkness -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28010" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Activates a shield that has a chance to absorb $s1 damage when hit. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>30</chance>
<allowSkillAttack>true</allowSkillAttack>
<allowNormalAttack>true</allowNormalAttack>
<skillId>28011</skillId> <!-- Legendary Cloak - Barrier -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="28011" toLevel="3" name="Legendary Cloak - Barrier">
<!-- Activates a shield that has a chance to absorb $s2 damage when hit for $s1 -->
<icon>icon.skill1514</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<hitTime>1000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>60000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalType>ABSORB</abnormalType>
<abnormalVisualEffect>AVE_ABSORB2_SHIELD</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>99</magicLevel>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<staticReuse>true</staticReuse>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="AbsorbDamage">
<damage>
<value level="1">10000</value>
<value level="2">15000</value>
<value level="3">30000</value>
</damage>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28012" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P./ M. Skill Power +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="PhysicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28013" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Resurrects from death with full recovery. Buffs/ debuffs stay when dying. However, the Noblesse Blessing and Lucky Charms disappear. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill11826</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<castRange>600</castRange>
<hitTime>4000</hitTime>
<reuseDelay>3600000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalLevel>2</abnormalLevel>
<abnormalType>RESURRECTION_SPECIAL</abnormalType>
<abnormalTime>3600</abnormalTime>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquippedCloakEnchant">
<amount>15</amount>
</condition>
</conditions>
<effects>
<effect name="ResurrectionSpecial">
<power>100</power>
<hpPercent>100</hpPercent>
<mpPercent>100</mpPercent>
<cpPercent>100</cpPercent>
</effect>
</effects>
</skill>
<skill id="28014" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28015</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28015" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>180000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
</effects>
</skill>
<skill id="28016" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Invincibility activated for 5 sec. if damage received when HP is below 30%. This effect is only activated once every 5 min. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>85</magicLevel>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByHpPercent">
<skillId>28017</skillId> <!-- Legendary Cloak - Invincibility -->
<skillLevel>1</skillLevel>
<percentTo>30</percentTo>
</effect>
</effects>
</skill>
<skill id="28017" toLevel="1" name="Legendary Cloak - Invincibility">
<!-- Become invincible. -->
<icon>icon.skill1917</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<abnormalType>INVINCIBILITY</abnormalType>
<abnormalVisualEffect>INVINCIBILITY</abnormalVisualEffect>
<isTriggeredSkill>true</isTriggeredSkill>
<magicLevel>99</magicLevel>
<operateType>A2</operateType>
<hitTime>200</hitTime>
<reuseDelay>300000</reuseDelay>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="RemainHpPer">
<amount>30</amount>
<percentType>LESS</percentType>
<affectType>CASTER</affectType>
</condition>
</conditions>
<effects>
<effect name="DamageBlock">
<type>BLOCK_HP</type>
</effect>
<effect name="DamageBlock">
<type>BLOCK_MP</type>
</effect>
<effect name="DebuffBlock" />
<effect name="DefenceTrait">
<HOLD>100</HOLD>
<SLEEP>100</SLEEP>
<DERANGEMENT>100</DERANGEMENT>
<CHANGEBODY>100</CHANGEBODY>
<PARALYZE>100</PARALYZE>
<SHOCK>100</SHOCK>
<KNOCKBACK>100</KNOCKBACK>
<KNOCKDOWN>100</KNOCKDOWN>
<AIRBIND>100</AIRBIND>
<TURN_STONE>100</TURN_STONE>
</effect>
<effect name="DispelByCategory">
<slot>DEBUFF</slot>
<rate>100</rate>
<max>10</max>
</effect>
<effect name="ResistDispelByCategory">
<amount>-100</amount>
<slot>ALL</slot>
</effect>
</effects>
</skill>
<skill id="28018" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28019</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28019" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>15</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
<effect name="Speed">
<amount>100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28020" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Vitality Bonus +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VitalityExpRate">
<amount>
<value level="1">2</value>
<value level="2">10</value>
<value level="3">20</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28021" toLevel="1" name="Scroll: Enchant Cloak">
<operateType>A1</operateType>
@ -149,11 +452,49 @@
</skill>
<skill id="28023" toLevel="1" name="Scroll: Ancient Cloak">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28024" toLevel="1" name="Spirit Stone Pack - Legendary">
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>28602</itemConsumeId>
<operateType>A1</operateType>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>500</hitTime>
<coolTime>500</coolTime>
<hitCancelTime>0</hitCancelTime>
<conditions>
<condition name="OpEncumbered">
<weightPercent>20</weightPercent>
<slotsPercent>10</slotsPercent>
</condition>
</conditions>
<effects>
<effect name="RestorationRandom">
<items>
<item chance="20">
<item id="28597" count="1" /> <!-- Cloak Augmenting Stone Ancient Kingdom -->
</item>
<item chance="20">
<item id="28598" count="1" /> <!-- Cloak Augmenting Stone Elmoreden -->
</item>
<item chance="20">
<item id="28599" count="1" /> <!-- Cloak Augmenting Stone Aden -->
</item>
<item chance="20">
<item id="28600" count="1" /> <!-- Cloak Augmenting Stone Elmore -->
</item>
<item chance="20">
<item id="28601" count="1" /> <!-- Cloak Augmenting Stone Ferios -->
</item>
</items>
</effect>
</effects>
</skill>
<skill id="28025" toLevel="2" name="Dragon's Treasure Chest">
<!-- Double-click to obtain an item. -->

View File

@ -2015,6 +2015,7 @@
<xs:element name="replacementSkillId" type="xs:unsignedShort" />
<xs:element name="isSummonSpawn" type="xs:boolean" />
<xs:element name="randomOffset" type="xs:unsignedByte" />
<xs:element name="percentTo" type="xs:unsignedByte" />
<xs:element name="debuffModifier" type="xs:decimal" />
<xs:element name="HATE">
<xs:complexType mixed="true">

View File

@ -54,6 +54,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -4,130 +4,433 @@
<!-- SP when hunting +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="SpModify">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28001" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to recover $s1 of damage as HP. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VampiricAttack">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
<chance>60</chance>
</effect>
</effects>
</skill>
<skill id="28002" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
</effects>
</skill>
<skill id="28003" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- M. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
</effects>
</skill>
<skill id="28004" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Reflects $s1 of the received damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="DamageShield">
<amount>
<value level="1">7</value>
<value level="2">8</value>
<value level="3">10</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28005" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Fixed Damage Resistance +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="RealDamageResist">
<amount>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28006" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a $s1 chance to return all status effects to the enemy. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>PHYSICAL</type>
</effect>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>MAGIC</type>
</effect>
</effects>
</skill>
<skill id="28007" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When using a single attack skill, there's a chance for Silence to be activated. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<magicLevel>99</magicLevel>
<magicCriticalRate>5</magicCriticalRate>
<effects>
<effect name="TriggerSkillByMagicType">
<magicTypes>0;1</magicTypes>
<skillId>28008</skillId> <!-- Legendary Cloak - Silence -->
<skillLevel>1</skillLevel>
<chance>30</chance>
<targetType>ENEMY</targetType>
</effect>
</effects>
</skill>
<skill id="28008" toLevel="1" name="Legendary Cloak - Silence">
<!-- Skills are sealed momentarily because of Silence. Ignores debuff immunity. -->
<icon>icon.skill1064</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isDebuff>true</isDebuff>
<castRange>1000</castRange>
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<activateRate>100</activateRate>
<abnormalType>SILENCE</abnormalType>
<abnormalVisualEffect>SILENCE</abnormalVisualEffect>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<trait>DERANGEMENT</trait>
<effects>
<effect name="Mute" />
<effect name="PhysicalMute" />
</effects>
</skill>
<skill id="28009" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When receiving a fatal attack, CP/ HP recovers by $s2 for $s1 When the effect is applied the buff disappears. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill19211</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>867</effectPoint>
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>60</abnormalTime>
<abnormalType>SHILLIEN_PROTECTION</abnormalType>
<abnormalVisualEffect>SHILLIEN_PROTECTION</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="IgnoreDeath" />
<effect name="TriggerSkillByDeathBlow">
<chance>100</chance>
<skillId>19221</skillId> <!-- Power of Darkness -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28010" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Activates a shield that has a chance to absorb $s1 damage when hit. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>30</chance>
<allowSkillAttack>true</allowSkillAttack>
<allowNormalAttack>true</allowNormalAttack>
<skillId>28011</skillId> <!-- Legendary Cloak - Barrier -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="28011" toLevel="3" name="Legendary Cloak - Barrier">
<!-- Activates a shield that has a chance to absorb $s2 damage when hit for $s1 -->
<icon>icon.skill1514</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<hitTime>1000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>60000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalType>ABSORB</abnormalType>
<abnormalVisualEffect>AVE_ABSORB2_SHIELD</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>99</magicLevel>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<staticReuse>true</staticReuse>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="AbsorbDamage">
<damage>
<value level="1">10000</value>
<value level="2">15000</value>
<value level="3">30000</value>
</damage>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28012" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P./ M. Skill Power +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="PhysicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28013" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Resurrects from death with full recovery. Buffs/ debuffs stay when dying. However, the Noblesse Blessing and Lucky Charms disappear. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill11826</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<castRange>600</castRange>
<hitTime>4000</hitTime>
<reuseDelay>3600000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalLevel>2</abnormalLevel>
<abnormalType>RESURRECTION_SPECIAL</abnormalType>
<abnormalTime>3600</abnormalTime>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquippedCloakEnchant">
<amount>15</amount>
</condition>
</conditions>
<effects>
<effect name="ResurrectionSpecial">
<power>100</power>
<hpPercent>100</hpPercent>
<mpPercent>100</mpPercent>
<cpPercent>100</cpPercent>
</effect>
</effects>
</skill>
<skill id="28014" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28015</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28015" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>180000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
</effects>
</skill>
<skill id="28016" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Invincibility activated for 5 sec. if damage received when HP is below 30%. This effect is only activated once every 5 min. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>85</magicLevel>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByHpPercent">
<skillId>28017</skillId> <!-- Legendary Cloak - Invincibility -->
<skillLevel>1</skillLevel>
<percentTo>30</percentTo>
</effect>
</effects>
</skill>
<skill id="28017" toLevel="1" name="Legendary Cloak - Invincibility">
<!-- Grants invincibility. -->
<icon>icon.skill1917</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<abnormalType>INVINCIBILITY</abnormalType>
<abnormalVisualEffect>INVINCIBILITY</abnormalVisualEffect>
<isTriggeredSkill>true</isTriggeredSkill>
<magicLevel>99</magicLevel>
<operateType>A2</operateType>
<hitTime>200</hitTime>
<reuseDelay>300000</reuseDelay>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="RemainHpPer">
<amount>30</amount>
<percentType>LESS</percentType>
<affectType>CASTER</affectType>
</condition>
</conditions>
<effects>
<effect name="DamageBlock">
<type>BLOCK_HP</type>
</effect>
<effect name="DamageBlock">
<type>BLOCK_MP</type>
</effect>
<effect name="DebuffBlock" />
<effect name="DefenceTrait">
<HOLD>100</HOLD>
<SLEEP>100</SLEEP>
<DERANGEMENT>100</DERANGEMENT>
<CHANGEBODY>100</CHANGEBODY>
<PARALYZE>100</PARALYZE>
<SHOCK>100</SHOCK>
<KNOCKBACK>100</KNOCKBACK>
<KNOCKDOWN>100</KNOCKDOWN>
<AIRBIND>100</AIRBIND>
<TURN_STONE>100</TURN_STONE>
</effect>
<effect name="DispelByCategory">
<slot>DEBUFF</slot>
<rate>100</rate>
<max>10</max>
</effect>
<effect name="ResistDispelByCategory">
<amount>-100</amount>
<slot>ALL</slot>
</effect>
</effects>
</skill>
<skill id="28018" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28019</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28019" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>15</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
<effect name="Speed">
<amount>100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28020" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Vitality Bonus +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VitalityExpRate">
<amount>
<value level="1">2</value>
<value level="2">10</value>
<value level="3">20</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28021" toLevel="1" name="Scroll: Enchant Cloak">
<operateType>A1</operateType>
@ -149,11 +452,49 @@
</skill>
<skill id="28023" toLevel="1" name="Scroll: Ancient Cloak">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28024" toLevel="1" name="Spirit Stone Pack - Legendary">
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>28602</itemConsumeId>
<operateType>A1</operateType>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>500</hitTime>
<coolTime>500</coolTime>
<hitCancelTime>0</hitCancelTime>
<conditions>
<condition name="OpEncumbered">
<weightPercent>20</weightPercent>
<slotsPercent>10</slotsPercent>
</condition>
</conditions>
<effects>
<effect name="RestorationRandom">
<items>
<item chance="20">
<item id="28597" count="1" /> <!-- Cloak Augmenting Stone Ancient Kingdom -->
</item>
<item chance="20">
<item id="28598" count="1" /> <!-- Cloak Augmenting Stone Elmoreden -->
</item>
<item chance="20">
<item id="28599" count="1" /> <!-- Cloak Augmenting Stone Aden -->
</item>
<item chance="20">
<item id="28600" count="1" /> <!-- Cloak Augmenting Stone Elmore -->
</item>
<item chance="20">
<item id="28601" count="1" /> <!-- Cloak Augmenting Stone Ferios -->
</item>
</items>
</effect>
</effects>
</skill>
<skill id="28025" toLevel="2" name="Dragon's Treasure Chest">
<!-- Double-click to obtain an item. -->

View File

@ -2025,6 +2025,7 @@
<xs:element name="replacementSkillId" type="xs:unsignedShort" />
<xs:element name="isSummonSpawn" type="xs:boolean" />
<xs:element name="randomOffset" type="xs:unsignedByte" />
<xs:element name="percentTo" type="xs:unsignedByte" />
<xs:element name="debuffModifier" type="xs:decimal" />
<xs:element name="HATE">
<xs:complexType mixed="true">

View File

@ -54,6 +54,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -4,130 +4,433 @@
<!-- SP when hunting +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="SpModify">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28001" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to recover $s1 of damage as HP. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VampiricAttack">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
<chance>60</chance>
</effect>
</effects>
</skill>
<skill id="28002" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
</effects>
</skill>
<skill id="28003" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- M. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
</effects>
</skill>
<skill id="28004" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Reflects $s1 of the received damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="DamageShield">
<amount>
<value level="1">7</value>
<value level="2">8</value>
<value level="3">10</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28005" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Fixed Damage Resistance +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="RealDamageResist">
<amount>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28006" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a $s1 chance to return all status effects to the enemy. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>PHYSICAL</type>
</effect>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>MAGIC</type>
</effect>
</effects>
</skill>
<skill id="28007" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When using a single attack skill, there's a chance for Silence to be activated. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<magicLevel>99</magicLevel>
<magicCriticalRate>5</magicCriticalRate>
<effects>
<effect name="TriggerSkillByMagicType">
<magicTypes>0;1</magicTypes>
<skillId>28008</skillId> <!-- Legendary Cloak - Silence -->
<skillLevel>1</skillLevel>
<chance>30</chance>
<targetType>ENEMY</targetType>
</effect>
</effects>
</skill>
<skill id="28008" toLevel="1" name="Legendary Cloak - Silence">
<!-- Skills are sealed momentarily because of Silence. Ignores debuff immunity. -->
<icon>icon.skill1064</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isDebuff>true</isDebuff>
<castRange>1000</castRange>
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<activateRate>100</activateRate>
<abnormalType>SILENCE</abnormalType>
<abnormalVisualEffect>SILENCE</abnormalVisualEffect>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<trait>DERANGEMENT</trait>
<effects>
<effect name="Mute" />
<effect name="PhysicalMute" />
</effects>
</skill>
<skill id="28009" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When receiving a fatal attack, CP/ HP recovers by $s2 for $s1 When the effect is applied the buff disappears. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill19211</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>867</effectPoint>
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>60</abnormalTime>
<abnormalType>SHILLIEN_PROTECTION</abnormalType>
<abnormalVisualEffect>SHILLIEN_PROTECTION</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="IgnoreDeath" />
<effect name="TriggerSkillByDeathBlow">
<chance>100</chance>
<skillId>19221</skillId> <!-- Power of Darkness -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28010" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Activates a shield that has a chance to absorb $s1 damage when hit. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>30</chance>
<allowSkillAttack>true</allowSkillAttack>
<allowNormalAttack>true</allowNormalAttack>
<skillId>28011</skillId> <!-- Legendary Cloak - Barrier -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="28011" toLevel="3" name="Legendary Cloak - Barrier">
<!-- Activates a shield that has a chance to absorb $s2 damage when hit for $s1 -->
<icon>icon.skill1514</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<hitTime>1000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>60000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalType>ABSORB</abnormalType>
<abnormalVisualEffect>AVE_ABSORB2_SHIELD</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>99</magicLevel>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<staticReuse>true</staticReuse>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="AbsorbDamage">
<damage>
<value level="1">10000</value>
<value level="2">15000</value>
<value level="3">30000</value>
</damage>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28012" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P./ M. Skill Power +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="PhysicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28013" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Resurrects from death with full recovery. Buffs/ debuffs stay when dying. However, the Noblesse Blessing and Lucky Charms disappear. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill11826</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<castRange>600</castRange>
<hitTime>4000</hitTime>
<reuseDelay>3600000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalLevel>2</abnormalLevel>
<abnormalType>RESURRECTION_SPECIAL</abnormalType>
<abnormalTime>3600</abnormalTime>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquippedCloakEnchant">
<amount>15</amount>
</condition>
</conditions>
<effects>
<effect name="ResurrectionSpecial">
<power>100</power>
<hpPercent>100</hpPercent>
<mpPercent>100</mpPercent>
<cpPercent>100</cpPercent>
</effect>
</effects>
</skill>
<skill id="28014" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28015</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28015" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>180000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
</effects>
</skill>
<skill id="28016" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Invincibility activated for 5 sec. if damage received when HP is below 30%. This effect is only activated once every 5 min. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>85</magicLevel>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByHpPercent">
<skillId>28017</skillId> <!-- Legendary Cloak - Invincibility -->
<skillLevel>1</skillLevel>
<percentTo>30</percentTo>
</effect>
</effects>
</skill>
<skill id="28017" toLevel="1" name="Legendary Cloak - Invincibility">
<!-- Grants invincibility. -->
<icon>icon.skill1917</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<abnormalType>INVINCIBILITY</abnormalType>
<abnormalVisualEffect>INVINCIBILITY</abnormalVisualEffect>
<isTriggeredSkill>true</isTriggeredSkill>
<magicLevel>99</magicLevel>
<operateType>A2</operateType>
<hitTime>200</hitTime>
<reuseDelay>300000</reuseDelay>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="RemainHpPer">
<amount>30</amount>
<percentType>LESS</percentType>
<affectType>CASTER</affectType>
</condition>
</conditions>
<effects>
<effect name="DamageBlock">
<type>BLOCK_HP</type>
</effect>
<effect name="DamageBlock">
<type>BLOCK_MP</type>
</effect>
<effect name="DebuffBlock" />
<effect name="DefenceTrait">
<HOLD>100</HOLD>
<SLEEP>100</SLEEP>
<DERANGEMENT>100</DERANGEMENT>
<CHANGEBODY>100</CHANGEBODY>
<PARALYZE>100</PARALYZE>
<SHOCK>100</SHOCK>
<KNOCKBACK>100</KNOCKBACK>
<KNOCKDOWN>100</KNOCKDOWN>
<AIRBIND>100</AIRBIND>
<TURN_STONE>100</TURN_STONE>
</effect>
<effect name="DispelByCategory">
<slot>DEBUFF</slot>
<rate>100</rate>
<max>10</max>
</effect>
<effect name="ResistDispelByCategory">
<amount>-100</amount>
<slot>ALL</slot>
</effect>
</effects>
</skill>
<skill id="28018" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28019</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28019" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>15</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
<effect name="Speed">
<amount>100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28020" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Vitality bonus +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VitalityExpRate">
<amount>
<value level="1">2</value>
<value level="2">10</value>
<value level="3">20</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28021" toLevel="1" name="Scroll: Enchant Cloak">
<operateType>A1</operateType>
@ -149,11 +452,49 @@
</skill>
<skill id="28023" toLevel="1" name="Scroll: Enchant Ancient Cloak">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28024" toLevel="1" name="Spirit Stone Pack - Legendary">
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>28602</itemConsumeId>
<operateType>A1</operateType>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>500</hitTime>
<coolTime>500</coolTime>
<hitCancelTime>0</hitCancelTime>
<conditions>
<condition name="OpEncumbered">
<weightPercent>20</weightPercent>
<slotsPercent>10</slotsPercent>
</condition>
</conditions>
<effects>
<effect name="RestorationRandom">
<items>
<item chance="20">
<item id="28597" count="1" /> <!-- Cloak Augmenting Stone Ancient Kingdom -->
</item>
<item chance="20">
<item id="28598" count="1" /> <!-- Cloak Augmenting Stone Elmoreden -->
</item>
<item chance="20">
<item id="28599" count="1" /> <!-- Cloak Augmenting Stone Aden -->
</item>
<item chance="20">
<item id="28600" count="1" /> <!-- Cloak Augmenting Stone Elmore -->
</item>
<item chance="20">
<item id="28601" count="1" /> <!-- Cloak Augmenting Stone Ferios -->
</item>
</items>
</effect>
</effects>
</skill>
<skill id="28025" toLevel="2" name="Dragon's Treasure Chest">
<!-- Double-click to obtain an item. -->

View File

@ -2025,6 +2025,7 @@
<xs:element name="replacementSkillId" type="xs:unsignedShort" />
<xs:element name="isSummonSpawn" type="xs:boolean" />
<xs:element name="randomOffset" type="xs:unsignedByte" />
<xs:element name="percentTo" type="xs:unsignedByte" />
<xs:element name="debuffModifier" type="xs:decimal" />
<xs:element name="HATE">
<xs:complexType mixed="true">

View File

@ -54,6 +54,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -4,130 +4,433 @@
<!-- SP when hunting +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="SpModify">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28001" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to recover $s1 of damage as HP. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VampiricAttack">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
<chance>60</chance>
</effect>
</effects>
</skill>
<skill id="28002" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
</effects>
</skill>
<skill id="28003" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- M. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
</effects>
</skill>
<skill id="28004" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Reflects $s1 of the received damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="DamageShield">
<amount>
<value level="1">7</value>
<value level="2">8</value>
<value level="3">10</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28005" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Fixed Damage Resistance +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="RealDamageResist">
<amount>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28006" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a $s1 chance to return all status effects to the enemy. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>PHYSICAL</type>
</effect>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>MAGIC</type>
</effect>
</effects>
</skill>
<skill id="28007" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When using a single attack skill, there's a chance for Silence to be activated. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<magicLevel>99</magicLevel>
<magicCriticalRate>5</magicCriticalRate>
<effects>
<effect name="TriggerSkillByMagicType">
<magicTypes>0;1</magicTypes>
<skillId>28008</skillId> <!-- Legendary Cloak - Silence -->
<skillLevel>1</skillLevel>
<chance>30</chance>
<targetType>ENEMY</targetType>
</effect>
</effects>
</skill>
<skill id="28008" toLevel="1" name="Legendary Cloak - Silence">
<!-- Skills are sealed momentarily because of Silence. Ignores debuff immunity. -->
<icon>icon.skill1064</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isDebuff>true</isDebuff>
<castRange>1000</castRange>
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<activateRate>100</activateRate>
<abnormalType>SILENCE</abnormalType>
<abnormalVisualEffect>SILENCE</abnormalVisualEffect>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<trait>DERANGEMENT</trait>
<effects>
<effect name="Mute" />
<effect name="PhysicalMute" />
</effects>
</skill>
<skill id="28009" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When receiving a fatal attack, CP/ HP recovers by $s2 for $s1 When the effect is applied the buff disappears. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill19211</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>867</effectPoint>
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>60</abnormalTime>
<abnormalType>SHILLIEN_PROTECTION</abnormalType>
<abnormalVisualEffect>SHILLIEN_PROTECTION</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="IgnoreDeath" />
<effect name="TriggerSkillByDeathBlow">
<chance>100</chance>
<skillId>19221</skillId> <!-- Power of Darkness -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28010" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Activates a shield that has a chance to absorb $s1 damage when hit. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>30</chance>
<allowSkillAttack>true</allowSkillAttack>
<allowNormalAttack>true</allowNormalAttack>
<skillId>28011</skillId> <!-- Legendary Cloak - Barrier -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="28011" toLevel="3" name="Legendary Cloak - Barrier">
<!-- Activates a shield that has a chance to absorb $s2 damage when hit for $s1 -->
<icon>icon.skill1514</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<hitTime>1000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>60000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalType>ABSORB</abnormalType>
<abnormalVisualEffect>AVE_ABSORB2_SHIELD</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>99</magicLevel>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<staticReuse>true</staticReuse>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="AbsorbDamage">
<damage>
<value level="1">10000</value>
<value level="2">15000</value>
<value level="3">30000</value>
</damage>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28012" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P./ M. Skill Power +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="PhysicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28013" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Resurrects from death with full recovery. Buffs/ debuffs stay when dying. However, the Noblesse Blessing and Lucky Charms disappear. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill11826</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<castRange>600</castRange>
<hitTime>4000</hitTime>
<reuseDelay>3600000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalLevel>2</abnormalLevel>
<abnormalType>RESURRECTION_SPECIAL</abnormalType>
<abnormalTime>3600</abnormalTime>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquippedCloakEnchant">
<amount>15</amount>
</condition>
</conditions>
<effects>
<effect name="ResurrectionSpecial">
<power>100</power>
<hpPercent>100</hpPercent>
<mpPercent>100</mpPercent>
<cpPercent>100</cpPercent>
</effect>
</effects>
</skill>
<skill id="28014" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28015</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28015" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 sec. by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>180000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
</effects>
</skill>
<skill id="28016" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Invincibility activated for 5 sec. if damage received when HP is below 30%. This effect is only activated once every 5 min. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>85</magicLevel>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByHpPercent">
<skillId>28017</skillId> <!-- Legendary Cloak - Invincibility -->
<skillLevel>1</skillLevel>
<percentTo>30</percentTo>
</effect>
</effects>
</skill>
<skill id="28017" toLevel="1" name="Legendary Cloak - Invincibility">
<!-- Grants invincibility. -->
<icon>icon.skill1917</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<abnormalType>INVINCIBILITY</abnormalType>
<abnormalVisualEffect>INVINCIBILITY</abnormalVisualEffect>
<isTriggeredSkill>true</isTriggeredSkill>
<magicLevel>99</magicLevel>
<operateType>A2</operateType>
<hitTime>200</hitTime>
<reuseDelay>300000</reuseDelay>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="RemainHpPer">
<amount>30</amount>
<percentType>LESS</percentType>
<affectType>CASTER</affectType>
</condition>
</conditions>
<effects>
<effect name="DamageBlock">
<type>BLOCK_HP</type>
</effect>
<effect name="DamageBlock">
<type>BLOCK_MP</type>
</effect>
<effect name="DebuffBlock" />
<effect name="DefenceTrait">
<HOLD>100</HOLD>
<SLEEP>100</SLEEP>
<DERANGEMENT>100</DERANGEMENT>
<CHANGEBODY>100</CHANGEBODY>
<PARALYZE>100</PARALYZE>
<SHOCK>100</SHOCK>
<KNOCKBACK>100</KNOCKBACK>
<KNOCKDOWN>100</KNOCKDOWN>
<AIRBIND>100</AIRBIND>
<TURN_STONE>100</TURN_STONE>
</effect>
<effect name="DispelByCategory">
<slot>DEBUFF</slot>
<rate>100</rate>
<max>10</max>
</effect>
<effect name="ResistDispelByCategory">
<amount>-100</amount>
<slot>ALL</slot>
</effect>
</effects>
</skill>
<skill id="28018" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28019</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28019" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 sec. by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>15</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
<effect name="Speed">
<amount>100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28020" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Vitality bonus +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VitalityExpRate">
<amount>
<value level="1">2</value>
<value level="2">10</value>
<value level="3">20</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28021" toLevel="1" name="Scroll: Enchant Cloak">
<operateType>A1</operateType>
@ -149,11 +452,49 @@
</skill>
<skill id="28023" toLevel="1" name="Scroll: Enchant Ancient Cloak">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28024" toLevel="1" name="Spirit Stone Pack - Legendary">
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>28602</itemConsumeId>
<operateType>A1</operateType>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>500</hitTime>
<coolTime>500</coolTime>
<hitCancelTime>0</hitCancelTime>
<conditions>
<condition name="OpEncumbered">
<weightPercent>20</weightPercent>
<slotsPercent>10</slotsPercent>
</condition>
</conditions>
<effects>
<effect name="RestorationRandom">
<items>
<item chance="20">
<item id="28597" count="1" /> <!-- Cloak Augmenting Stone Ancient Kingdom -->
</item>
<item chance="20">
<item id="28598" count="1" /> <!-- Cloak Augmenting Stone Elmoreden -->
</item>
<item chance="20">
<item id="28599" count="1" /> <!-- Cloak Augmenting Stone Aden -->
</item>
<item chance="20">
<item id="28600" count="1" /> <!-- Cloak Augmenting Stone Elmore -->
</item>
<item chance="20">
<item id="28601" count="1" /> <!-- Cloak Augmenting Stone Ferios -->
</item>
</items>
</effect>
</effects>
</skill>
<skill id="28025" toLevel="2" name="Dragon's Treasure Chest">
<!-- Double-click to obtain an item. -->

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -53,6 +53,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -4,130 +4,433 @@
<!-- SP when hunting +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="SpModify">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28001" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to recover $s1 of damage as HP. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VampiricAttack">
<amount>
<value level="1">4</value>
<value level="2">4.5</value>
<value level="3">5</value>
</amount>
<chance>60</chance>
</effect>
</effects>
</skill>
<skill id="28002" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
</effects>
</skill>
<skill id="28003" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- M. Skill MP Consumption -$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="MagicMpCost">
<amount>
<value level="1">-3</value>
<value level="2">-4</value>
<value level="3">-5</value>
</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
</effects>
</skill>
<skill id="28004" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Reflect $s1 of received damage -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="DamageShield">
<amount>
<value level="1">7</value>
<value level="2">8</value>
<value level="3">10</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28005" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Fixed Damage Resistance +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="RealDamageResist">
<amount>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28006" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Has a $s1 chance to return all status effects to the enemy. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>PHYSICAL</type>
</effect>
<effect name="ReflectSkill">
<amount>
<value level="1">3</value>
<value level="2">4</value>
<value level="3">5</value>
</amount>
<type>MAGIC</type>
</effect>
</effects>
</skill>
<skill id="28007" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When using a single attack skill, there's a chance for Silence to be activated. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<magicLevel>99</magicLevel>
<magicCriticalRate>5</magicCriticalRate>
<effects>
<effect name="TriggerSkillByMagicType">
<magicTypes>0;1</magicTypes>
<skillId>28008</skillId> <!-- Legendary Cloak - Silence -->
<skillLevel>1</skillLevel>
<chance>30</chance>
<targetType>ENEMY</targetType>
</effect>
</effects>
</skill>
<skill id="28008" toLevel="1" name="Legendary Cloak - Silence">
<!-- Skills are sealed momentarily because of Silence. Ignores debuff immunity. -->
<icon>icon.skill1064</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isDebuff>true</isDebuff>
<castRange>1000</castRange>
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<activateRate>100</activateRate>
<abnormalType>SILENCE</abnormalType>
<abnormalVisualEffect>SILENCE</abnormalVisualEffect>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<trait>DERANGEMENT</trait>
<effects>
<effect name="Mute" />
<effect name="PhysicalMute" />
</effects>
</skill>
<skill id="28009" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- When receiving a fatal attack, CP/HP recovers by 100% for 1 min. When the effect is applied the buff disappears. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill19211</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>867</effectPoint>
<hitTime>1500</hitTime>
<coolTime>300</coolTime>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>60</abnormalTime>
<abnormalType>SHILLIEN_PROTECTION</abnormalType>
<abnormalVisualEffect>SHILLIEN_PROTECTION</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="IgnoreDeath" />
<effect name="TriggerSkillByDeathBlow">
<chance>100</chance>
<skillId>19221</skillId> <!-- Power of Darkness -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28010" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Activates a shield that has a chance to absorb $s1 damage when hit. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>30</chance>
<allowSkillAttack>true</allowSkillAttack>
<allowNormalAttack>true</allowNormalAttack>
<skillId>28011</skillId> <!-- Legendary Cloak - Barrier -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="28011" toLevel="3" name="Legendary Cloak - Barrier">
<!-- Activates a shield that has a chance to absorb $s2 damage when hit for $s1. -->
<icon>icon.skill1514</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<hitTime>1000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>60000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalType>ABSORB</abnormalType>
<abnormalVisualEffect>AVE_ABSORB2_SHIELD</abnormalVisualEffect>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>99</magicLevel>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<staticReuse>true</staticReuse>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="AbsorbDamage">
<damage>
<value level="1">10000</value>
<value level="2">15000</value>
<value level="3">30000</value>
</damage>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28012" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- P./M. Skill Power +$s1 -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="PhysicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">15</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="28013" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Resurrects from death with full recovery. Buffs/debuffs stay when dying. However, the Noblesse Blessing and Lucky Charms disappear. Can be used when the equipped cloak is +15 or higher. -->
<icon>icon.skill11826</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<isMagic>1</isMagic> <!-- Magic Skill -->
<castRange>600</castRange>
<hitTime>4000</hitTime>
<reuseDelay>3600000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalLevel>2</abnormalLevel>
<abnormalType>RESURRECTION_SPECIAL</abnormalType>
<abnormalTime>3600</abnormalTime>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquippedCloakEnchant">
<amount>15</amount>
</condition>
</conditions>
<effects>
<effect name="ResurrectionSpecial">
<power>100</power>
<hpPercent>100</hpPercent>
<mpPercent>100</mpPercent>
<cpPercent>100</cpPercent>
</effect>
</effects>
</skill>
<skill id="28014" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 seconds by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28015</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28015" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 30 seconds by twisting the space. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>30</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>180000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
</effects>
</skill>
<skill id="28016" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Invincibility activated for 5 seconds if damage received when HP is below 30%. This effect is only activated once every 5 minutes. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>85</magicLevel>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByHpPercent">
<skillId>28017</skillId> <!-- Legendary Cloak - Invincibility -->
<skillLevel>1</skillLevel>
<percentTo>30</percentTo>
</effect>
</effects>
</skill>
<skill id="28017" toLevel="1" name="Legendary Cloak - Invincibility">
<!-- Become invincible. -->
<icon>icon.skill1917</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>5</abnormalTime>
<abnormalType>INVINCIBILITY</abnormalType>
<abnormalVisualEffect>INVINCIBILITY</abnormalVisualEffect>
<isTriggeredSkill>true</isTriggeredSkill>
<magicLevel>99</magicLevel>
<operateType>A2</operateType>
<hitTime>200</hitTime>
<reuseDelay>300000</reuseDelay>
<staticReuse>true</staticReuse>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="RemainHpPer">
<amount>30</amount>
<percentType>LESS</percentType>
<affectType>CASTER</affectType>
</condition>
</conditions>
<effects>
<effect name="DamageBlock">
<type>BLOCK_HP</type>
</effect>
<effect name="DamageBlock">
<type>BLOCK_MP</type>
</effect>
<effect name="DebuffBlock" />
<effect name="DefenceTrait">
<HOLD>100</HOLD>
<SLEEP>100</SLEEP>
<DERANGEMENT>100</DERANGEMENT>
<CHANGEBODY>100</CHANGEBODY>
<PARALYZE>100</PARALYZE>
<SHOCK>100</SHOCK>
<KNOCKBACK>100</KNOCKBACK>
<KNOCKDOWN>100</KNOCKDOWN>
<AIRBIND>100</AIRBIND>
<TURN_STONE>100</TURN_STONE>
</effect>
<effect name="DispelByCategory">
<slot>DEBUFF</slot>
<rate>100</rate>
<max>10</max>
</effect>
<effect name="ResistDispelByCategory">
<amount>-100</amount>
<slot>ALL</slot>
</effect>
</effects>
</skill>
<skill id="28018" toLevel="1" name="Empire Legendary Cloak Augmentation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 seconds by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="TriggerSkillByDamage">
<chance>5</chance>
<minDamage>100</minDamage>
<skillId>28019</skillId> <!-- Legendary Cloak - Spallation -->
<skillLevel>1</skillLevel>
</effect>
</effects>
</skill>
<skill id="28019" toLevel="1" name="Legendary Cloak - Spallation">
<!-- Has a chance to create a circle around when hit that cancels any ranged attacks and debuffs for 15 seconds by twisting the space, and Speed +100. When hit inside the circle, you will receive damage. -->
<icon>icon.skill30515</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>15</abnormalTime>
<abnormalType>NONE</abnormalType>
<abnormalVisualEffect>SPACEREF</abnormalVisualEffect>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime>
<coolTime>500</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>379</effectPoint>
<effects>
<effect name="SphericBarrier">
<amount>150</amount>
</effect>
<effect name="Speed">
<amount>100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="28020" toLevel="3" name="Empire Legendary Cloak Augmentation">
<!-- Bonus EXP obtained in Vitality state +$s1. -->
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
<operateType>P</operateType>
<effects>
<effect name="VitalityExpRate">
<amount>
<value level="1">2</value>
<value level="2">10</value>
<value level="3">20</value>
</amount>
</effect>
</effects>
</skill>
<skill id="28021" toLevel="1" name="Scroll: Enchant Cloak">
<operateType>A1</operateType>
@ -149,11 +452,49 @@
</skill>
<skill id="28023" toLevel="1" name="Scroll: Ancient Cloak">
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28024" toLevel="1" name="Spirit Stone Pack - Legendary">
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>28602</itemConsumeId>
<operateType>A1</operateType>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>500</hitTime>
<coolTime>500</coolTime>
<hitCancelTime>0</hitCancelTime>
<conditions>
<condition name="OpEncumbered">
<weightPercent>20</weightPercent>
<slotsPercent>10</slotsPercent>
</condition>
</conditions>
<effects>
<effect name="RestorationRandom">
<items>
<item chance="20">
<item id="28597" count="1" /> <!-- Cloak Augmenting Stone Ancient Kingdom -->
</item>
<item chance="20">
<item id="28598" count="1" /> <!-- Cloak Augmenting Stone Elmoreden -->
</item>
<item chance="20">
<item id="28599" count="1" /> <!-- Cloak Augmenting Stone Aden -->
</item>
<item chance="20">
<item id="28600" count="1" /> <!-- Cloak Augmenting Stone Elmore -->
</item>
<item chance="20">
<item id="28601" count="1" /> <!-- Cloak Augmenting Stone Ferios -->
</item>
</items>
</effect>
</effects>
</skill>
<skill id="28025" toLevel="2" name="Dragon's Treasure Chest">
<!-- Double-click to obtain an item. -->

View File

@ -668,7 +668,6 @@
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="level" type="xs:unsignedByte" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="mode">
@ -1113,12 +1112,8 @@
<xs:element name="pAccuracyAmount" type="xs:decimal" />
<xs:element name="pAccuracyMode" type="xs:string" />
<xs:element name="hpPercent" type="xs:unsignedByte" />
<xs:element name="mpPercent" type="xs:unsignedByte" />
<xs:element name="cpPercent" type="xs:unsignedByte" />
<xs:element name="attribute" type="xs:string" />
<xs:element name="attackerType" type="xs:string" />
<xs:element name="minAttackerLevel" type="xs:unsignedByte" />
<xs:element name="maxAttackerLevel" type="xs:unsignedByte" />
<xs:element name="minDamage">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
@ -2053,6 +2048,8 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="mpPercent" type="xs:unsignedByte" />
<xs:element name="cpPercent" type="xs:unsignedByte" />
<xs:element name="FIRE" type="xs:byte" />
<xs:element name="hp" type="xs:unsignedByte" />
<xs:element name="mp" type="xs:unsignedByte" />
@ -2081,6 +2078,7 @@
<xs:element name="skills" type="xs:string" />
<xs:element name="isSummonSpawn" type="xs:boolean" />
<xs:element name="randomOffset" type="xs:unsignedByte" />
<xs:element name="percentTo" type="xs:unsignedByte" />
<xs:element name="debuffModifier" type="xs:decimal" />
<xs:element name="HATE">
<xs:complexType mixed="true">
@ -2233,45 +2231,47 @@
<xs:element maxOccurs="unbounded" name="condition">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element minOccurs="0" name="type" type="xs:string" />
<xs:element minOccurs="0" name="level" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="hasAbnormal" type="xs:boolean" />
<xs:element minOccurs="0" name="alignment" type="xs:string" />
<xs:element minOccurs="0" name="amount" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="percentType" type="xs:string" />
<xs:element minOccurs="0" name="skillIds">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:unsignedShort" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="classIds">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="armorType">
<xs:complexType>
<xs:sequence>
<xs:element name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="minLevel" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="maxLevel" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="affectType" type="xs:string" />
<xs:element minOccurs="0" name="isWithin" type="xs:boolean" />
<xs:element minOccurs="0" name="includeMe" type="xs:boolean" />
<xs:element minOccurs="0" name="weaponType">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice maxOccurs="unbounded">
<xs:element name="classIds">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="affectType" type="xs:string" />
<xs:element name="isWithin" type="xs:boolean" />
<xs:element name="armorType">
<xs:complexType>
<xs:sequence>
<xs:element name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="minLevel" type="xs:unsignedByte" />
<xs:element name="maxLevel" type="xs:unsignedByte" />
<xs:element name="includeMe" type="xs:boolean" />
<xs:element name="weaponType">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="skillIds">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item" type="xs:unsignedShort" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="amount" type="xs:unsignedByte" />
<xs:element name="percentType" type="xs:string" />
<xs:element name="alignment" type="xs:string" />
<xs:element name="type" type="xs:string" />
<xs:element name="level" type="xs:unsignedByte" />
<xs:element name="hasAbnormal" type="xs:boolean" />
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>

View File

@ -55,6 +55,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("DeathPoints", DeathPointsSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -55,6 +55,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("DeathPoints", DeathPointsSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}

View File

@ -55,6 +55,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("DeathPoints", DeathPointsSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquippedCloakEnchant", EquippedCloakEnchantSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipSigil", EquipSigilSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("EquipWeapon", EquipWeaponSkillCondition::new);

View File

@ -0,0 +1,55 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author CostyKiller
*/
public class EquippedCloakEnchantSkillCondition implements ISkillCondition
{
private final int _amount;
public EquippedCloakEnchantSkillCondition(StatSet params)
{
_amount = params.getInt("amount", 0);
}
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if ((caster == null) || !caster.isPlayer())
{
return false;
}
final Item cloak = caster.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CLOAK);
if (cloak == null)
{
return false;
}
return cloak.getEnchantLevel() >= _amount;
}
}