Fixed unstuck timer config.
Contributed by Sahar.
This commit is contained in:
parent
7c0153b401
commit
626a768300
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
@ -99,7 +99,7 @@ public class SkillCaster implements Runnable
|
|||||||
private ScheduledFuture<?> _task;
|
private ScheduledFuture<?> _task;
|
||||||
private int _phase;
|
private int _phase;
|
||||||
|
|
||||||
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed)
|
private SkillCaster(Creature caster, WorldObject target, Skill skill, ItemInstance item, SkillCastingType castingType, boolean ctrlPressed, boolean shiftPressed, int castTime)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(caster);
|
Objects.requireNonNull(caster);
|
||||||
Objects.requireNonNull(skill);
|
Objects.requireNonNull(skill);
|
||||||
@ -111,7 +111,7 @@ public class SkillCaster implements Runnable
|
|||||||
_item = item;
|
_item = item;
|
||||||
_castingType = castingType;
|
_castingType = castingType;
|
||||||
|
|
||||||
calcSkillTiming(caster, skill);
|
calcSkillTiming(caster, skill, castTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +174,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
// Schedule a thread that will execute 500ms before casting time is over (for animation issues and retail handling).
|
||||||
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed);
|
final SkillCaster skillCaster = new SkillCaster(caster, target, skill, item, castingType, ctrlPressed, shiftPressed, castTime);
|
||||||
skillCaster.run();
|
skillCaster.run();
|
||||||
return skillCaster;
|
return skillCaster;
|
||||||
}
|
}
|
||||||
@ -766,7 +766,7 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calcSkillTiming(Creature creature, Skill skill)
|
private void calcSkillTiming(Creature creature, Skill skill, int castTime)
|
||||||
{
|
{
|
||||||
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
final double timeFactor = Formulas.calcSkillTimeFactor(creature, skill);
|
||||||
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
final double cancelTime = Formulas.calcSkillCancelTime(creature, skill);
|
||||||
@ -777,7 +777,14 @@ public class SkillCaster implements Runnable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
if (castTime > -1)
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((castTime / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hitTime = (int) Math.max((skill.getHitTime() / timeFactor) - cancelTime, 0);
|
||||||
|
}
|
||||||
_cancelTime = (int) cancelTime;
|
_cancelTime = (int) cancelTime;
|
||||||
}
|
}
|
||||||
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
_coolTime = (int) (skill.getCoolTime() / timeFactor); // cooltimeMillis / timeFactor
|
||||||
|
Loading…
Reference in New Issue
Block a user