RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
AgrithNaNa.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.combat.strategy.npc.NpcMeleeStrategy;
11import com.osroyale.game.world.entity.mob.Mob;
12import com.osroyale.game.world.entity.mob.npc.Npc;
13
14import static com.osroyale.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
15
19@NpcCombatListenerSignature(npcs = { 4880 })
46
47public class AgrithNaNa extends SimplifiedListener<Npc> {
48
49 private static MagicAttack MAGIC;
50
51 static {
52 try {
53 MAGIC = new MagicAttack();
54 } catch(Exception e) {
55 e.printStackTrace();
56 }
57 }
58
59 @Override
60 public boolean canAttack(Npc attacker, Mob defender) {
61 if(!NpcMeleeStrategy.get().withinDistance(attacker, defender)) {
62 attacker.setStrategy(MAGIC);
63 }
64 return attacker.getStrategy().canAttack(attacker, defender);
65 }
66
67 @Override
68 public void start(Npc attacker, Mob defender, Hit[] hits) {
69 if(!NpcMeleeStrategy.get().withinDistance(attacker, defender)) {
70 attacker.setStrategy(MAGIC);
71 } else {
72 attacker.setStrategy(NpcMeleeStrategy.get());
73 }
74 }
75
76 private static class MagicAttack extends NpcMagicStrategy {
77 private MagicAttack() {
78 super(getDefinition("Fire Blast"));
79 }
80
81 @Override
82 public Animation getAttackAnimation(Npc attacker, Mob defender) {
83 return new Animation(3502, UpdatePriority.HIGH);
84 }
85
86 @Override
87 public CombatHit[] getHits(Npc attacker, Mob defender) {
88 CombatHit combatHit = nextMagicHit(attacker, defender, combatProjectile.getMaxHit());
89 combatHit.setAccurate(true);
90 return new CombatHit[] { combatHit };
91 }
92 }
93}
CombatStrategy< Npc > getStrategy()
Definition Npc.java:198