RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
DarkBeast.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;
13import com.osroyale.util.RandomUtils;
14
15import static com.osroyale.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
16
17@NpcCombatListenerSignature(npcs = {4005})
42
43public class DarkBeast extends SimplifiedListener<Npc> {
44 private static MagicAttack MAGIC = new MagicAttack();
45
46 @Override
47 public void start(Npc attacker, Mob defender, Hit[] hits) {
48 if (RandomUtils.success(.85)) {
49 attacker.setStrategy(NpcMeleeStrategy.get());
50 } else {
51 attacker.setStrategy(MAGIC);
52 }
53 }
54
55
56 private static class MagicAttack extends NpcMagicStrategy {
57 private MagicAttack() {
58 super(getDefinition("Fire Bolt"));
59 }
60
61 @Override
62 public void start(Npc attacker, Mob defender, Hit[] hits) {
63 attacker.animate(new Animation(2731, UpdatePriority.VERY_HIGH));
64 combatProjectile.sendProjectile(attacker, defender);
65
66 }
67
68 @Override
69 public void hit(Npc attacker, Mob defender, Hit hit) {
70 }
71
72 @Override
73 public CombatHit[] getHits(Npc attacker, Mob defender) {
74 CombatHit hit = nextMagicHit(attacker, defender, 8, 2, 1);
75 hit.setAccurate(true);
76 return new CombatHit[]{hit};
77 }
78 }
79}