RuneHive-Game
Loading...
Searching...
No Matches
Tentacle.java
Go to the documentation of this file.
1package com.runehive.game.world.entity.combat.attack.listener.npc;
2
3import com.runehive.game.world.entity.combat.attack.listener.NpcCombatListenerSignature;
4import com.runehive.game.world.entity.combat.attack.listener.SimplifiedListener;
5import com.runehive.game.world.entity.combat.hit.CombatHit;
6import com.runehive.game.world.entity.combat.hit.Hit;
7import com.runehive.game.world.entity.combat.strategy.npc.NpcMagicStrategy;
8import com.runehive.game.world.entity.mob.Mob;
9import com.runehive.game.world.entity.mob.npc.Npc;
10
11import static com.runehive.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
12
13/**
14 * @author Daniel
15 */
16@NpcCombatListenerSignature(npcs = {5535})
17public class Tentacle extends SimplifiedListener<Npc> {
18
19 private static MagicAttack MAGIC;
20
21 static {
22 try {
23 MAGIC = new MagicAttack();
24 } catch (Exception e) {
25 e.printStackTrace();
26 }
27 }
28
29 @Override
30 public int modifyAccuracy(Npc attacker, Mob defender, int roll) {
31 return roll + 25_000;
32 }
33
34 @Override
35 public void start(Npc attacker, Mob defender, Hit[] hits) {
36 attacker.setStrategy(MAGIC);
37 }
38
39 private static class MagicAttack extends NpcMagicStrategy {
40 private MagicAttack() {
41 super(getDefinition("Tentacle Blast"));
42 }
43
44 @Override
45 public CombatHit[] getHits(Npc attacker, Mob defender) {
46 CombatHit combatHit = nextMagicHit(attacker, defender, 2);
47 combatHit.setAccurate(true);
48 return new CombatHit[]{combatHit};
49 }
50 }
51}
int modifyAccuracy(Npc attacker, Mob defender, int roll)
Definition Tentacle.java:30
void start(Npc attacker, Mob defender, Hit[] hits)
Definition Tentacle.java:35
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