RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
SergeantStrongstack.java
1package com.osroyale.game.world.entity.combat.attack.listener.npc;
2
3import com.osroyale.game.world.entity.combat.attack.listener.NpcCombatListenerSignature;
4import com.osroyale.game.world.entity.combat.attack.listener.SimplifiedListener;
5import com.osroyale.game.world.entity.combat.hit.Hit;
6import com.osroyale.game.world.entity.mob.Mob;
7import com.osroyale.game.world.entity.mob.npc.Npc;
8import com.osroyale.game.world.entity.mob.player.Player;
9import com.osroyale.util.Utility;
10
14@NpcCombatListenerSignature(npcs = {2216})
15public class SergeantStrongstack extends SimplifiedListener<Npc> {
16
17 @Override
18 public void hit(Npc attacker, Mob defender, Hit hit) {
19 if (!defender.isPlayer())
20 return;
21 if (Utility.random(10) != 0)
22 return;
23
24 Player playerDefender = defender.getPlayer();
25
26 if (playerDefender.viewport.getPlayersInViewport().size() < 1)
27 return;
28
29 Player[] players = new Player[playerDefender.viewport.getPlayersInViewport().size()];
30 int index = 0;
31
32 for (Player player :playerDefender.viewport.getPlayersInViewport()) {
33 if (attacker.getCombat().isAttacking(player))
34 continue;
35 if (!Utility.within(attacker, player, 7))
36 continue;
37 players[index] = player;
38 index++;
39 }
40
41 Player next = Utility.randomElement(players);
42 if (next != null)
43 attacker.getCombat().attack(next);
44 }
45}
static< T > T randomElement(Collection< T > collection)
Definition Utility.java:285