Сборка Interlude Silentium
Проблема: когда у кубика срабатывает шанс использовать свой скилл, то эффект от скилла срабатывает моментально (у Storm Cubic, например, моментально появляется количество нанесённого урона в чате), а лишь потом на самом кубике появляется анимация каста скилла.
Вопрос: Как сделать так, чтобы кубик учитывал hitTime скилла и урон/эффект происходили после задержки hitTime, а не моментально при выпадении шанса?
Смотрел L2CubicInstance.java и L2Character.java
Заметил, что для чаров есть трёхфазность заклинания (начало с потреблениями и условиями, середина с кастом и hitTime, концовка с посылом магии в цель), для кубиков такого нет. Может быть дело в этом.
Если дать скилл кубика чару и скастовать его, то всё происходит как надо: на кубике появляется анимация, а после докастовывания наносится урон.
/** Task lauching the magic skill phases */
class MagicUseTask implements Runnable
{
L2Object[] targets;
L2Skill skill;
int hitTime;
int coolTime;
int phase;
boolean simultaneously;
public MagicUseTask(L2Object[] tgts, L2Skill s, int hit, int coolT, boolean simultaneous)
{
targets = tgts;
skill = s;
phase = 1;
hitTime = hit;
coolTime = coolT;
simultaneously = simultaneous;
}
@Override
public void run()
{
try
{
switch (phase)
{
case 1:
onMagicLaunchedTimer(this);
break;
case 2:
onMagicHitTimer(this);
break;
case 3:
onMagicFinalizer(this);
break;
default:
break;
}
}