RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
AhrimListener.java
1package com.osroyale.game.world.entity.combat.attack.listener.item;
2
3import com.osroyale.net.packet.out.SendMessage;
4import com.osroyale.game.Graphic;
5import com.osroyale.game.UpdatePriority;
6import com.osroyale.game.world.entity.combat.attack.listener.ItemCombatListenerSignature;
7import com.osroyale.game.world.entity.combat.attack.listener.NpcCombatListenerSignature;
8import com.osroyale.game.world.entity.combat.attack.listener.SimplifiedListener;
9import com.osroyale.game.world.entity.combat.hit.Hit;
10import com.osroyale.game.world.entity.mob.Mob;
11import com.osroyale.game.world.entity.mob.player.Player;
12import com.osroyale.game.world.entity.skill.Skill;
13import com.osroyale.util.Utility;
14
20@NpcCombatListenerSignature(npcs = {1672})
21@ItemCombatListenerSignature(requireAll = true, items = {4745, 4747, 4749, 4751})
22public class AhrimListener extends SimplifiedListener<Mob> {
23
24 @Override
25 public void hit(Mob attacker, Mob defender, Hit hit) {
26 if (defender.isPlayer() && hit.getDamage() > 0) {
27 boolean success = Utility.random(100) <= /*20*/95;
28
29 if (!success)
30 return;
31
32 Player player = defender.getPlayer();
33 int strength = player.skills.getLevel(Skill.STRENGTH);
34 int drain = 5;
35
36 strength -= drain;
37
38 if (strength < 0)
39 strength = 0;
40
41 player.skills.setLevel(Skill.STRENGTH, strength);
42 player.send(new SendMessage(drain + "% strength has been drained by " + attacker.getName() + "."));
43 player.graphic(new Graphic(400, UpdatePriority.VERY_HIGH));
44
45 if (attacker.isPlayer()) {
46 attacker.getPlayer().send(new SendMessage("You have drained " + drain +"% of " + defender.getName() + "'s strength level."));
47 }
48 }
49 }
50}