RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
VengeanceListener.java
1package com.osroyale.game.world.entity.combat.attack.listener.other;
2
3import com.osroyale.game.world.entity.combat.CombatType;
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.combat.hit.HitIcon;
7import com.osroyale.game.world.entity.mob.Mob;
8import com.osroyale.game.world.entity.mob.player.Player;
9
11public class VengeanceListener extends SimplifiedListener<Player> {
12
13 private static final VengeanceListener INSTANCE = new VengeanceListener();
14
15 private VengeanceListener() {
16 }
17
18 @Override
19 public void block(Mob attacker, Player defender, Hit hit, CombatType combatType) {
20 if (hit.getDamage() < 2) {
21 return;
22 }
23
24 Hit recoil = new Hit((int) (hit.getDamage() * 0.75), HitIcon.DEFLECT);
25 attacker.damage(recoil);
26 attacker.getCombat().getDamageCache().add(defender, recoil);
27 defender.speak("Taste vengeance!");
28 defender.venged = false;
29 }
30
31 @Override
32 public void preKill(Mob attacker, Mob defender, Hit hit) {
33 if (!defender.isPlayer()) {
34 return;
35 }
36
37 if (hit.getDamage() < 2) {
38 return;
39 }
40
41 Hit recoil = new Hit((int) (hit.getDamage() * 0.75), HitIcon.DEFLECT);
42
43 attacker.damage(recoil);
44 attacker.getCombat().getDamageCache().add(defender, recoil);
45 defender.speak("Taste vengeance!");
46 defender.getPlayer().venged = false;
47 }
48
49 @Override
50 public void finishIncoming(Mob attacker, Player defender) {
51 if (!defender.venged) {
52 defender.getCombat().removeListener(this);
53 }
54 }
55
56 public static VengeanceListener get() {
57 return INSTANCE;
58 }
59
60}
void speak(String forceChat)
Definition Mob.java:164
abstract Combat<? extends Mob > getCombat()