1package com.osroyale.game.world.entity.combat.attack.listener.npc;
3import com.osroyale.game.Animation;
4import com.osroyale.game.UpdatePriority;
5import com.osroyale.game.world.entity.combat.attack.listener.NpcCombatListenerSignature;
6import com.osroyale.game.world.entity.combat.attack.listener.SimplifiedListener;
7import com.osroyale.game.world.entity.combat.hit.CombatHit;
8import com.osroyale.game.world.entity.combat.hit.Hit;
9import com.osroyale.game.world.entity.combat.strategy.npc.NpcMagicStrategy;
10import com.osroyale.game.world.entity.combat.strategy.npc.NpcMeleeStrategy;
11import com.osroyale.game.world.entity.mob.Mob;
12import com.osroyale.game.world.entity.mob.npc.Npc;
13import com.osroyale.util.RandomUtils;
15import static com.osroyale.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
43public class DarkBeast extends SimplifiedListener<Npc> {
44 private static MagicAttack MAGIC =
new MagicAttack();
47 public void start(
Npc attacker,
Mob defender,
Hit[] hits) {
48 if (RandomUtils.success(.85)) {
49 attacker.setStrategy(NpcMeleeStrategy.get());
51 attacker.setStrategy(MAGIC);
56 private static class MagicAttack
extends NpcMagicStrategy {
57 private MagicAttack() {
58 super(getDefinition(
"Fire Bolt"));
62 public void start(
Npc attacker,
Mob defender,
Hit[] hits) {
64 combatProjectile.sendProjectile(attacker, defender);
69 public void hit(
Npc attacker,
Mob defender,
Hit hit) {
74 CombatHit hit = nextMagicHit(attacker, defender, 8, 2, 1);
75 hit.setAccurate(
true);