RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
KrakenActivityListener.java
1package com.osroyale.content.activity.impl.kraken;
2
3import com.osroyale.content.activity.ActivityListener;
4import com.osroyale.game.world.Interactable;
5import com.osroyale.game.world.entity.combat.attack.FightType;
6import com.osroyale.game.world.entity.combat.hit.Hit;
7import com.osroyale.game.world.entity.mob.Mob;
8import com.osroyale.game.world.position.Position;
9import com.osroyale.net.packet.out.SendMessage;
10import com.osroyale.util.Utility;
11
15public class KrakenActivityListener extends ActivityListener<KrakenActivity> {
16
17 KrakenActivityListener(KrakenActivity minigame) {
18 super(minigame);
19 }
20
21 @Override
22 public boolean withinDistance(Mob attacker, Mob defender) {
23 if (!attacker.isPlayer())
24 return true;
25 FightType fightType = attacker.getCombat().getFightType();
26 int distance = attacker.getStrategy().getAttackDistance(attacker, fightType);
27 Interactable kraken = Interactable.create(new Position(2278, 10035, attacker.getHeight()), 4, 4);
28 return Utility.getDistance(attacker, kraken) <= distance
29 && attacker.getStrategy().withinDistance(attacker, activity.kraken);
30 }
31
32 @Override
33 public boolean canAttack(Mob attacker, Mob defender) {
34 if (attacker.isPlayer() && defender.isNpc() && defender.getNpc().id == 496 && activity.count != 4) {
35 attacker.getPlayer()
36 .send(new SendMessage("You must activate all four whirlpools before awakening the Kraken."));
37 return false;
38 }
39 return activity.kraken == null || !activity.kraken.isDead();
40 }
41
42 @Override
43 public void hit(Mob attacker, Mob defender, Hit hit) {
44 if (!attacker.isPlayer() && !defender.isNpc()) {
45 return;
46 }
47
48 if (attacker.isPlayer() && defender.getNpc().id == 493) {
49 activity.transform(defender.getNpc(), 5535);
50 } else if (attacker.isPlayer() && defender.getNpc().id == 496) {
51 activity.transform(defender.getNpc(), 494);
52 }
53 }
54
55 @Override
56 public void onDeath(Mob attacker, Mob defender, Hit hit) {
57 }
58}
abstract< T extends Mob > CombatStrategy<? super T > getStrategy()
abstract Combat<? extends Mob > getCombat()
static Interactable create(Position position)