1package com.osroyale.content.activity.impl.kraken;
4import com.osroyale.Config;
5import com.osroyale.content.achievement.AchievementHandler;
6import com.osroyale.content.achievement.AchievementKey;
7import com.osroyale.content.activity.Activity;
8import com.osroyale.content.activity.ActivityType;
9import com.osroyale.content.event.impl.ObjectInteractionEvent;
10import com.osroyale.content.skill.impl.magic.teleport.Teleportation;
11import com.osroyale.content.skill.impl.magic.teleport.TeleportationData;
12import com.osroyale.game.Animation;
13import com.osroyale.game.UpdatePriority;
14import com.osroyale.game.world.World;
15import com.osroyale.game.world.entity.mob.Mob;
16import com.osroyale.game.world.entity.mob.npc.Npc;
17import com.osroyale.game.world.entity.mob.npc.NpcDeath;
18import com.osroyale.game.world.entity.mob.player.Player;
19import com.osroyale.game.world.position.Area;
20import com.osroyale.game.world.position.Position;
21import com.osroyale.net.packet.out.SendMessage;
22import com.osroyale.util.Utility;
24import java.util.HashSet;
25import java.util.Iterator;
26import java.util.Optional;
74 private final Player player;
83 private boolean completed;
86 private Set<Npc> tentacles =
new HashSet<>();
92 private static final int[][] SPAWN = {
101 private KrakenActivity(Player player,
int instance) {
103 this.player = player;
108 KrakenActivity minigame =
new KrakenActivity(player, player.playerAssistant.instance());
109 minigame.
add(player);
110 player.gameRecord.start();
118 npc.npcAssistant.
login();
128 if (mob.
isPlayer() && mob.equals(player)) {
129 player.send(
new SendMessage(
"Better luck next time old chap!"));
134 if (mob.
isNpc() && mob.getNpc().id == 494) {
148 if (mob.getNpc().id == 496) {
151 tentacles.add(mob.getNpc());
158 public void remove(
Mob mob) {
163 int id = mob.getNpc().id;
167 tentacles.remove(mob.getNpc());
174 for (
int[] aSPAWN : SPAWN) {
179 player.face(
kraken.getPosition());
192 if (!
Area.inKraken(player)) {
216 if(
Area.inKraken(player)) {
217 KrakenActivity.create(player);
227 Iterator<Npc> it = tentacles.iterator();
228 while (it.hasNext()) {
238 if (event.getObject().getId() != 538)
240 player.dialogueFactory.
sendOption(
"Restart Kraken instance", () -> {
243 },
"Leave Kraken Instance", () -> {
251 public ActivityType getType() {
252 return ActivityType.KRAKEN;
257 return Optional.of(listener);
static final Position DEFAULT_POSITION
static void activate(Player player, AchievementKey achievement)
Activity(int cooldown, int instance)
Optional< KrakenActivityListener > getListener()
static KrakenActivity create(Player player)
void transform(Npc npc, int transform)
boolean canTeleport(Player player)
void onLogout(Player player)
void onRegionChange(Player player)
final DialogueFactory sendOption(String option1, Runnable action1, String option2, Runnable action2)
static void schedule(Task task)
Combat< Npc > getCombat()