RuneHive-Game
Loading...
Searching...
No Matches
Gowler.java
Go to the documentation of this file.
1package com.runehive.game.world.entity.combat.attack.listener.npc;
2
3import com.runehive.game.Animation;
4import com.runehive.game.UpdatePriority;
5import com.runehive.game.world.entity.combat.attack.listener.NpcCombatListenerSignature;
6import com.runehive.game.world.entity.combat.attack.listener.SimplifiedListener;
7import com.runehive.game.world.entity.combat.hit.CombatHit;
8import com.runehive.game.world.entity.combat.hit.Hit;
9import com.runehive.game.world.entity.combat.strategy.npc.NpcMagicStrategy;
10import com.runehive.game.world.entity.mob.Mob;
11import com.runehive.game.world.entity.mob.npc.Npc;
12
13import static com.runehive.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
14
15/**
16 * @author Daniel
17 */
18@NpcCombatListenerSignature(npcs = {2207})
19public class Gowler extends SimplifiedListener<Npc> {
20
21 private static MagicAttack MAGIC;
22
23 static {
24 try {
25 MAGIC = new MagicAttack();
26 } catch (Exception e) {
27 e.printStackTrace();
28 }
29 }
30
31 @Override
32 public boolean canAttack(Npc attacker, Mob defender) {
33 return attacker.getStrategy().canAttack(attacker, defender);
34 }
35
36 @Override
37 public void start(Npc attacker, Mob defender, Hit[] hits) {
38 attacker.setStrategy(MAGIC);
39 }
40
41 private static class MagicAttack extends NpcMagicStrategy {
42 private MagicAttack() {
43 super(getDefinition("Fire Wave"));
44 }
45
46 @Override
47 public void start(Npc attacker, Mob defender, Hit[] hits) {
48 attacker.animate(new Animation(7036, UpdatePriority.VERY_HIGH));
49 }
50
51 @Override
52 public CombatHit[] getHits(Npc attacker, Mob defender) {
53 CombatHit hit = nextMagicHit(attacker, defender, 16, combatProjectile);
54 hit.setAccurate(true);
55 return new CombatHit[]{hit};
56 }
57 }
58}
Class that models a single animation used by an entity.
void start(Npc attacker, Mob defender, Hit[] hits)
Definition Gowler.java:37
A wrapper for a Hit object, adding additional variables for hit and hitsplat delays.
A Hit object holds the damage amount and hitsplat data.
Definition Hit.java:10
final CombatHit nextMagicHit(T attacker, Mob defender)
Handles the mob class.
Definition Mob.java:66
Represents a non-player character in the in-game world.
Definition Npc.java:29
void setStrategy(CombatStrategy< Npc > strategy)
Definition Npc.java:212
CombatStrategy< Npc > getStrategy()
The combat strategy of the mob.
Definition Npc.java:161
Represents different priorities for updating.