Addition of removedOnUnequipWeapon skill parameter.

This commit is contained in:
MobiusDevelopment 2019-11-13 17:28:49 +00:00
parent 25678c3f9c
commit eb9d737495
45 changed files with 210 additions and 30 deletions

View File

@ -2358,6 +2358,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:decimal" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="effect">

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -2453,6 +2453,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:decimal" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="effect">

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -2485,6 +2485,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:decimal" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="effect">

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -2497,6 +2497,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:decimal" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="effect">

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -2501,6 +2501,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:decimal" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="effect">

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -2501,6 +2501,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:decimal" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="effect">

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -2501,6 +2501,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:decimal" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="effect">

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -2501,6 +2501,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:decimal" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="effect">

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -1768,6 +1768,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -1768,6 +1768,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -1768,6 +1768,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -1768,6 +1768,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -1768,6 +1768,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -1768,6 +1768,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:unsignedByte" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="soulMaxConsumeCount" type="xs:unsignedByte" />

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/

View File

@ -2483,6 +2483,7 @@
<xs:element name="channelingStart" type="xs:decimal" />
<xs:element name="channelingTickInterval" type="xs:decimal" />
<xs:element name="removedOnDamage" type="xs:boolean" />
<xs:element name="removedOnUnequipWeapon" type="xs:boolean" />
<xs:element name="removedOnAnyActionExceptMove" type="xs:boolean" />
<xs:element name="itemConsumeSteps" type="xs:unsignedByte" />
<xs:element name="effect">

View File

@ -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())
{
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());
update.compareAndSet(false, true);

View File

@ -151,6 +151,7 @@ public class Skill implements IIdentifiable
private final boolean _removedOnAnyActionExceptMove;
private final boolean _removedOnDamage;
private final boolean _removedOnUnequipWeapon;
private final boolean _blockedInOlympiad;
@ -345,6 +346,7 @@ public class Skill implements IIdentifiable
_removedOnAnyActionExceptMove = set.getBoolean("removedOnAnyActionExceptMove", false);
_removedOnDamage = set.getBoolean("removedOnDamage", false);
_removedOnUnequipWeapon = set.getBoolean("removedOnUnequipWeapon", false);
_blockedInOlympiad = set.getBoolean("blockedInOlympiad", false);
@ -587,6 +589,14 @@ public class Skill implements IIdentifiable
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.
*/