Addition of removedOnUnequipWeapon skill parameter.
This commit is contained in:
@@ -2358,6 +2358,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="effect">
|
<xs:element name="effect">
|
||||||
|
|||||||
@@ -394,10 +394,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2453,6 +2453,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="effect">
|
<xs:element name="effect">
|
||||||
|
|||||||
@@ -397,10 +397,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2485,6 +2485,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="effect">
|
<xs:element name="effect">
|
||||||
|
|||||||
@@ -397,10 +397,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2497,6 +2497,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="effect">
|
<xs:element name="effect">
|
||||||
|
|||||||
@@ -397,10 +397,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2501,6 +2501,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="effect">
|
<xs:element name="effect">
|
||||||
|
|||||||
@@ -402,10 +402,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2501,6 +2501,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="effect">
|
<xs:element name="effect">
|
||||||
|
|||||||
@@ -425,10 +425,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2501,6 +2501,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="effect">
|
<xs:element name="effect">
|
||||||
|
|||||||
@@ -425,10 +425,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2501,6 +2501,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="effect">
|
<xs:element name="effect">
|
||||||
|
|||||||
@@ -425,10 +425,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1768,6 +1768,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
||||||
|
|||||||
@@ -397,10 +397,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1768,6 +1768,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
||||||
|
|||||||
@@ -397,10 +397,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1768,6 +1768,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
||||||
|
|||||||
@@ -402,10 +402,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1768,6 +1768,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
||||||
|
|||||||
@@ -425,10 +425,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1768,6 +1768,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
||||||
|
|||||||
@@ -425,10 +425,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1768,6 +1768,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />
|
||||||
|
|||||||
@@ -425,10 +425,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2483,6 +2483,7 @@
|
|||||||
<xs:element name="channelingStart" type="xs:decimal" />
|
<xs:element name="channelingStart" type="xs:decimal" />
|
||||||
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
<xs:element name="channelingTickInterval" type="xs:decimal" />
|
||||||
<xs:element name="removedOnDamage" type="xs:boolean" />
|
<xs:element name="removedOnDamage" type="xs:boolean" />
|
||||||
|
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
|
||||||
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
|
||||||
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
|
||||||
<xs:element name="effect">
|
<xs:element name="effect">
|
||||||
|
|||||||
@@ -397,10 +397,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Must check for toggle skill item conditions.
|
// Must check for toggle and isRemovedOnUnequipWeapon skill item conditions.
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
|
if ((skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player)) //
|
||||||
|
|| (it.isWeapon() && skill.isRemovedOnUnequipWeapon()))
|
||||||
{
|
{
|
||||||
player.stopSkillEffects(true, skill.getId());
|
player.stopSkillEffects(true, skill.getId());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
private final boolean _removedOnAnyActionExceptMove;
|
private final boolean _removedOnAnyActionExceptMove;
|
||||||
private final boolean _removedOnDamage;
|
private final boolean _removedOnDamage;
|
||||||
|
private final boolean _removedOnUnequipWeapon;
|
||||||
|
|
||||||
private final boolean _blockedInOlympiad;
|
private final boolean _blockedInOlympiad;
|
||||||
|
|
||||||
@@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
|
|||||||
|
|
||||||
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
|
||||||
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
_removedOnDamage = set.getBoolean("removedOnDamage", false);
|
||||||
|
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
|
||||||
|
|
||||||
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
|
||||||
|
|
||||||
@@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
|
|||||||
return _removedOnDamage;
|
return _removedOnDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if skill effects should be removed on unequip weapon
|
||||||
|
*/
|
||||||
|
public boolean isRemovedOnUnequipWeapon()
|
||||||
|
{
|
||||||
|
return _removedOnUnequipWeapon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if skill can not be used in olympiad.
|
* @return {@code true} if skill can not be used in olympiad.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user