diff --git a/Server/src/main/content/minigame/barbassault/BADevHelper.kt b/Server/src/main/content/minigame/barbassault/BADevHelper.kt index 60a0692dd..498647039 100644 --- a/Server/src/main/content/minigame/barbassault/BADevHelper.kt +++ b/Server/src/main/content/minigame/barbassault/BADevHelper.kt @@ -17,20 +17,20 @@ class BADevHelper : CommandSet(Privilege.ADMIN) { var babotcount = 0 override fun defineCommands() { - define ("maxbarbpoints") { player,_ -> + define ("maxbapoints") { player,_ -> addBAPoints(player,BarbAssaultPoints(500, 500, 500,500)) return@define } - define ("setbarbwave") { player,args -> + define ("setbawave") { player,args -> setBAWave(player,args[1].toInt()) return@define } - define ("resetbarbpoints") { player,_ -> + define ("resetbapoints") { player,_ -> setBAPoints(player,BarbAssaultPoints(0, 0, 0,0)) return@define } - define ("resetbarblevels") { player,_ -> + define ("resetbalevels") { player,_ -> setBALevels(player,BarbAssaultLevels(0, 0, 0,0)) return@define } diff --git a/Server/src/main/content/minigame/barbassault/lobby/BALobby.kt b/Server/src/main/content/minigame/barbassault/lobby/BALobby.kt index 1515cf24c..d1b816f89 100644 --- a/Server/src/main/content/minigame/barbassault/lobby/BALobby.kt +++ b/Server/src/main/content/minigame/barbassault/lobby/BALobby.kt @@ -42,38 +42,34 @@ class BALobby : InteractionListener, MapArea { if (enteredZone == QUICK_START) { return } if (enteredZone == REGION_10322) { return } - updatePlayerWave(entity) + //updatePlayerWave(entity) openOverlay(entity as Player, 256) } override fun areaLeave(entity: Entity, logout: Boolean) { if (entity is Player) { entity.interfaceManager.closeOverlay() - - //this is redundant. - val barbassItems = intArrayOf(Items.POISONED_WORMS_10540) - entity.equipment.removeAll(barbassItems) - entity.inventory.removeAll(barbassItems) - } } + //was used in early development. fun updatePlayerWave(entity: Entity) { val player = entity as? Player ?: return val location = player.location if (QUICK_START.insideBorder(location)) { - entity.setAttribute("/save:barbass:wave", 1) + setBAWave(entity,1) return } for ((index, lobby) in waveLobbies.withIndex()) { if (lobby.insideBorder(location)) { if (lobby != MAIN_LOBBY) { // MAIN_LOBBY should not assign a wave number - entity.setAttribute("/save:barbass:wave", index ) + setBAWave(entity,index) } return } } } + private fun capeCheck(player: Player): Boolean { val wornCape = getItemFromEquipment(player, EquipmentSlot.CAPE)?.id ?: -1 if (wornCape != -1) { @@ -94,7 +90,7 @@ class BALobby : InteractionListener, MapArea { val team = session?.team if (team == null) { - leader.sendMessage("No active session found.") + leader.debug("[DEBUG] No active session found.") return@onUseWithPlayer false } @@ -113,27 +109,18 @@ class BALobby : InteractionListener, MapArea { on(Items.SCROLL_10512, IntType.ITEM, "Read") { player, _ -> //https://youtu.be/GYh6JPKNOSA?t=233 -- I know 2017, but only example for read scroll iv found. // ima cry, that YT account got deleted. - // waveAdvance(player) + waveAdvance(player) return@on true } on(Items.SCROLL_10512, IntType.ITEM, "Write-Role") { player, _ -> - //player.interfaceManager.open(Component(493)) - //setInterfaceModel(player, 20561, 493, 8,1) sendDialogueOptions(player, "Which role would you like to perform?","Attacker", "Defender","Collector","Healer","Cancel") addDialogueAction(player) { _ , buttonId -> writeRole(player,buttonId) } return@on true } on(Items.SCROLL_10512, IntType.ITEM, "Clear") { player, _ -> - val session = getBASession(player) - val team = session?.team - if (team != null) { - disbandTeam(session) - createTeam(player) - } else { - createTeam(player) - } - + if (getBASession(player)?.team != null) return@on true + createTeam(player) return@on true } on(Items.SCROLL_10512, IntType.ITEM, "Destroy") { player, item -> @@ -143,7 +130,6 @@ class BALobby : InteractionListener, MapArea { if (removeItem(player, item)) { playAudio(player, Sounds.DESTROY_OBJECT_2381) abandonTeam(player) - //updateCurrentTeam(player) } } } @@ -151,33 +137,42 @@ class BALobby : InteractionListener, MapArea { } on(Scenery.LADDER_20193, IntType.SCENERY, "Climb-down") { player, _ -> - val session = getBASession(player) ?: run { - player.sendMessage("You are not in a session!") - return@on true - } - if (session.state != BarbassaultState.PARTY_CREATION) { - player.sendMessage("Your team is already starting or in the arena!") - return@on true - } + val session = getBASession(player) + if (session == null) { player.debug("[DEBUG] You are not in a session!"); return@on true } + if (session.team.isLeader(player)) return@on true + if (session.state != BarbassaultState.PARTY_CREATION) { player.debug("[DEBUG] Your team is already starting or in the arena!"); return@on true } + + closeOverlay(player) // close party + openOverlay(player, 494) // open countdown - closeOverlay(player) // close party, - openOverlay(player, 494)// open countdown, session.beginStartingPhase() return@on true } on(Scenery.DOOR_20209, IntType.SCENERY, "Pass") { player, node -> - if (!capeCheck(player)) { return@on false } - //todo Not allowed to enter QuickStart with Scroll - if (!QUICK_START.insideBorder(player.location)){ - //todo warning message you are about to reset your wave - setBAWave(player,1) - handlePlayerOptionDoor(player) { role -> - //player.sendMessage("You are a ${role.name.lowercase().replaceFirstChar { it.uppercase() }}.") - handleWaveDoor(player, node, 489) - addToQueue(player, role) + if (!capeCheck(player)) return@on false + // todo Not allowed to enter QuickStart with Scroll + if (!QUICK_START.insideBorder(player.location)) { + + if (getBAWave(player) != 1) { + sendDialogueOptions(player,"Are you sure you wish to reset your wave progress??","Yes","No") + addDialogueAction(player) { _, buttonId -> + if (buttonId == 2) { + setBAWave(player, 1) + + handlePlayerOptionDoor(player) { role -> + handleWaveDoor(player, node, 489) + addToQueue(player, role) + } + } + } + } else { + handlePlayerOptionDoor(player) { role -> + handleWaveDoor(player, node, 489) + addToQueue(player, role) + } } - }else { + } else { handleWaveDoor(player, node, 489) } return@on true @@ -335,12 +330,13 @@ class BALobby : InteractionListener, MapArea { } } } + fun waveAdvance(player: Player) { - val wave = player.getAttribute("barbass:wave", 1) + val wave = getBAWave(player) if (wave in 1..waveLobbies.size) { if (wave == 10) {player.setAttribute("/save:barbass:wave", 1)} } else { - println("Invalid wave number: $wave") + sendMessage(player,"Invalid wave number: $wave. PLEASE REPORT THIS!") } }