RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
Gowler.java
1package com.osroyale.game.world.entity.combat.attack.listener.npc;
2
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.mob.Mob;
11import com.osroyale.game.world.entity.mob.npc.Npc;
12
13import static com.osroyale.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
14
18@NpcCombatListenerSignature(npcs = {2207})
44
45public class Gowler extends SimplifiedListener<Npc> {
46
47 private static MagicAttack MAGIC;
48
49 static {
50 try {
51 MAGIC = new MagicAttack();
52 } catch (Exception e) {
53 e.printStackTrace();
54 }
55 }
56
57 @Override
58 public boolean canAttack(Npc attacker, Mob defender) {
59 return attacker.getStrategy().canAttack(attacker, defender);
60 }
61
62 @Override
63 public void start(Npc attacker, Mob defender, Hit[] hits) {
64 attacker.setStrategy(MAGIC);
65 }
66
67 private static class MagicAttack extends NpcMagicStrategy {
68 private MagicAttack() {
69 super(getDefinition("Fire Wave"));
70 }
71
72 @Override
73 public void start(Npc attacker, Mob defender, Hit[] hits) {
74 attacker.animate(new Animation(7036, UpdatePriority.VERY_HIGH));
75 }
76
77 @Override
78 public CombatHit[] getHits(Npc attacker, Mob defender) {
79 CombatHit hit = nextMagicHit(attacker, defender, 16, combatProjectile);
80 hit.setAccurate(true);
81 return new CombatHit[]{hit};
82 }
83 }
84}
CombatStrategy< Npc > getStrategy()
Definition Npc.java:198