diff --git a/Server/src/main/content/minigame/castlewars/CastleWarsListeners.kt b/Server/src/main/content/minigame/castlewars/CastleWarsListeners.kt index 2d5ede95d..c3c157c89 100644 --- a/Server/src/main/content/minigame/castlewars/CastleWarsListeners.kt +++ b/Server/src/main/content/minigame/castlewars/CastleWarsListeners.kt @@ -81,6 +81,9 @@ private val castleWarsStairDestinationOverrides: Map = mapOf Location.create(2374, 3131, 2) to Location.create(2373, 3133, 3) ) +private val saradominTrapdoorDestination: Location = Location.create(2429, 3075, 1) +private val zamorakTrapdoorDestination: Location = Location.create(2370, 3132, 1) + internal fun getCastleWarsStairDestination(start: Location): Location? { return SpecialLadders.getDestination(start) ?: castleWarsStairDestinationOverrides[start] } @@ -814,8 +817,7 @@ class CastleWarsListeners : InteractionListener { sendMessage(player, "You cannot take the flag into your respawn room!") return@on true } - val destination = CastleWarsRespawnArea.saradominRespawnRoom.randomWalkableLoc - teleport(player, destination, TeleportManager.TeleportType.INSTANT) + teleport(player, saradominTrapdoorDestination, TeleportManager.TeleportType.INSTANT) return@on true } on(CastleWars.zamorakTrapdoor, IntType.SCENERY, "Go-down") { player, node -> @@ -828,8 +830,7 @@ class CastleWarsListeners : InteractionListener { sendMessage(player, "You cannot take the flag into your respawn room!") return@on true } - val destination = CastleWarsRespawnArea.zamorakRespawnRoom.randomWalkableLoc - teleport(player, destination, TeleportManager.TeleportType.INSTANT) + teleport(player, zamorakTrapdoorDestination, TeleportManager.TeleportType.INSTANT) return@on true } diff --git a/Server/src/test/kotlin/content/minigame/castlewars/CastleWarsTests.kt b/Server/src/test/kotlin/content/minigame/castlewars/CastleWarsTests.kt index a57b531ca..7e1530181 100644 --- a/Server/src/test/kotlin/content/minigame/castlewars/CastleWarsTests.kt +++ b/Server/src/test/kotlin/content/minigame/castlewars/CastleWarsTests.kt @@ -359,6 +359,36 @@ class CastleWarsTests { } } + @Test + fun trapdoorsTeleportPlayersToSpecificTilesInsideRespawnRooms() { + TestUtils.getMockPlayer("cwtrapdoorsara").use { saradominPlayer -> + TestUtils.getMockPlayer("cwtrapdoorzam").use { zamorakPlayer -> + CastleWarsGameArea.saradominPlayers.add(saradominPlayer) + CastleWarsGameArea.zamorakPlayers.add(zamorakPlayer) + + assertTrue( + runSceneryInteraction( + CastleWars.saradominTrapdoor, + "Go-down", + saradominPlayer, + Scenery(CastleWars.saradominTrapdoor, Location.create(2429, 3075, 2), 10, 0) + ) + ) + assertTrue( + runSceneryInteraction( + CastleWars.zamorakTrapdoor, + "Go-down", + zamorakPlayer, + Scenery(CastleWars.zamorakTrapdoor, Location.create(2370, 3132, 2), 10, 0) + ) + ) + + assertEquals(Location.create(2429, 3075, 1), saradominPlayer.properties.teleportLocation) + assertEquals(Location.create(2370, 3132, 1), zamorakPlayer.properties.teleportLocation) + } + } + } + @Test fun gameEndAwardsDrawTicketWithoutFivePerTeamOrTenMinuteGate() { TestUtils.getMockPlayer("cwticket1").use { sara1 ->