Addition of chargeConsume skill parameter.

This commit is contained in:
MobiusDev 2018-11-24 00:45:10 +00:00
parent 904a37b895
commit b641e874d4
20 changed files with 190 additions and 30 deletions

View File

@ -163,6 +163,7 @@ public final class Skill implements IIdentifiable
private final int _minPledgeClass; private final int _minPledgeClass;
private final int _soulMaxConsume; private final int _soulMaxConsume;
private final int _chargeConsume;
private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot
private final int _effectPoint; private final int _effectPoint;
@ -380,6 +381,7 @@ public final class Skill implements IIdentifiable
_minPledgeClass = set.getInt("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_soulMaxConsume = set.getInt("soulMaxConsumeCount", 0); _soulMaxConsume = set.getInt("soulMaxConsumeCount", 0);
_chargeConsume = set.getInt("chargeConsume", 0);
_isTriggeredSkill = set.getBoolean("isTriggeredSkill", false); _isTriggeredSkill = set.getBoolean("isTriggeredSkill", false);
_effectPoint = set.getInt("effectPoint", 0); _effectPoint = set.getInt("effectPoint", 0);
@ -1063,6 +1065,11 @@ public final class Skill implements IIdentifiable
return _soulMaxConsume; return _soulMaxConsume;
} }
public int getChargeConsumeCount()
{
return _chargeConsume;
}
public boolean isStayAfterDeath() public boolean isStayAfterDeath()
{ {
return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle; return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle;

View File

@ -484,12 +484,21 @@ public class SkillCaster implements Runnable
caster.sendPacket(su); caster.sendPacket(su);
} }
// Consume Souls if necessary if (caster.isPlayer())
if (caster.isPlayer() && (_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill)) {
// Consume Souls if necessary.
if ((_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill))
{ {
return false; return false;
} }
// Consume charges if necessary.
if ((_skill.getChargeConsumeCount() > 0) && !caster.getActingPlayer().decreaseCharges(_skill.getChargeConsumeCount()))
{
return false;
}
}
// Consume skill reduced item on success. // Consume skill reduced item on success.
if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0)) if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0))
{ {

View File

@ -163,6 +163,7 @@ public final class Skill implements IIdentifiable
private final int _minPledgeClass; private final int _minPledgeClass;
private final int _soulMaxConsume; private final int _soulMaxConsume;
private final int _chargeConsume;
private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot
private final int _effectPoint; private final int _effectPoint;
@ -380,6 +381,7 @@ public final class Skill implements IIdentifiable
_minPledgeClass = set.getInt("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_soulMaxConsume = set.getInt("soulMaxConsumeCount", 0); _soulMaxConsume = set.getInt("soulMaxConsumeCount", 0);
_chargeConsume = set.getInt("chargeConsume", 0);
_isTriggeredSkill = set.getBoolean("isTriggeredSkill", false); _isTriggeredSkill = set.getBoolean("isTriggeredSkill", false);
_effectPoint = set.getInt("effectPoint", 0); _effectPoint = set.getInt("effectPoint", 0);
@ -1063,6 +1065,11 @@ public final class Skill implements IIdentifiable
return _soulMaxConsume; return _soulMaxConsume;
} }
public int getChargeConsumeCount()
{
return _chargeConsume;
}
public boolean isStayAfterDeath() public boolean isStayAfterDeath()
{ {
return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle; return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle;

View File

@ -484,12 +484,21 @@ public class SkillCaster implements Runnable
caster.sendPacket(su); caster.sendPacket(su);
} }
// Consume Souls if necessary if (caster.isPlayer())
if (caster.isPlayer() && (_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill)) {
// Consume Souls if necessary.
if ((_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill))
{ {
return false; return false;
} }
// Consume charges if necessary.
if ((_skill.getChargeConsumeCount() > 0) && !caster.getActingPlayer().decreaseCharges(_skill.getChargeConsumeCount()))
{
return false;
}
}
// Consume skill reduced item on success. // Consume skill reduced item on success.
if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0)) if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0))
{ {

View File

@ -163,6 +163,7 @@ public final class Skill implements IIdentifiable
private final int _minPledgeClass; private final int _minPledgeClass;
private final int _soulMaxConsume; private final int _soulMaxConsume;
private final int _chargeConsume;
private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot
private final int _effectPoint; private final int _effectPoint;
@ -380,6 +381,7 @@ public final class Skill implements IIdentifiable
_minPledgeClass = set.getInt("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_soulMaxConsume = set.getInt("soulMaxConsumeCount", 0); _soulMaxConsume = set.getInt("soulMaxConsumeCount", 0);
_chargeConsume = set.getInt("chargeConsume", 0);
_isTriggeredSkill = set.getBoolean("isTriggeredSkill", false); _isTriggeredSkill = set.getBoolean("isTriggeredSkill", false);
_effectPoint = set.getInt("effectPoint", 0); _effectPoint = set.getInt("effectPoint", 0);
@ -1063,6 +1065,11 @@ public final class Skill implements IIdentifiable
return _soulMaxConsume; return _soulMaxConsume;
} }
public int getChargeConsumeCount()
{
return _chargeConsume;
}
public boolean isStayAfterDeath() public boolean isStayAfterDeath()
{ {
return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle; return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle;

View File

@ -484,12 +484,21 @@ public class SkillCaster implements Runnable
caster.sendPacket(su); caster.sendPacket(su);
} }
// Consume Souls if necessary if (caster.isPlayer())
if (caster.isPlayer() && (_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill)) {
// Consume Souls if necessary.
if ((_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill))
{ {
return false; return false;
} }
// Consume charges if necessary.
if ((_skill.getChargeConsumeCount() > 0) && !caster.getActingPlayer().decreaseCharges(_skill.getChargeConsumeCount()))
{
return false;
}
}
// Consume skill reduced item on success. // Consume skill reduced item on success.
if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0)) if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0))
{ {

View File

@ -163,6 +163,7 @@ public final class Skill implements IIdentifiable
private final int _minPledgeClass; private final int _minPledgeClass;
private final int _soulMaxConsume; private final int _soulMaxConsume;
private final int _chargeConsume;
private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot
private final int _effectPoint; private final int _effectPoint;
@ -380,6 +381,7 @@ public final class Skill implements IIdentifiable
_minPledgeClass = set.getInt("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_soulMaxConsume = set.getInt("soulMaxConsumeCount", 0); _soulMaxConsume = set.getInt("soulMaxConsumeCount", 0);
_chargeConsume = set.getInt("chargeConsume", 0);
_isTriggeredSkill = set.getBoolean("isTriggeredSkill", false); _isTriggeredSkill = set.getBoolean("isTriggeredSkill", false);
_effectPoint = set.getInt("effectPoint", 0); _effectPoint = set.getInt("effectPoint", 0);
@ -1063,6 +1065,11 @@ public final class Skill implements IIdentifiable
return _soulMaxConsume; return _soulMaxConsume;
} }
public int getChargeConsumeCount()
{
return _chargeConsume;
}
public boolean isStayAfterDeath() public boolean isStayAfterDeath()
{ {
return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle; return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle;

View File

@ -484,12 +484,21 @@ public class SkillCaster implements Runnable
caster.sendPacket(su); caster.sendPacket(su);
} }
// Consume Souls if necessary if (caster.isPlayer())
if (caster.isPlayer() && (_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill)) {
// Consume Souls if necessary.
if ((_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill))
{ {
return false; return false;
} }
// Consume charges if necessary.
if ((_skill.getChargeConsumeCount() > 0) && !caster.getActingPlayer().decreaseCharges(_skill.getChargeConsumeCount()))
{
return false;
}
}
// Consume skill reduced item on success. // Consume skill reduced item on success.
if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0)) if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0))
{ {

View File

@ -163,6 +163,7 @@ public final class Skill implements IIdentifiable
private final int _minPledgeClass; private final int _minPledgeClass;
private final int _soulMaxConsume; private final int _soulMaxConsume;
private final int _chargeConsume;
private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot
private final int _effectPoint; private final int _effectPoint;
@ -380,6 +381,7 @@ public final class Skill implements IIdentifiable
_minPledgeClass = set.getInt("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_soulMaxConsume = set.getInt("soulMaxConsumeCount", 0); _soulMaxConsume = set.getInt("soulMaxConsumeCount", 0);
_chargeConsume = set.getInt("chargeConsume", 0);
_isTriggeredSkill = set.getBoolean("isTriggeredSkill", false); _isTriggeredSkill = set.getBoolean("isTriggeredSkill", false);
_effectPoint = set.getInt("effectPoint", 0); _effectPoint = set.getInt("effectPoint", 0);
@ -1063,6 +1065,11 @@ public final class Skill implements IIdentifiable
return _soulMaxConsume; return _soulMaxConsume;
} }
public int getChargeConsumeCount()
{
return _chargeConsume;
}
public boolean isStayAfterDeath() public boolean isStayAfterDeath()
{ {
return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle; return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle;

View File

@ -484,12 +484,21 @@ public class SkillCaster implements Runnable
caster.sendPacket(su); caster.sendPacket(su);
} }
// Consume Souls if necessary if (caster.isPlayer())
if (caster.isPlayer() && (_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill)) {
// Consume Souls if necessary.
if ((_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill))
{ {
return false; return false;
} }
// Consume charges if necessary.
if ((_skill.getChargeConsumeCount() > 0) && !caster.getActingPlayer().decreaseCharges(_skill.getChargeConsumeCount()))
{
return false;
}
}
// Consume skill reduced item on success. // Consume skill reduced item on success.
if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0)) if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0))
{ {

View File

@ -163,6 +163,7 @@ public final class Skill implements IIdentifiable
private final int _minPledgeClass; private final int _minPledgeClass;
private final int _soulMaxConsume; private final int _soulMaxConsume;
private final int _chargeConsume;
private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot
private final int _effectPoint; private final int _effectPoint;
@ -380,6 +381,7 @@ public final class Skill implements IIdentifiable
_minPledgeClass = set.getInt("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_soulMaxConsume = set.getInt("soulMaxConsumeCount", 0); _soulMaxConsume = set.getInt("soulMaxConsumeCount", 0);
_chargeConsume = set.getInt("chargeConsume", 0);
_isTriggeredSkill = set.getBoolean("isTriggeredSkill", false); _isTriggeredSkill = set.getBoolean("isTriggeredSkill", false);
_effectPoint = set.getInt("effectPoint", 0); _effectPoint = set.getInt("effectPoint", 0);
@ -1063,6 +1065,11 @@ public final class Skill implements IIdentifiable
return _soulMaxConsume; return _soulMaxConsume;
} }
public int getChargeConsumeCount()
{
return _chargeConsume;
}
public boolean isStayAfterDeath() public boolean isStayAfterDeath()
{ {
return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle; return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle;

View File

@ -484,12 +484,21 @@ public class SkillCaster implements Runnable
caster.sendPacket(su); caster.sendPacket(su);
} }
// Consume Souls if necessary if (caster.isPlayer())
if (caster.isPlayer() && (_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill)) {
// Consume Souls if necessary.
if ((_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill))
{ {
return false; return false;
} }
// Consume charges if necessary.
if ((_skill.getChargeConsumeCount() > 0) && !caster.getActingPlayer().decreaseCharges(_skill.getChargeConsumeCount()))
{
return false;
}
}
// Consume skill reduced item on success. // Consume skill reduced item on success.
if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0)) if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0))
{ {

View File

@ -163,6 +163,7 @@ public final class Skill implements IIdentifiable
private final int _minPledgeClass; private final int _minPledgeClass;
private final int _soulMaxConsume; private final int _soulMaxConsume;
private final int _chargeConsume;
private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot
private final int _effectPoint; private final int _effectPoint;
@ -380,6 +381,7 @@ public final class Skill implements IIdentifiable
_minPledgeClass = set.getInt("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_soulMaxConsume = set.getInt("soulMaxConsumeCount", 0); _soulMaxConsume = set.getInt("soulMaxConsumeCount", 0);
_chargeConsume = set.getInt("chargeConsume", 0);
_isTriggeredSkill = set.getBoolean("isTriggeredSkill", false); _isTriggeredSkill = set.getBoolean("isTriggeredSkill", false);
_effectPoint = set.getInt("effectPoint", 0); _effectPoint = set.getInt("effectPoint", 0);
@ -1063,6 +1065,11 @@ public final class Skill implements IIdentifiable
return _soulMaxConsume; return _soulMaxConsume;
} }
public int getChargeConsumeCount()
{
return _chargeConsume;
}
public boolean isStayAfterDeath() public boolean isStayAfterDeath()
{ {
return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle; return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle;

View File

@ -484,12 +484,21 @@ public class SkillCaster implements Runnable
caster.sendPacket(su); caster.sendPacket(su);
} }
// Consume Souls if necessary if (caster.isPlayer())
if (caster.isPlayer() && (_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill)) {
// Consume Souls if necessary.
if ((_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill))
{ {
return false; return false;
} }
// Consume charges if necessary.
if ((_skill.getChargeConsumeCount() > 0) && !caster.getActingPlayer().decreaseCharges(_skill.getChargeConsumeCount()))
{
return false;
}
}
// Consume skill reduced item on success. // Consume skill reduced item on success.
if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0)) if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0))
{ {

View File

@ -163,6 +163,7 @@ public final class Skill implements IIdentifiable
private final int _minPledgeClass; private final int _minPledgeClass;
private final int _soulMaxConsume; private final int _soulMaxConsume;
private final int _chargeConsume;
private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot
private final int _effectPoint; private final int _effectPoint;
@ -380,6 +381,7 @@ public final class Skill implements IIdentifiable
_minPledgeClass = set.getInt("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_soulMaxConsume = set.getInt("soulMaxConsumeCount", 0); _soulMaxConsume = set.getInt("soulMaxConsumeCount", 0);
_chargeConsume = set.getInt("chargeConsume", 0);
_isTriggeredSkill = set.getBoolean("isTriggeredSkill", false); _isTriggeredSkill = set.getBoolean("isTriggeredSkill", false);
_effectPoint = set.getInt("effectPoint", 0); _effectPoint = set.getInt("effectPoint", 0);
@ -1063,6 +1065,11 @@ public final class Skill implements IIdentifiable
return _soulMaxConsume; return _soulMaxConsume;
} }
public int getChargeConsumeCount()
{
return _chargeConsume;
}
public boolean isStayAfterDeath() public boolean isStayAfterDeath()
{ {
return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle; return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle;

View File

@ -484,12 +484,21 @@ public class SkillCaster implements Runnable
caster.sendPacket(su); caster.sendPacket(su);
} }
// Consume Souls if necessary if (caster.isPlayer())
if (caster.isPlayer() && (_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill)) {
// Consume Souls if necessary.
if ((_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill))
{ {
return false; return false;
} }
// Consume charges if necessary.
if ((_skill.getChargeConsumeCount() > 0) && !caster.getActingPlayer().decreaseCharges(_skill.getChargeConsumeCount()))
{
return false;
}
}
// Consume skill reduced item on success. // Consume skill reduced item on success.
if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0)) if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0))
{ {

View File

@ -163,6 +163,7 @@ public final class Skill implements IIdentifiable
private final int _minPledgeClass; private final int _minPledgeClass;
private final int _soulMaxConsume; private final int _soulMaxConsume;
private final int _chargeConsume;
private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot
private final int _effectPoint; private final int _effectPoint;
@ -380,6 +381,7 @@ public final class Skill implements IIdentifiable
_minPledgeClass = set.getInt("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_soulMaxConsume = set.getInt("soulMaxConsumeCount", 0); _soulMaxConsume = set.getInt("soulMaxConsumeCount", 0);
_chargeConsume = set.getInt("chargeConsume", 0);
_isTriggeredSkill = set.getBoolean("isTriggeredSkill", false); _isTriggeredSkill = set.getBoolean("isTriggeredSkill", false);
_effectPoint = set.getInt("effectPoint", 0); _effectPoint = set.getInt("effectPoint", 0);
@ -1063,6 +1065,11 @@ public final class Skill implements IIdentifiable
return _soulMaxConsume; return _soulMaxConsume;
} }
public int getChargeConsumeCount()
{
return _chargeConsume;
}
public boolean isStayAfterDeath() public boolean isStayAfterDeath()
{ {
return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle; return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle;

View File

@ -484,12 +484,21 @@ public class SkillCaster implements Runnable
caster.sendPacket(su); caster.sendPacket(su);
} }
// Consume Souls if necessary if (caster.isPlayer())
if (caster.isPlayer() && (_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill)) {
// Consume Souls if necessary.
if ((_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill))
{ {
return false; return false;
} }
// Consume charges if necessary.
if ((_skill.getChargeConsumeCount() > 0) && !caster.getActingPlayer().decreaseCharges(_skill.getChargeConsumeCount()))
{
return false;
}
}
// Consume skill reduced item on success. // Consume skill reduced item on success.
if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0)) if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0))
{ {

View File

@ -163,6 +163,7 @@ public final class Skill implements IIdentifiable
private final int _minPledgeClass; private final int _minPledgeClass;
private final int _soulMaxConsume; private final int _soulMaxConsume;
private final int _chargeConsume;
private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot private final boolean _isTriggeredSkill; // If true the skill will take activation buff slot instead of a normal buff slot
private final int _effectPoint; private final int _effectPoint;
@ -380,6 +381,7 @@ public final class Skill implements IIdentifiable
_minPledgeClass = set.getInt("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_soulMaxConsume = set.getInt("soulMaxConsumeCount", 0); _soulMaxConsume = set.getInt("soulMaxConsumeCount", 0);
_chargeConsume = set.getInt("chargeConsume", 0);
_isTriggeredSkill = set.getBoolean("isTriggeredSkill", false); _isTriggeredSkill = set.getBoolean("isTriggeredSkill", false);
_effectPoint = set.getInt("effectPoint", 0); _effectPoint = set.getInt("effectPoint", 0);
@ -1063,6 +1065,11 @@ public final class Skill implements IIdentifiable
return _soulMaxConsume; return _soulMaxConsume;
} }
public int getChargeConsumeCount()
{
return _chargeConsume;
}
public boolean isStayAfterDeath() public boolean isStayAfterDeath()
{ {
return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle; return _stayAfterDeath || _irreplacableBuff || _isNecessaryToggle;

View File

@ -484,12 +484,21 @@ public class SkillCaster implements Runnable
caster.sendPacket(su); caster.sendPacket(su);
} }
// Consume Souls if necessary if (caster.isPlayer())
if (caster.isPlayer() && (_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill)) {
// Consume Souls if necessary.
if ((_skill.getMaxSoulConsumeCount() > 0) && !caster.getActingPlayer().decreaseSouls(_skill.getMaxSoulConsumeCount(), _skill))
{ {
return false; return false;
} }
// Consume charges if necessary.
if ((_skill.getChargeConsumeCount() > 0) && !caster.getActingPlayer().decreaseCharges(_skill.getChargeConsumeCount()))
{
return false;
}
}
// Consume skill reduced item on success. // Consume skill reduced item on success.
if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0)) if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) && (_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0))
{ {