package net.scapeemulator.game.model.mob.combat; import net.scapeemulator.game.model.World; import net.scapeemulator.game.model.mob.Mob; import net.scapeemulator.game.model.player.Player; import net.scapeemulator.game.task.Task; public class DelayedRangeHit extends Task { private final Mob source; private final Mob target; private final int damage; private final int dropId; private final int dropAmt; public DelayedRangeHit(Mob source, Mob target, int delay, int damage, int dropId, int dropAmt) { super(delay, false); this.source = source; this.target = target; this.damage = damage; this.dropId = dropId; this.dropAmt = dropAmt; } @Override public void execute() { target.processHit(source, damage); if (damage > 0) { target.playAnimation(target.getCombatHandler().getDefendAnimation()); } if (dropId > 0 && dropAmt > 0) { World.getWorld().getGroundItems().add(dropId, dropAmt, target.getPosition(), source instanceof Player ? (Player) source : null); } stop(); } }