Addition of onHitTimer and HitTask rechargeShots parameter.
Thanks to Lito.
This commit is contained in:
@@ -1236,7 +1236,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a new hit task with Medium priority
|
// Create a new hit task with Medium priority
|
||||||
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, attack.hasSoulshot(), shld1), sAtk);
|
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, shld1, attack.hasSoulshot(), true), sAtk);
|
||||||
|
|
||||||
// Calculate and set the disable delay of the bow in function of the Attack Speed
|
// Calculate and set the disable delay of the bow in function of the Attack Speed
|
||||||
_disableBowAttackEndTime = ((sAtk + reuse) / GameTimeTaskManager.MILLIS_IN_TICK) + GameTimeTaskManager.getInstance().getGameTicks();
|
_disableBowAttackEndTime = ((sAtk + reuse) / GameTimeTaskManager.MILLIS_IN_TICK) + GameTimeTaskManager.getInstance().getGameTicks();
|
||||||
@@ -1306,7 +1306,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a new hit task with Medium priority
|
// Create a new hit task with Medium priority
|
||||||
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, attack.hasSoulshot(), shld1), sAtk);
|
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, shld1, attack.hasSoulshot(), true), sAtk);
|
||||||
|
|
||||||
// Calculate and set the disable delay of the bow in function of the Attack Speed
|
// Calculate and set the disable delay of the bow in function of the Attack Speed
|
||||||
_disableBowAttackEndTime = ((sAtk + reuse) / GameTimeTaskManager.MILLIS_IN_TICK) + GameTimeTaskManager.getInstance().getGameTicks();
|
_disableBowAttackEndTime = ((sAtk + reuse) / GameTimeTaskManager.MILLIS_IN_TICK) + GameTimeTaskManager.getInstance().getGameTicks();
|
||||||
@@ -1377,17 +1377,17 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a new hit task with Medium priority for hit 1
|
// Create a new hit task with Medium priority for hit 1
|
||||||
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, attack.hasSoulshot(), shld1), sAtk / 2);
|
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, shld1, attack.hasSoulshot(), true), sAtk / 2);
|
||||||
|
|
||||||
// Create a new hit task with Medium priority for hit 2 with a higher delay
|
// Create a new hit task with Medium priority for hit 2 with a higher delay
|
||||||
ThreadPool.schedule(new HitTask(this, target, damage2, crit2, miss2, attack.hasSoulshot(), shld2), sAtk);
|
ThreadPool.schedule(new HitTask(this, target, damage2, crit2, miss2, shld2, attack.hasSoulshot(), false), sAtk);
|
||||||
|
|
||||||
// Add those hits to the Server-Client packet Attack
|
// Add those hits to the Server-Client packet Attack
|
||||||
attack.addHit(target, damage1, miss1, crit1, shld1);
|
attack.addHit(target, damage1, miss1, crit1, shld1);
|
||||||
attack.addHit(target, damage2, miss2, crit2, shld2);
|
attack.addHit(target, damage2, miss2, crit2, shld2);
|
||||||
|
|
||||||
// Return true if hit 1 or hit 2 isn't missed
|
// Return true if hit 1 or hit 2 isn't missed
|
||||||
return (!miss1 || !miss2);
|
return !miss1 || !miss2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1407,7 +1407,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
private boolean doAttackHitByPole(Attack attack, Creature target, int sAtk)
|
private boolean doAttackHitByPole(Attack attack, Creature target, int sAtk)
|
||||||
{
|
{
|
||||||
// Perform the main target hit.
|
// Perform the main target hit.
|
||||||
boolean hitted = doAttackHitSimple(attack, target, 100, sAtk);
|
boolean hitted = doAttackHitSimple(attack, target, 100, sAtk, true);
|
||||||
|
|
||||||
// H5 Changes: without Polearm Mastery (skill 216) max simultaneous attacks is 3 (1 by default + 2 in skill 3599).
|
// H5 Changes: without Polearm Mastery (skill 216) max simultaneous attacks is 3 (1 by default + 2 in skill 3599).
|
||||||
int attackCountMax = (int) _stat.calcStat(Stat.ATTACK_COUNT_MAX, 1, null, null);
|
int attackCountMax = (int) _stat.calcStat(Stat.ATTACK_COUNT_MAX, 1, null, null);
|
||||||
@@ -1459,7 +1459,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Launch a simple attack against the additional target.
|
// Launch a simple attack against the additional target.
|
||||||
hitted |= doAttackHitSimple(attack, obj, attackpercent, sAtk);
|
hitted |= doAttackHitSimple(attack, obj, attackpercent, sAtk, false);
|
||||||
attackpercent /= 1.15;
|
attackpercent /= 1.15;
|
||||||
if (--attackCountMax <= 0)
|
if (--attackCountMax <= 0)
|
||||||
{
|
{
|
||||||
@@ -1491,10 +1491,10 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
*/
|
*/
|
||||||
private boolean doAttackHitSimple(Attack attack, Creature target, int sAtk)
|
private boolean doAttackHitSimple(Attack attack, Creature target, int sAtk)
|
||||||
{
|
{
|
||||||
return doAttackHitSimple(attack, target, 100, sAtk);
|
return doAttackHitSimple(attack, target, 100, sAtk, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean doAttackHitSimple(Attack attack, Creature target, double attackpercent, int sAtk)
|
private boolean doAttackHitSimple(Attack attack, Creature target, double attackpercent, int sAtk, boolean rechargeShots)
|
||||||
{
|
{
|
||||||
int damage1 = 0;
|
int damage1 = 0;
|
||||||
byte shld1 = 0;
|
byte shld1 = 0;
|
||||||
@@ -1521,7 +1521,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a new hit task with Medium priority
|
// Create a new hit task with Medium priority
|
||||||
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, attack.hasSoulshot(), shld1), sAtk);
|
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, shld1, attack.hasSoulshot(), rechargeShots), sAtk);
|
||||||
|
|
||||||
// Add this hit to the Server-Client packet Attack
|
// Add this hit to the Server-Client packet Attack
|
||||||
attack.addHit(target, damage1, miss1, crit1, shld1);
|
attack.addHit(target, damage1, miss1, crit1, shld1);
|
||||||
@@ -4739,10 +4739,11 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
* @param damageValue Number of HP to reduce
|
* @param damageValue Number of HP to reduce
|
||||||
* @param crit True if hit is critical
|
* @param crit True if hit is critical
|
||||||
* @param miss True if hit is missed
|
* @param miss True if hit is missed
|
||||||
* @param soulshot True if SoulShot are charged
|
|
||||||
* @param shld True if shield is efficient
|
* @param shld True if shield is efficient
|
||||||
|
* @param soulshot True if SoulShot are charged
|
||||||
|
* @param rechargeShots True if SoulShots are re-charged
|
||||||
*/
|
*/
|
||||||
public void onHitTimer(Creature target, int damageValue, boolean crit, boolean miss, boolean soulshot, byte shld)
|
public void onHitTimer(Creature target, int damageValue, boolean crit, boolean miss, byte shld, boolean soulshot, boolean rechargeShots)
|
||||||
{
|
{
|
||||||
// If the attacker/target is dead or use fake death, notify the AI with EVT_CANCEL
|
// If the attacker/target is dead or use fake death, notify the AI with EVT_CANCEL
|
||||||
// and send a Server->Client packet ActionFailed (if attacker is a Player)
|
// and send a Server->Client packet ActionFailed (if attacker is a Player)
|
||||||
@@ -4763,7 +4764,10 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
// getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null);
|
// getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null);
|
||||||
// Some times attack is processed but target die before the hit
|
// Some times attack is processed but target die before the hit
|
||||||
// So we need to recharge shot for next attack
|
// So we need to recharge shot for next attack
|
||||||
rechargeShots(true, false);
|
if (rechargeShots)
|
||||||
|
{
|
||||||
|
rechargeShots(true, false);
|
||||||
|
}
|
||||||
getAI().notifyEvent(CtrlEvent.EVT_CANCEL);
|
getAI().notifyEvent(CtrlEvent.EVT_CANCEL);
|
||||||
sendPacket(ActionFailed.STATIC_PACKET);
|
sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
@@ -4914,14 +4918,19 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Launch weapon onCritical Special ability effect if available
|
// Launch weapon onCritical Special ability effect if available
|
||||||
if (crit && (weapon != null))
|
if (crit && (weapon != null))
|
||||||
{
|
{
|
||||||
weapon.castOnCriticalSkill(this, target);
|
weapon.castOnCriticalSkill(this, target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recharge any active auto-soulshot tasks for current creature.
|
// Recharge any active auto-soulshot tasks for current creature.
|
||||||
rechargeShots(true, false);
|
if (rechargeShots)
|
||||||
|
{
|
||||||
|
rechargeShots(true, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -38,8 +38,9 @@ public class HitTask implements Runnable
|
|||||||
private final boolean _miss;
|
private final boolean _miss;
|
||||||
private final byte _shld;
|
private final byte _shld;
|
||||||
private final boolean _soulshot;
|
private final boolean _soulshot;
|
||||||
|
private final boolean _rechargeShots;
|
||||||
|
|
||||||
public HitTask(Creature creature, Creature target, int damage, boolean crit, boolean miss, boolean soulshot, byte shld)
|
public HitTask(Creature creature, Creature target, int damage, boolean crit, boolean miss, byte shld, boolean soulshot, boolean rechargeShots)
|
||||||
{
|
{
|
||||||
_creature = creature;
|
_creature = creature;
|
||||||
_hitTarget = target;
|
_hitTarget = target;
|
||||||
@@ -48,6 +49,7 @@ public class HitTask implements Runnable
|
|||||||
_shld = shld;
|
_shld = shld;
|
||||||
_miss = miss;
|
_miss = miss;
|
||||||
_soulshot = soulshot;
|
_soulshot = soulshot;
|
||||||
|
_rechargeShots = rechargeShots;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -55,7 +57,7 @@ public class HitTask implements Runnable
|
|||||||
{
|
{
|
||||||
if (_creature != null)
|
if (_creature != null)
|
||||||
{
|
{
|
||||||
_creature.onHitTimer(_hitTarget, _damage, _crit, _miss, _soulshot, _shld);
|
_creature.onHitTimer(_hitTarget, _damage, _crit, _miss, _shld, _soulshot, _rechargeShots);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1237,7 +1237,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a new hit task with Medium priority
|
// Create a new hit task with Medium priority
|
||||||
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, attack.hasSoulshot(), shld1), sAtk);
|
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, shld1, attack.hasSoulshot(), true), sAtk);
|
||||||
|
|
||||||
// Calculate and set the disable delay of the bow in function of the Attack Speed
|
// Calculate and set the disable delay of the bow in function of the Attack Speed
|
||||||
_disableBowAttackEndTime = ((sAtk + reuse) / GameTimeTaskManager.MILLIS_IN_TICK) + GameTimeTaskManager.getInstance().getGameTicks();
|
_disableBowAttackEndTime = ((sAtk + reuse) / GameTimeTaskManager.MILLIS_IN_TICK) + GameTimeTaskManager.getInstance().getGameTicks();
|
||||||
@@ -1307,7 +1307,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a new hit task with Medium priority
|
// Create a new hit task with Medium priority
|
||||||
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, attack.hasSoulshot(), shld1), sAtk);
|
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, shld1, attack.hasSoulshot(), true), sAtk);
|
||||||
|
|
||||||
// Calculate and set the disable delay of the bow in function of the Attack Speed
|
// Calculate and set the disable delay of the bow in function of the Attack Speed
|
||||||
_disableBowAttackEndTime = ((sAtk + reuse) / GameTimeTaskManager.MILLIS_IN_TICK) + GameTimeTaskManager.getInstance().getGameTicks();
|
_disableBowAttackEndTime = ((sAtk + reuse) / GameTimeTaskManager.MILLIS_IN_TICK) + GameTimeTaskManager.getInstance().getGameTicks();
|
||||||
@@ -1378,17 +1378,17 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a new hit task with Medium priority for hit 1
|
// Create a new hit task with Medium priority for hit 1
|
||||||
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, attack.hasSoulshot(), shld1), sAtk / 2);
|
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, shld1, attack.hasSoulshot(), true), sAtk / 2);
|
||||||
|
|
||||||
// Create a new hit task with Medium priority for hit 2 with a higher delay
|
// Create a new hit task with Medium priority for hit 2 with a higher delay
|
||||||
ThreadPool.schedule(new HitTask(this, target, damage2, crit2, miss2, attack.hasSoulshot(), shld2), sAtk);
|
ThreadPool.schedule(new HitTask(this, target, damage2, crit2, miss2, shld2, attack.hasSoulshot(), false), sAtk);
|
||||||
|
|
||||||
// Add those hits to the Server-Client packet Attack
|
// Add those hits to the Server-Client packet Attack
|
||||||
attack.addHit(target, damage1, miss1, crit1, shld1);
|
attack.addHit(target, damage1, miss1, crit1, shld1);
|
||||||
attack.addHit(target, damage2, miss2, crit2, shld2);
|
attack.addHit(target, damage2, miss2, crit2, shld2);
|
||||||
|
|
||||||
// Return true if hit 1 or hit 2 isn't missed
|
// Return true if hit 1 or hit 2 isn't missed
|
||||||
return (!miss1 || !miss2);
|
return !miss1 || !miss2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1408,7 +1408,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
private boolean doAttackHitByPole(Attack attack, Creature target, int sAtk)
|
private boolean doAttackHitByPole(Attack attack, Creature target, int sAtk)
|
||||||
{
|
{
|
||||||
// Perform the main target hit.
|
// Perform the main target hit.
|
||||||
boolean hitted = doAttackHitSimple(attack, target, 100, sAtk);
|
boolean hitted = doAttackHitSimple(attack, target, 100, sAtk, true);
|
||||||
|
|
||||||
// H5 Changes: without Polearm Mastery (skill 216) max simultaneous attacks is 3 (1 by default + 2 in skill 3599).
|
// H5 Changes: without Polearm Mastery (skill 216) max simultaneous attacks is 3 (1 by default + 2 in skill 3599).
|
||||||
int attackCountMax = (int) _stat.calcStat(Stat.ATTACK_COUNT_MAX, 1, null, null);
|
int attackCountMax = (int) _stat.calcStat(Stat.ATTACK_COUNT_MAX, 1, null, null);
|
||||||
@@ -1460,7 +1460,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Launch a simple attack against the additional target.
|
// Launch a simple attack against the additional target.
|
||||||
hitted |= doAttackHitSimple(attack, obj, attackpercent, sAtk);
|
hitted |= doAttackHitSimple(attack, obj, attackpercent, sAtk, false);
|
||||||
attackpercent /= 1.15;
|
attackpercent /= 1.15;
|
||||||
if (--attackCountMax <= 0)
|
if (--attackCountMax <= 0)
|
||||||
{
|
{
|
||||||
@@ -1492,10 +1492,10 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
*/
|
*/
|
||||||
private boolean doAttackHitSimple(Attack attack, Creature target, int sAtk)
|
private boolean doAttackHitSimple(Attack attack, Creature target, int sAtk)
|
||||||
{
|
{
|
||||||
return doAttackHitSimple(attack, target, 100, sAtk);
|
return doAttackHitSimple(attack, target, 100, sAtk, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean doAttackHitSimple(Attack attack, Creature target, double attackpercent, int sAtk)
|
private boolean doAttackHitSimple(Attack attack, Creature target, double attackpercent, int sAtk, boolean rechargeShots)
|
||||||
{
|
{
|
||||||
int damage1 = 0;
|
int damage1 = 0;
|
||||||
byte shld1 = 0;
|
byte shld1 = 0;
|
||||||
@@ -1522,7 +1522,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a new hit task with Medium priority
|
// Create a new hit task with Medium priority
|
||||||
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, attack.hasSoulshot(), shld1), sAtk);
|
ThreadPool.schedule(new HitTask(this, target, damage1, crit1, miss1, shld1, attack.hasSoulshot(), rechargeShots), sAtk);
|
||||||
|
|
||||||
// Add this hit to the Server-Client packet Attack
|
// Add this hit to the Server-Client packet Attack
|
||||||
attack.addHit(target, damage1, miss1, crit1, shld1);
|
attack.addHit(target, damage1, miss1, crit1, shld1);
|
||||||
@@ -4741,10 +4741,11 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
* @param damageValue Number of HP to reduce
|
* @param damageValue Number of HP to reduce
|
||||||
* @param crit True if hit is critical
|
* @param crit True if hit is critical
|
||||||
* @param miss True if hit is missed
|
* @param miss True if hit is missed
|
||||||
* @param soulshot True if SoulShot are charged
|
|
||||||
* @param shld True if shield is efficient
|
* @param shld True if shield is efficient
|
||||||
|
* @param soulshot True if SoulShot are charged
|
||||||
|
* @param rechargeShots True if SoulShots are re-charged
|
||||||
*/
|
*/
|
||||||
public void onHitTimer(Creature target, int damageValue, boolean crit, boolean miss, boolean soulshot, byte shld)
|
public void onHitTimer(Creature target, int damageValue, boolean crit, boolean miss, byte shld, boolean soulshot, boolean rechargeShots)
|
||||||
{
|
{
|
||||||
// If the attacker/target is dead or use fake death, notify the AI with EVT_CANCEL
|
// If the attacker/target is dead or use fake death, notify the AI with EVT_CANCEL
|
||||||
// and send a Server->Client packet ActionFailed (if attacker is a Player)
|
// and send a Server->Client packet ActionFailed (if attacker is a Player)
|
||||||
@@ -4765,7 +4766,10 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
// getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null);
|
// getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null);
|
||||||
// Some times attack is processed but target die before the hit
|
// Some times attack is processed but target die before the hit
|
||||||
// So we need to recharge shot for next attack
|
// So we need to recharge shot for next attack
|
||||||
rechargeShots(true, false);
|
if (rechargeShots)
|
||||||
|
{
|
||||||
|
rechargeShots(true, false);
|
||||||
|
}
|
||||||
getAI().notifyEvent(CtrlEvent.EVT_CANCEL);
|
getAI().notifyEvent(CtrlEvent.EVT_CANCEL);
|
||||||
sendPacket(ActionFailed.STATIC_PACKET);
|
sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
@@ -4916,14 +4920,19 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Launch weapon onCritical Special ability effect if available
|
// Launch weapon onCritical Special ability effect if available
|
||||||
if (crit && (weapon != null))
|
if (crit && (weapon != null))
|
||||||
{
|
{
|
||||||
weapon.castOnCriticalSkill(this, target);
|
weapon.castOnCriticalSkill(this, target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recharge any active auto-soulshot tasks for current creature.
|
// Recharge any active auto-soulshot tasks for current creature.
|
||||||
rechargeShots(true, false);
|
if (rechargeShots)
|
||||||
|
{
|
||||||
|
rechargeShots(true, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -38,8 +38,9 @@ public class HitTask implements Runnable
|
|||||||
private final boolean _miss;
|
private final boolean _miss;
|
||||||
private final byte _shld;
|
private final byte _shld;
|
||||||
private final boolean _soulshot;
|
private final boolean _soulshot;
|
||||||
|
private final boolean _rechargeShots;
|
||||||
|
|
||||||
public HitTask(Creature creature, Creature target, int damage, boolean crit, boolean miss, boolean soulshot, byte shld)
|
public HitTask(Creature creature, Creature target, int damage, boolean crit, boolean miss, byte shld, boolean soulshot, boolean rechargeShots)
|
||||||
{
|
{
|
||||||
_creature = creature;
|
_creature = creature;
|
||||||
_hitTarget = target;
|
_hitTarget = target;
|
||||||
@@ -48,6 +49,7 @@ public class HitTask implements Runnable
|
|||||||
_shld = shld;
|
_shld = shld;
|
||||||
_miss = miss;
|
_miss = miss;
|
||||||
_soulshot = soulshot;
|
_soulshot = soulshot;
|
||||||
|
_rechargeShots = rechargeShots;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -55,7 +57,7 @@ public class HitTask implements Runnable
|
|||||||
{
|
{
|
||||||
if (_creature != null)
|
if (_creature != null)
|
||||||
{
|
{
|
||||||
_creature.onHitTimer(_hitTarget, _damage, _crit, _miss, _soulshot, _shld);
|
_creature.onHitTimer(_hitTarget, _damage, _crit, _miss, _shld, _soulshot, _rechargeShots);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user