50public class Karamel extends SimplifiedListener<Npc> {
52 private static MagicAttack MAGIC;
53 private static CombatStrategy<Npc>[] STRATEGIES;
57 MAGIC =
new MagicAttack();
58 STRATEGIES = createStrategyArray(NpcMeleeStrategy.get(), MAGIC);
59 }
catch(Exception e) {
65 public boolean canAttack(
Npc attacker,
Mob defender) {
66 if(!NpcMeleeStrategy.get().withinDistance(attacker, defender)) {
67 attacker.setStrategy(MAGIC);
69 return attacker.
getStrategy().canAttack(attacker, defender);
73 public void start(
Npc attacker,
Mob defender,
Hit[] hits) {
74 if(!NpcMeleeStrategy.get().withinDistance(attacker, defender)) {
75 attacker.setStrategy(MAGIC);
77 attacker.setStrategy(randomStrategy(STRATEGIES));
81 private static class MagicAttack
extends NpcMagicStrategy {
82 private MagicAttack() {
83 super(getDefinition(
"Ice Barrage"));
87 public void hit(
Npc attacker,
Mob defender,
Hit hit) {
88 super.hit(attacker, defender, hit);
89 attacker.
speak(
"Semolina-Go!");
94 CombatHit combatHit = nextMagicHit(attacker, defender, combatProjectile);
95 combatHit.setAccurate(
true);