From d2d50bb8c8b04e85dc6f5a12a48b7f0cc05e61fe Mon Sep 17 00:00:00 2001 From: Tooze Date: Sun, 1 Feb 2026 23:16:52 -0500 Subject: [PATCH] egg hopper related messages --- .../barbassault/arena/BarbassaultGameArea.kt | 2 +- .../barbassault/arena/scenery/EggCannon.kt | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Server/src/main/content/minigame/barbassault/arena/BarbassaultGameArea.kt b/Server/src/main/content/minigame/barbassault/arena/BarbassaultGameArea.kt index 1b6299310..9a3257599 100644 --- a/Server/src/main/content/minigame/barbassault/arena/BarbassaultGameArea.kt +++ b/Server/src/main/content/minigame/barbassault/arena/BarbassaultGameArea.kt @@ -108,7 +108,7 @@ class BarbassaultGameArea : InteractionListener, MapArea { } on(Scenery.EGG_HOPPER_20264, IntType.SCENERY, "Load","Look-in") { player, node -> val loc = player.location - //sendMessage(player,"You need to be a Collector to load eggs.") + val optionClicked = player.getAttribute("interact:option")?.lowercase() ?: return@on false when(optionClicked){ "load" -> loadEggHopper(player) diff --git a/Server/src/main/content/minigame/barbassault/arena/scenery/EggCannon.kt b/Server/src/main/content/minigame/barbassault/arena/scenery/EggCannon.kt index 9e0423256..435aec450 100644 --- a/Server/src/main/content/minigame/barbassault/arena/scenery/EggCannon.kt +++ b/Server/src/main/content/minigame/barbassault/arena/scenery/EggCannon.kt @@ -1,5 +1,6 @@ package content.minigame.barbassault.arena.scenery +import content.minigame.barbassault.BarbRole import content.minigame.barbassault.arena.BarbassaultSession import content.minigame.barbassault.lobby.CurrentTeam import content.minigame.barbassault.lobby.baSession @@ -52,6 +53,7 @@ class EggCannon : ComponentPlugin() { //END BINKY// data class EggHopperCount(var red: Int = 0,var blue: Int = 0, var green: Int = 0, var yellow: Int = 0 ){ + fun totalCount(): Int = red + blue + green + yellow fun addEggs(redToAdd: Int = 0, blueToAdd: Int = 0, greenToAdd: Int = 0, yellowToAdd: Int = 0): Map { val added = mutableMapOf() val newRed = (red + redToAdd).coerceAtMost(5) @@ -157,8 +159,8 @@ class EggCannon : ComponentPlugin() { return } } + updateCannonUI(player) } - updateCannonUI(player) } fun updateCannonUI(player: Player?){ @@ -191,8 +193,10 @@ class EggCannon : ComponentPlugin() { companion object { fun openTurretIface(player: Player?) { player ?: return - val sesion = player.baSession - //get hopper count, if not 0 open else CHATBOXmessage "There are no eggs in the hopper." + if (player.baSession?.eggHopper?.totalCount() == 0) { + sendDialogueLines(player,"There are no eggs in the hopper.") + return + } player.interfaceManager.openTab(3,Component(495)) player.interfaceManager.setViewedTab(3) player.interfaceManager.removeTabs(0, 1, 2, 4, 5, 6,7,8,9,11, 12,13) @@ -200,8 +204,10 @@ class EggCannon : ComponentPlugin() { fun loadEggHopper(player: Player?){ player ?: return val session = player.baSession - //get player inventory - val eggsAdded = session?.eggHopper?.addEggs(greenToAdd = 0, redToAdd = 0, blueToAdd = 0, yellowToAdd = 0) + val role =session?.team?.getRoleForPlayer(player) + if (role != BarbRole.COLLECTOR) {sendMessage(player,"You need to be a Collector to load eggs.");return} + //get player inv eggs + val eggsAdded = session.eggHopper.addEggs(greenToAdd = 0, redToAdd = 0, blueToAdd = 0, yellowToAdd = 0) //remove eggs based on eggsAdded from inventory //Load hopper emote, Same as place table?? sendMessage(player,"Loading hopper") @@ -213,7 +219,6 @@ class EggCannon : ComponentPlugin() { val explosive = eggsCount?.red val stun = eggsCount?.blue sendDialogueLines(player,"The hopper contains:","$poison poison eggs, $explosive explosive eggs","and $stun stun eggs.") - } } }