|
@@ -46,14 +46,12 @@ import com.l2jserver.gameserver.ai.L2AttackableAI;
|
|
|
import com.l2jserver.gameserver.ai.L2CharacterAI;
|
|
|
import com.l2jserver.gameserver.datatables.DoorTable;
|
|
|
import com.l2jserver.gameserver.datatables.ItemTable;
|
|
|
-import com.l2jserver.gameserver.datatables.SkillTable;
|
|
|
+import com.l2jserver.gameserver.datatables.SkillData;
|
|
|
import com.l2jserver.gameserver.enums.CategoryType;
|
|
|
import com.l2jserver.gameserver.enums.InstanceType;
|
|
|
import com.l2jserver.gameserver.enums.QuestEventType;
|
|
|
import com.l2jserver.gameserver.enums.ShotType;
|
|
|
import com.l2jserver.gameserver.enums.Team;
|
|
|
-import com.l2jserver.gameserver.handler.ISkillHandler;
|
|
|
-import com.l2jserver.gameserver.handler.SkillHandler;
|
|
|
import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
|
|
|
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
|
|
import com.l2jserver.gameserver.instancemanager.MapRegionManager;
|
|
@@ -109,8 +107,7 @@ import com.l2jserver.gameserver.model.skills.AbnormalType;
|
|
|
import com.l2jserver.gameserver.model.skills.AbnormalVisualEffect;
|
|
|
import com.l2jserver.gameserver.model.skills.BuffInfo;
|
|
|
import com.l2jserver.gameserver.model.skills.EffectScope;
|
|
|
-import com.l2jserver.gameserver.model.skills.L2Skill;
|
|
|
-import com.l2jserver.gameserver.model.skills.L2SkillType;
|
|
|
+import com.l2jserver.gameserver.model.skills.Skill;
|
|
|
import com.l2jserver.gameserver.model.skills.SkillChannelized;
|
|
|
import com.l2jserver.gameserver.model.skills.SkillChannelizer;
|
|
|
import com.l2jserver.gameserver.model.skills.funcs.Func;
|
|
@@ -174,8 +171,8 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
private volatile Set<L2Character> _attackByList;
|
|
|
private volatile boolean _isCastingNow = false;
|
|
|
private volatile boolean _isCastingSimultaneouslyNow = false;
|
|
|
- private L2Skill _lastSkillCast;
|
|
|
- private L2Skill _lastSimultaneousSkillCast;
|
|
|
+ private Skill _lastSkillCast;
|
|
|
+ private Skill _lastSimultaneousSkillCast;
|
|
|
|
|
|
private boolean _isDead = false;
|
|
|
private boolean _isImmobilized = false;
|
|
@@ -205,7 +202,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
/** Table of Calculators containing all used calculator */
|
|
|
private Calculator[] _calculators;
|
|
|
/** Map containing all skills of this character. */
|
|
|
- private final Map<Integer, L2Skill> _skills = new FastMap<Integer, L2Skill>().shared();
|
|
|
+ private final Map<Integer, Skill> _skills = new FastMap<Integer, Skill>().shared();
|
|
|
/** Map containing the skill reuse time stamps. */
|
|
|
private volatile Map<Integer, TimeStamp> _reuseTimeStampsSkills = null;
|
|
|
/** Map containing the item reuse time stamps. */
|
|
@@ -455,7 +452,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
// Copy the skills of the L2NPCInstance from its template to the L2Character Instance
|
|
|
// The skills list can be affected by spell effects so it's necessary to make a copy
|
|
|
// to avoid that a spell affecting a L2NpcInstance, affects others L2NPCInstance of the same type too.
|
|
|
- for (L2Skill skill : template.getSkills().values())
|
|
|
+ for (Skill skill : template.getSkills().values())
|
|
|
{
|
|
|
addSkill(skill);
|
|
|
}
|
|
@@ -470,7 +467,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
// Copy the skills of the L2Summon from its template to the L2Character Instance
|
|
|
// The skills list can be affected by spell effects so it's necessary to make a copy
|
|
|
// to avoid that a spell affecting a L2Summon, affects others L2Summon of the same type too.
|
|
|
- for (L2Skill skill : template.getSkills().values())
|
|
|
+ for (Skill skill : template.getSkills().values())
|
|
|
{
|
|
|
addSkill(skill);
|
|
|
}
|
|
@@ -1563,17 +1560,17 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* </ul>
|
|
|
* @param skill The L2Skill to use
|
|
|
*/
|
|
|
- public void doCast(L2Skill skill)
|
|
|
+ public void doCast(Skill skill)
|
|
|
{
|
|
|
beginCast(skill, false);
|
|
|
}
|
|
|
|
|
|
- public void doSimultaneousCast(L2Skill skill)
|
|
|
+ public void doSimultaneousCast(Skill skill)
|
|
|
{
|
|
|
beginCast(skill, true);
|
|
|
}
|
|
|
|
|
|
- public void doCast(L2Skill skill, L2Character target, L2Object[] targets)
|
|
|
+ public void doCast(Skill skill, L2Character target, L2Object[] targets)
|
|
|
{
|
|
|
if (!checkDoCastConditions(skill))
|
|
|
{
|
|
@@ -1596,7 +1593,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
beginCast(skill, false, target, targets);
|
|
|
}
|
|
|
|
|
|
- public void doSimultaneousCast(L2Skill skill, L2Character target, L2Object[] targets)
|
|
|
+ public void doSimultaneousCast(Skill skill, L2Character target, L2Object[] targets)
|
|
|
{
|
|
|
if (!checkDoCastConditions(skill))
|
|
|
{
|
|
@@ -1611,7 +1608,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
beginCast(skill, true, target, targets);
|
|
|
}
|
|
|
|
|
|
- private void beginCast(L2Skill skill, boolean simultaneously)
|
|
|
+ private void beginCast(Skill skill, boolean simultaneously)
|
|
|
{
|
|
|
if (!checkDoCastConditions(skill))
|
|
|
{
|
|
@@ -1690,17 +1687,10 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (skill.isContinuous() && !skill.isDebuff())
|
|
|
+ if ((skill.isContinuous() && !skill.isDebuff()) || skill.hasEffectType(L2EffectType.CPHEAL, L2EffectType.HEAL))
|
|
|
{
|
|
|
doit = true;
|
|
|
}
|
|
|
- else if (skill.getSkillType() == L2SkillType.DUMMY)
|
|
|
- {
|
|
|
- if (skill.hasEffectType(L2EffectType.CPHEAL, L2EffectType.HEAL))
|
|
|
- {
|
|
|
- doit = true;
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
if (doit)
|
|
|
{
|
|
@@ -1714,7 +1704,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
beginCast(skill, simultaneously, target, targets);
|
|
|
}
|
|
|
|
|
|
- private void beginCast(L2Skill skill, boolean simultaneously, L2Character target, L2Object[] targets)
|
|
|
+ private void beginCast(Skill skill, boolean simultaneously, L2Character target, L2Object[] targets)
|
|
|
{
|
|
|
if ((target == null) || !getEvents().onMagic(skill, simultaneously, target, targets))
|
|
|
{
|
|
@@ -2004,7 +1994,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* @param skill
|
|
|
* @return True if casting is possible
|
|
|
*/
|
|
|
- public boolean checkDoCastConditions(L2Skill skill)
|
|
|
+ public boolean checkDoCastConditions(Skill skill)
|
|
|
{
|
|
|
if ((skill == null) || isSkillDisabled(skill) || (((skill.getFlyRadius() > 0) || (skill.getFlyType() != null)) && isMovementDisabled()))
|
|
|
{
|
|
@@ -2231,7 +2221,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* @param skill the skill
|
|
|
* @param reuse the delay
|
|
|
*/
|
|
|
- public final void addTimeStamp(L2Skill skill, long reuse)
|
|
|
+ public final void addTimeStamp(Skill skill, long reuse)
|
|
|
{
|
|
|
addTimeStamp(skill, reuse, -1);
|
|
|
}
|
|
@@ -2243,7 +2233,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* @param reuse the reuse
|
|
|
* @param systime the system time
|
|
|
*/
|
|
|
- public final void addTimeStamp(L2Skill skill, long reuse, long systime)
|
|
|
+ public final void addTimeStamp(Skill skill, long reuse, long systime)
|
|
|
{
|
|
|
if (_reuseTimeStampsSkills == null)
|
|
|
{
|
|
@@ -2262,7 +2252,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* Removes a skill reuse time stamp.
|
|
|
* @param skill the skill to remove
|
|
|
*/
|
|
|
- public synchronized final void removeTimeStamp(L2Skill skill)
|
|
|
+ public synchronized final void removeTimeStamp(Skill skill)
|
|
|
{
|
|
|
if (_reuseTimeStampsSkills != null)
|
|
|
{
|
|
@@ -2326,7 +2316,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* Enables a skill.
|
|
|
* @param skill the skill to enable
|
|
|
*/
|
|
|
- public void enableSkill(L2Skill skill)
|
|
|
+ public void enableSkill(Skill skill)
|
|
|
{
|
|
|
if ((skill == null) || (_disabledSkills == null))
|
|
|
{
|
|
@@ -2341,7 +2331,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* @param skill the skill to disable
|
|
|
* @param delay delay in milliseconds
|
|
|
*/
|
|
|
- public void disableSkill(L2Skill skill, long delay)
|
|
|
+ public void disableSkill(Skill skill, long delay)
|
|
|
{
|
|
|
if (skill == null)
|
|
|
{
|
|
@@ -2378,7 +2368,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* @param skill the skill
|
|
|
* @return {@code true} if the skill is disabled, {@code false} otherwise
|
|
|
*/
|
|
|
- public boolean isSkillDisabled(L2Skill skill)
|
|
|
+ public boolean isSkillDisabled(Skill skill)
|
|
|
{
|
|
|
return (skill != null) && isSkillDisabled(skill.getReuseHashCode());
|
|
|
}
|
|
@@ -2705,22 +2695,22 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
return _attackByList;
|
|
|
}
|
|
|
|
|
|
- public final L2Skill getLastSimultaneousSkillCast()
|
|
|
+ public final Skill getLastSimultaneousSkillCast()
|
|
|
{
|
|
|
return _lastSimultaneousSkillCast;
|
|
|
}
|
|
|
|
|
|
- public void setLastSimultaneousSkillCast(L2Skill skill)
|
|
|
+ public void setLastSimultaneousSkillCast(Skill skill)
|
|
|
{
|
|
|
_lastSimultaneousSkillCast = skill;
|
|
|
}
|
|
|
|
|
|
- public final L2Skill getLastSkillCast()
|
|
|
+ public final Skill getLastSkillCast()
|
|
|
{
|
|
|
return _lastSkillCast;
|
|
|
}
|
|
|
|
|
|
- public void setLastSkillCast(L2Skill skill)
|
|
|
+ public void setLastSkillCast(Skill skill)
|
|
|
{
|
|
|
_lastSkillCast = skill;
|
|
|
}
|
|
@@ -3518,7 +3508,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* Accessor to L2Character doCast() method.
|
|
|
* @param skill
|
|
|
*/
|
|
|
- public void doCast(L2Skill skill)
|
|
|
+ public void doCast(Skill skill)
|
|
|
{
|
|
|
L2Character.this.doCast(skill);
|
|
|
}
|
|
@@ -5008,7 +4998,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
{
|
|
|
if (getLevel() > (target.getLevel() + 8))
|
|
|
{
|
|
|
- L2Skill skill = SkillTable.FrequentSkill.RAID_CURSE2.getSkill();
|
|
|
+ Skill skill = SkillData.FrequentSkill.RAID_CURSE2.getSkill();
|
|
|
|
|
|
if (skill != null)
|
|
|
{
|
|
@@ -5451,9 +5441,9 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* @return The L2Skill replaced or null if just added a new L2Skill
|
|
|
*/
|
|
|
@Override
|
|
|
- public L2Skill addSkill(L2Skill newSkill)
|
|
|
+ public Skill addSkill(Skill newSkill)
|
|
|
{
|
|
|
- L2Skill oldSkill = null;
|
|
|
+ Skill oldSkill = null;
|
|
|
if (newSkill != null)
|
|
|
{
|
|
|
// Replace oldSkill by newSkill or Add the newSkill
|
|
@@ -5488,20 +5478,20 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
return oldSkill;
|
|
|
}
|
|
|
|
|
|
- public L2Skill removeSkill(L2Skill skill, boolean cancelEffect)
|
|
|
+ public Skill removeSkill(Skill skill, boolean cancelEffect)
|
|
|
{
|
|
|
return (skill != null) ? removeSkill(skill.getId(), cancelEffect) : null;
|
|
|
}
|
|
|
|
|
|
- public L2Skill removeSkill(int skillId)
|
|
|
+ public Skill removeSkill(int skillId)
|
|
|
{
|
|
|
return removeSkill(skillId, true);
|
|
|
}
|
|
|
|
|
|
- public L2Skill removeSkill(int skillId, boolean cancelEffect)
|
|
|
+ public Skill removeSkill(int skillId, boolean cancelEffect)
|
|
|
{
|
|
|
// Remove the skill from the L2Character _skills
|
|
|
- L2Skill oldSkill = _skills.remove(skillId);
|
|
|
+ Skill oldSkill = _skills.remove(skillId);
|
|
|
// Remove all its Func objects from the L2Character calculator set
|
|
|
if (oldSkill != null)
|
|
|
{
|
|
@@ -5553,11 +5543,11 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
{
|
|
|
for (IChanceSkillTrigger trigger : _chanceSkills.keySet())
|
|
|
{
|
|
|
- if (!(trigger instanceof L2Skill))
|
|
|
+ if (!(trigger instanceof Skill))
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
- if (((L2Skill) trigger).getId() == id)
|
|
|
+ if (((Skill) trigger).getId() == id)
|
|
|
{
|
|
|
_chanceSkills.remove(trigger);
|
|
|
}
|
|
@@ -5624,7 +5614,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* All skills own by a L2Character are identified in <B>_skills</B> the L2Character
|
|
|
* @return all skills own by the L2Character in a table of L2Skill.
|
|
|
*/
|
|
|
- public final Collection<L2Skill> getAllSkills()
|
|
|
+ public final Collection<Skill> getAllSkills()
|
|
|
{
|
|
|
return new ArrayList<>(_skills.values());
|
|
|
}
|
|
@@ -5633,7 +5623,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* @return the map containing this character skills.
|
|
|
*/
|
|
|
@Override
|
|
|
- public Map<Integer, L2Skill> getSkills()
|
|
|
+ public Map<Integer, Skill> getSkills()
|
|
|
{
|
|
|
return _skills;
|
|
|
}
|
|
@@ -5651,7 +5641,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
@Override
|
|
|
public int getSkillLevel(int skillId)
|
|
|
{
|
|
|
- final L2Skill skill = getKnownSkill(skillId);
|
|
|
+ final Skill skill = getKnownSkill(skillId);
|
|
|
return (skill == null) ? -1 : skill.getLevel();
|
|
|
}
|
|
|
|
|
@@ -5660,7 +5650,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* @return the skill from the known skill.
|
|
|
*/
|
|
|
@Override
|
|
|
- public final L2Skill getKnownSkill(int skillId)
|
|
|
+ public final Skill getKnownSkill(int skillId)
|
|
|
{
|
|
|
return _skills.get(skillId);
|
|
|
}
|
|
@@ -5695,7 +5685,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
*/
|
|
|
public void onMagicLaunchedTimer(MagicUseTask mut)
|
|
|
{
|
|
|
- final L2Skill skill = mut.getSkill();
|
|
|
+ final Skill skill = mut.getSkill();
|
|
|
L2Object[] targets = mut.getTargets();
|
|
|
|
|
|
if ((skill == null) || (targets == null))
|
|
@@ -5825,7 +5815,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
// Runs in the end of skill casting
|
|
|
public void onMagicHitTimer(MagicUseTask mut)
|
|
|
{
|
|
|
- final L2Skill skill = mut.getSkill();
|
|
|
+ final Skill skill = mut.getSkill();
|
|
|
final L2Object[] targets = mut.getTargets();
|
|
|
|
|
|
if ((skill == null) || (targets == null))
|
|
@@ -5977,7 +5967,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
// Stop casting
|
|
|
setIsCastingNow(false);
|
|
|
|
|
|
- final L2Skill skill = mut.getSkill();
|
|
|
+ final Skill skill = mut.getSkill();
|
|
|
final L2Object target = mut.getTargets().length > 0 ? mut.getTargets()[0] : null;
|
|
|
|
|
|
// Attack target after skill use
|
|
@@ -6021,7 +6011,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
}
|
|
|
|
|
|
// Quest event ON_SPELL_FNISHED
|
|
|
- protected void notifyQuestEventSkillFinished(L2Skill skill, L2Object target)
|
|
|
+ protected void notifyQuestEventSkillFinished(Skill skill, L2Object target)
|
|
|
{
|
|
|
|
|
|
}
|
|
@@ -6031,7 +6021,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* @param skill The L2Skill to use
|
|
|
* @param targets The table of L2Object targets
|
|
|
*/
|
|
|
- public void callSkill(L2Skill skill, L2Object[] targets)
|
|
|
+ public void callSkill(Skill skill, L2Object[] targets)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
@@ -6068,7 +6058,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
{
|
|
|
if (skill.isMagic())
|
|
|
{
|
|
|
- L2Skill tempSkill = SkillTable.FrequentSkill.RAID_CURSE.getSkill();
|
|
|
+ Skill tempSkill = SkillData.FrequentSkill.RAID_CURSE.getSkill();
|
|
|
if (tempSkill != null)
|
|
|
{
|
|
|
abortAttack();
|
|
@@ -6083,7 +6073,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- L2Skill tempSkill = SkillTable.FrequentSkill.RAID_CURSE2.getSkill();
|
|
|
+ Skill tempSkill = SkillData.FrequentSkill.RAID_CURSE2.getSkill();
|
|
|
if (tempSkill != null)
|
|
|
{
|
|
|
abortAttack();
|
|
@@ -6151,11 +6141,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
}
|
|
|
|
|
|
// Launch the magic skill and calculate its effects
|
|
|
- final ISkillHandler handler = SkillHandler.getInstance().getHandler(skill.getSkillType());
|
|
|
- if (handler != null)
|
|
|
- {
|
|
|
- handler.useSkill(this, skill, targets);
|
|
|
- }
|
|
|
+ skill.activateSkill(this, targets);
|
|
|
|
|
|
L2PcInstance player = getActingPlayer();
|
|
|
if (player != null)
|
|
@@ -6438,7 +6424,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
public abstract int getLevel();
|
|
|
|
|
|
// Stat - NEED TO REMOVE ONCE L2CHARSTAT IS COMPLETE
|
|
|
- public final double calcStat(Stats stat, double init, L2Character target, L2Skill skill)
|
|
|
+ public final double calcStat(Stats stat, double init, L2Character target, Skill skill)
|
|
|
{
|
|
|
return getStat().calcStat(stat, init, target, skill);
|
|
|
}
|
|
@@ -6468,7 +6454,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
return getStat().getCriticalDmg(target, init);
|
|
|
}
|
|
|
|
|
|
- public int getCriticalHit(L2Character target, L2Skill skill)
|
|
|
+ public int getCriticalHit(L2Character target, Skill skill)
|
|
|
{
|
|
|
return getStat().getCriticalHit(target, skill);
|
|
|
}
|
|
@@ -6483,7 +6469,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
return getStat().getINT();
|
|
|
}
|
|
|
|
|
|
- public final int getMagicalAttackRange(L2Skill skill)
|
|
|
+ public final int getMagicalAttackRange(Skill skill)
|
|
|
{
|
|
|
return getStat().getMagicalAttackRange(skill);
|
|
|
}
|
|
@@ -6498,7 +6484,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
return getStat().getMaxRecoverableCp();
|
|
|
}
|
|
|
|
|
|
- public int getMAtk(L2Character target, L2Skill skill)
|
|
|
+ public int getMAtk(L2Character target, Skill skill)
|
|
|
{
|
|
|
return getStat().getMAtk(target, skill);
|
|
|
}
|
|
@@ -6528,12 +6514,12 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
return getStat().getMaxRecoverableHp();
|
|
|
}
|
|
|
|
|
|
- public final int getMCriticalHit(L2Character target, L2Skill skill)
|
|
|
+ public final int getMCriticalHit(L2Character target, Skill skill)
|
|
|
{
|
|
|
return getStat().getMCriticalHit(target, skill);
|
|
|
}
|
|
|
|
|
|
- public int getMDef(L2Character target, L2Skill skill)
|
|
|
+ public int getMDef(L2Character target, Skill skill)
|
|
|
{
|
|
|
return getStat().getMDef(target, skill);
|
|
|
}
|
|
@@ -6543,7 +6529,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
return getStat().getMEN();
|
|
|
}
|
|
|
|
|
|
- public double getMReuseRate(L2Skill skill)
|
|
|
+ public double getMReuseRate(Skill skill)
|
|
|
{
|
|
|
return getStat().getMReuseRate(skill);
|
|
|
}
|
|
@@ -6614,17 +6600,17 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
getStatus().addStatusListener(object);
|
|
|
}
|
|
|
|
|
|
- public void reduceCurrentHp(double i, L2Character attacker, L2Skill skill)
|
|
|
+ public void reduceCurrentHp(double i, L2Character attacker, Skill skill)
|
|
|
{
|
|
|
reduceCurrentHp(i, attacker, true, false, skill);
|
|
|
}
|
|
|
|
|
|
- public void reduceCurrentHpByDOT(double i, L2Character attacker, L2Skill skill)
|
|
|
+ public void reduceCurrentHpByDOT(double i, L2Character attacker, Skill skill)
|
|
|
{
|
|
|
reduceCurrentHp(i, attacker, !skill.isToggle(), true, skill);
|
|
|
}
|
|
|
|
|
|
- public void reduceCurrentHp(double i, L2Character attacker, boolean awake, boolean isDOT, L2Skill skill)
|
|
|
+ public void reduceCurrentHp(double i, L2Character attacker, boolean awake, boolean isDOT, Skill skill)
|
|
|
{
|
|
|
if (Config.L2JMOD_CHAMPION_ENABLE && isChampion() && (Config.L2JMOD_CHAMPION_HP != 0))
|
|
|
{
|
|
@@ -6745,9 +6731,9 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
public int getMaxBuffCount()
|
|
|
{
|
|
|
int count = Config.BUFFS_MAX_AMOUNT;
|
|
|
- if (isAffectedBySkill(L2Skill.SKILL_DIVINE_INSPIRATION))
|
|
|
+ if (isAffectedBySkill(Skill.SKILL_DIVINE_INSPIRATION))
|
|
|
{
|
|
|
- final BuffInfo info = getEffectList().getBuffInfoBySkillId(L2Skill.SKILL_DIVINE_INSPIRATION);
|
|
|
+ final BuffInfo info = getEffectList().getBuffInfoBySkillId(Skill.SKILL_DIVINE_INSPIRATION);
|
|
|
for (AbstractEffect effect : info.getEffects())
|
|
|
{
|
|
|
count += (int) effect.getValue();
|
|
@@ -6894,7 +6880,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
getTriggerSkills().remove(holder.getSkillId());
|
|
|
}
|
|
|
|
|
|
- public void makeTriggerCast(L2Skill skill, L2Character target, boolean ignoreTargetType)
|
|
|
+ public void makeTriggerCast(Skill skill, L2Character target, boolean ignoreTargetType)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
@@ -6902,8 +6888,8 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
{
|
|
|
if (skill.triggersChanceSkill()) // skill will trigger another skill, but only if its not chance skill
|
|
|
{
|
|
|
- skill = SkillTable.getInstance().getInfo(skill.getTriggeredChanceId(), skill.getTriggeredChanceLevel());
|
|
|
- if ((skill == null) || (skill.getSkillType() == L2SkillType.NOTDONE))
|
|
|
+ skill = SkillData.getInstance().getSkill(skill.getTriggeredChanceId(), skill.getTriggeredChanceLevel());
|
|
|
+ if ((skill == null))
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
@@ -6945,12 +6931,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
broadcastPacket(new MagicSkillLaunched(this, skill.getDisplayId(), skill.getLevel(), targets));
|
|
|
|
|
|
// Launch the magic skill and calculate its effects
|
|
|
- // TODO: once core will support all possible effects, use effects (not handler)
|
|
|
- final ISkillHandler handler = SkillHandler.getInstance().getHandler(skill.getSkillType());
|
|
|
- if (handler != null)
|
|
|
- {
|
|
|
- handler.useSkill(this, skill, targets);
|
|
|
- }
|
|
|
+ skill.activateSkill(this, targets);
|
|
|
}
|
|
|
}
|
|
|
catch (Exception e)
|
|
@@ -6959,7 +6940,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void makeTriggerCast(L2Skill skill, L2Character target)
|
|
|
+ public void makeTriggerCast(Skill skill, L2Character target)
|
|
|
{
|
|
|
makeTriggerCast(skill, target, false);
|
|
|
}
|
|
@@ -7025,7 +7006,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|
|
* @param critical
|
|
|
* @param damageOverTime
|
|
|
*/
|
|
|
- public void notifyDamageReceived(double damage, L2Character attacker, L2Skill skill, boolean critical, boolean damageOverTime)
|
|
|
+ public void notifyDamageReceived(double damage, L2Character attacker, Skill skill, boolean critical, boolean damageOverTime)
|
|
|
{
|
|
|
getEvents().onDamageReceived(damage, attacker, skill, critical, damageOverTime);
|
|
|
attacker.getEvents().onDamageDealt(damage, this, skill, critical, damageOverTime);
|