1package com.osroyale.game.world.entity.combat.strategy.npc.boss.dagannoths;
3import com.osroyale.game.world.entity.combat.attack.FightType;
4import com.osroyale.game.world.entity.combat.hit.CombatHit;
5import com.osroyale.game.world.entity.combat.projectile.CombatProjectile;
6import com.osroyale.game.world.entity.combat.strategy.CombatStrategy;
7import com.osroyale.game.world.entity.combat.strategy.npc.MultiStrategy;
8import com.osroyale.game.world.entity.combat.strategy.npc.NpcMagicStrategy;
9import com.osroyale.game.world.entity.combat.strategy.npc.NpcRangedStrategy;
10import com.osroyale.game.world.entity.mob.Mob;
11import com.osroyale.game.world.entity.mob.npc.Npc;
13import static com.osroyale.game.world.entity.combat.CombatUtil.createStrategyArray;
14import static com.osroyale.game.world.entity.combat.CombatUtil.randomStrategy;
43public class Spinolyp
extends MultiStrategy {
44 private static final Ranged RANGED =
new Ranged();
45 private static final Magic MAGIC =
new Magic();
47 private static final CombatStrategy<Npc>[] STRATEGIES = createStrategyArray(RANGED, MAGIC);
50 currentStrategy = randomStrategy(STRATEGIES);
54 public int getAttackDelay(
Npc attacker,
Mob defender,
FightType fightType) {
58 private static final class Magic
extends NpcMagicStrategy {
65 public int getAttackDistance(
Npc attacker,
FightType fightType) {
71 return new CombatHit[]{nextMagicHit(attacker, defender, 10)};
75 private static final class Ranged
extends NpcRangedStrategy {
82 public int getAttackDistance(
Npc attacker,
FightType fightType) {
88 return new CombatHit[]{nextRangedHit(attacker, defender, 10)};