Added requirement checks to the teleport tablets

This commit is contained in:
randy 2024-11-10 22:09:13 -07:00
parent df3fc6c973
commit fa808accd4

View file

@ -11,6 +11,8 @@ import core.game.node.item.Item
import core.game.world.map.Location
import core.api.hasRequirement;
import core.cache.def.impl.ItemDefinition;
class TeleTabsListener : InteractionListener {
enum class TeleTabs(val item: Int, val location: Location, val exp: Double, val requirementCheck: (Player) -> Boolean = { true }) {
@ -18,23 +20,37 @@ class TeleTabsListener : InteractionListener {
player -> hasRequirement(player, "Plague City");
}),
AIR_ALTAR_TELEPORT(13599, Location.create(2978, 3296, 0), 0.0),
ASTRAL_ALTAR_TELEPORT(13611, Location.create(2156, 3862, 0), 0.0),
BLOOD_ALTAR_TELEPORT(13610, Location.create(3559, 9778, 0), 0.0),
ASTRAL_ALTAR_TELEPORT(13611, Location.create(2156, 3862, 0), 0.0, {
player -> hasRequirement(player, "Lunar Diplomacy");
}),
BLOOD_ALTAR_TELEPORT(13610, Location.create(3559, 9778, 0), 0.0, {
player -> hasRequirement(player, "Legacy of Seergaze");
}),
BODY_ALTAR_TELEPORT(13604, Location.create(3055, 3443, 0), 0.0),
CAMELOT_TELEPORT(8010, Location.create(2757, 3477, 0), 55.5),
CHAOS_ALTAR_TELEPORT(13606, Location.create(3058, 3593, 0), 0.0),
COSMIC_ALTAR_TELEPORT(13605, Location.create(2411, 4380, 0), 0.0),
DEATH_ALTAR_TELEPORT(13609, Location.create(1863, 4639, 0), 0.0),
COSMIC_ALTAR_TELEPORT(13605, Location.create(2411, 4380, 0), 0.0, {
player -> hasRequirement(player, "Lost City");
}),
DEATH_ALTAR_TELEPORT(13609, Location.create(1863, 4639, 0), 0.0, {
player -> hasRequirement(player, "Mourning's End Part II");
}),
EARTH_ALTAR_TELEPORT(13602, Location.create(3304, 3472, 0), 0.0),
FALADOR_TELEPORT(8009, Location.create(2966, 3380, 0), 47.0),
FIRE_ALTAR_TELEPORT(13603, Location.create(3311, 3252, 0), 0.0),
LAW_ALTAR_TELEPORT(13608, Location.create(2857, 3378, 0), 0.0),
LAW_ALTAR_TELEPORT(13608, Location.create(2857, 3378, 0), 0.0, {
player -> if (!ItemDefinition.canEnterEntrana(player)) (player.sendMessage("The power of Saradomin prevents you from taking armour or weaponry to Entrana.") !is Unit) else true; // ugly way of doing this, but the sendMessage function returns a Unit type, so by using !is Unit it becomes false.
}),
LUMBRIDGE_TELEPORT(8008, Location.create(3222, 3218, 0), 41.0),
MIND_ALTAR_TELEPORT(13600, Location.create(2979, 3510, 0), 0.0),
NATURE_ALTAR_TELEPORT(13607, Location.create(2868, 3013, 0), 0.0),
TELEKINETIC_GRAB(8022, Location.create(2836, 3285, 0), 0.0),
TELEKINETIC_GRAB(8022, Location.create(2836, 3285, 0), 0.0, {
player -> hasRequirement(player, "Dragon Slayer");
}),
VARROCK_TELEPORT(8007, Location.create(3212, 3423, 0), 35.00),
WATCH_TOWER_TELEPORT(8012, Location.create(2548, 3114, 0), 68.00),
WATCH_TOWER_TELEPORT(8012, Location.create(2548, 3114, 0), 68.00, {
player -> hasRequirement(player, "Watchtower");
}),
WATER_ALTAR_TELEPORT(13601, Location.create(3182, 3162, 0), 0.0);
companion object {