RuneHive-Game
Loading...
Searching...
No Matches
VengeanceListener.java
Go to the documentation of this file.
1package com.runehive.game.world.entity.combat.attack.listener.other;
2
3import com.runehive.game.world.entity.combat.CombatType;
4import com.runehive.game.world.entity.combat.attack.listener.SimplifiedListener;
5import com.runehive.game.world.entity.combat.hit.Hit;
6import com.runehive.game.world.entity.combat.hit.HitIcon;
7import com.runehive.game.world.entity.mob.Mob;
8import com.runehive.game.world.entity.mob.player.Player;
9
10/** no more bugs */
11public class VengeanceListener extends SimplifiedListener<Player> {
12
13 private static final VengeanceListener INSTANCE = new VengeanceListener();
14
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 block(Mob attacker, Player defender, Hit hit, CombatType combatType)
A Hit object holds the damage amount and hitsplat data.
Definition Hit.java:10
Handles the mob class.
Definition Mob.java:66
void speak(String forceChat)
Sets the mob's forced chat.
Definition Mob.java:127
abstract Combat<? extends Mob > getCombat()
The combat of the mob.
final boolean isPlayer()
Check if an entity is a player.
Definition Mob.java:564
This class represents a character controlled by a player.
Definition Player.java:125
Combat< Player > getCombat()
The combat of the mob.
Definition Player.java:759
The enumerated type whose elements represent the hit icon of a Hit.
Definition HitIcon.java:8
DEFLECT
Represents the leech hit icon.
Definition HitIcon.java:23