package net.scapeemulator.game.model.mob.combat;
import net.scapeemulator.game.model.SpotAnimation;
import net.scapeemulator.game.model.mob.Mob;
import net.scapeemulator.game.model.player.skills.magic.CombatSpell;
import net.scapeemulator.game.task.Task;
public class DelayedMagicHit extends Task {
private final Mob source;
private final Mob target;
private final SpotAnimation explosion;
private final int damage;
public DelayedMagicHit(int delay, Mob source, Mob target, SpotAnimation explosion, int damage) {
super(delay, false);
this.source = source;
this.target = target;
this.explosion = damage != 0 ? explosion : CombatSpell.SPLASH_GRAPHIC;
this.damage = damage;
}
@Override
public void execute() {
if (damage >= 0) {
target.processHit(source, damage > target.getCurrentHitpoints() ? target.getCurrentHitpoints() : damage);
target.playAnimation(target.getCombatHandler().getDefendAnimation());
}
target.playSpotAnimation(explosion);
stop();
return;
}
}