From a6e6d5cfdfdb4dfc704c037ef8d3f5c0ecd2cbf6 Mon Sep 17 00:00:00 2001 From: Tooze Date: Tue, 26 May 2026 17:02:28 -0400 Subject: [PATCH] cleaned horn calls up. --- .../barbassault/arena/BAArenaListener.kt | 8 +- .../barbassault/arena/BAHornSystem.kt | 128 ++++++------------ .../minigame/barbassault/arena/BASession.kt | 43 +++--- .../barbassault/arena/scenery/HornOfGlory.kt | 38 +++--- 4 files changed, 88 insertions(+), 129 deletions(-) diff --git a/Server/src/main/content/minigame/barbassault/arena/BAArenaListener.kt b/Server/src/main/content/minigame/barbassault/arena/BAArenaListener.kt index 529a69410..c1ec5c5da 100644 --- a/Server/src/main/content/minigame/barbassault/arena/BAArenaListener.kt +++ b/Server/src/main/content/minigame/barbassault/arena/BAArenaListener.kt @@ -154,7 +154,7 @@ class BarbassaultArenaListener : InteractionListener { } onUseWith(IntType.NPC, intArrayOf(Items.POISONED_TOFU_10539,Items.POISONED_MEAT_10541,Items.POISONED_WORMS_10540), *PENANCE_HEALER_IDS) { player, used, target -> val session = getBASession(player) ?: return@onUseWith true - val currentCall = (session.roleCalls[BarbRole.HEALER] as? BarbassaultSession.HealerCall)?.required?.itemId() + val currentCall = (session.roleCalls[BarbRole.HEALER] as? BarbassaultSession.HealerCall)?.required?.itemId removeItem(player,used) if (used.id == currentCall) { applyBAPoison(target as Entity,player,20) @@ -228,8 +228,8 @@ class BarbassaultArenaListener : InteractionListener { on(LureItems, IntType.ITEM, "Drop") { player, node -> val session = getBASession(player) ?: return@on true val currentCall = (session.roleCalls[BarbRole.DEFENDER] as? BarbassaultSession.DefenderCall)?.required - sendMessage(player,currentCall?.itemId().toString()) - val flag = node.id == currentCall?.itemId() + //sendMessage(player,currentCall?.itemId.toString()) + val flag = node.id == currentCall?.itemId handleDropItem(player,node,flag) return@on true @@ -241,7 +241,7 @@ class BarbassaultArenaListener : InteractionListener { if (session.team.getRoleForPlayer(player) != BarbRole.COLLECTOR) { sendMessage(player, "You need to be a collector to do that");return@on false } val currentCall = (session.roleCalls[BarbRole.COLLECTOR]as? BarbassaultSession.CollectorCall)?.required - if (node.id != currentCall?.itemId()) { handleWrongEgg(player,node); return@on false } + if (node.id != currentCall?.itemId) { handleWrongEgg(player,node); return@on false } val eggInBag = getCollectorBag(player).addToBag(node) diff --git a/Server/src/main/content/minigame/barbassault/arena/BAHornSystem.kt b/Server/src/main/content/minigame/barbassault/arena/BAHornSystem.kt index b2488f976..308a5a7e2 100644 --- a/Server/src/main/content/minigame/barbassault/arena/BAHornSystem.kt +++ b/Server/src/main/content/minigame/barbassault/arena/BAHornSystem.kt @@ -13,115 +13,71 @@ class BAHornSystem : InteractionListener { private val ATTACKER_HORNS = intArrayOf( Items.ATTACKER_HORN_10516, Items.ATTACKER_HORN_10517, Items.ATTACKER_HORN_10518, Items.ATTACKER_HORN_10519, Items.ATTACKER_HORN_10520 ) private val HEALER_HORNS = intArrayOf( Items.HEALER_HORN_10526, Items.HEALER_HORN_10527, Items.HEALER_HORN_10528, Items.HEALER_HORN_10529, Items.HEALER_HORN_10530 ) - // private val ALL_HORNS = intArrayOf( Items.COLLECTOR_HORN_10560, Items.DEFENDER_HORN_10538 ) + HEALER_HORNS + ATTACKER_HORNS - - enum class BaCall(val text: String) { - COLLECTOR_RED("Collector: Red Eggs!"), - COLLECTOR_GREEN("Collector: Green Eggs!"), - COLLECTOR_BLUE("Collector: Blue Eggs!"), - - HEALER_TOFU("Healer: Poison tofu!"), - HEALER_WORMS("Healer: Poison worms!"), - HEALER_MEAT("Healer: Poison meat!"), - - ATTACKER_STYLE_1("Attacker: Controlled/Bronze/Wind!"), - ATTACKER_STYLE_2("Attacker: Accurate/Iron/Water!"), - ATTACKER_STYLE_3("Attacker: Aggressive/Steel/Earth!"), - ATTACKER_STYLE_4("Attacker: Defensive/Mithril/Fire!"), - - DEFENDER_TOFU("Defender: Drop Tofu!"), - DEFENDER_CRACKERS("Defender: Drop Crackers!"), - DEFENDER_WORMS("Defender: Drop Worms!"), - MEDIC("Medic!!") - } override fun defineListeners() { on(Items.DEFENDER_HORN_10538, IntType.ITEM, "Tell-tofu", "Tell-worms", "Tell-meat","Medic", "Drop") { player, _ -> val optionClicked = player.getAttribute("interact:option")?.lowercase() ?: return@on false - if (optionClicked == "drop") { sendMessage(player, "I need that!"); return@on false } - - val defenderMap = mapOf( - "tell-tofu" to (BarbassaultSession.PoisonFood.TOFU to BaCall.HEALER_TOFU), - "tell-worms" to (BarbassaultSession.PoisonFood.WORMS to BaCall.HEALER_WORMS), - "tell-meat" to (BarbassaultSession.PoisonFood.MEAT to BaCall.HEALER_MEAT), - "medic" to (null to BaCall.MEDIC) ) - - val pair = defenderMap[optionClicked] ?: return@on false - val food = pair.first - val call = pair.second - - sendChat(player, call.text) - when (food) { - is BarbassaultSession.PoisonFood -> getBASession(player)?.onHornCall(player, food) - null -> getBASession(player)?.alertHealers(player) + val session = getBASession(player) ?: return@on true + var poisFoodToTell = BarbassaultSession.PoisonFood.TOFU + when (optionClicked) { + "tell-tofu" -> poisFoodToTell = BarbassaultSession.PoisonFood.TOFU + "tell-worms" ->poisFoodToTell = BarbassaultSession.PoisonFood.WORMS + "tell-meat" -> poisFoodToTell = BarbassaultSession.PoisonFood.MEAT + "drop" -> { sendMessage(player, "I need that!");return@on true } + "medic" -> { sendChat(player, "Medic!"); session.alertHealers(player);return@on true } + else -> return@on true } + sendChat(player, poisFoodToTell.hornShout) + session.onHornCall(player, poisFoodToTell) true } on(Items.COLLECTOR_HORN_10560, IntType.ITEM, "Tell-style1", "Tell-style2", "Tell-style3", "Tell-style4","Medic" , "Drop") { player, _ -> val optionClicked = player.getAttribute("interact:option")?.lowercase() ?: return@on false - if (optionClicked == "drop") { sendMessage(player, "I need that!"); return@on false } - - val styleCallMap = mapOf( - "tell-style1" to (BarbassaultSession.AttackerStyle.STYLE_1 to BaCall.ATTACKER_STYLE_1), - "tell-style2" to (BarbassaultSession.AttackerStyle.STYLE_2 to BaCall.ATTACKER_STYLE_2), - "tell-style3" to (BarbassaultSession.AttackerStyle.STYLE_3 to BaCall.ATTACKER_STYLE_3), - "tell-style4" to (BarbassaultSession.AttackerStyle.STYLE_4 to BaCall.ATTACKER_STYLE_4), - "medic" to (null to BaCall.MEDIC) ) - - val pair = styleCallMap[optionClicked] ?: return@on false - val style = pair.first - val call = pair.second - - sendChat(player, call.text) - when (style) { - is BarbassaultSession.AttackerStyle -> getBASession(player)?.onHornCall(player, style) - null-> getBASession(player)?.alertHealers(player) + val session = getBASession(player) ?: return@on true + var styleToTell = BarbassaultSession.AttackerStyle.STYLE_1 + when (optionClicked){ + "tell-style1" -> styleToTell = BarbassaultSession.AttackerStyle.STYLE_1 + "tell-style2" -> styleToTell = BarbassaultSession.AttackerStyle.STYLE_2 + "tell-style3" -> styleToTell = BarbassaultSession.AttackerStyle.STYLE_3 + "tell-style4" -> styleToTell = BarbassaultSession.AttackerStyle.STYLE_4 + "drop" -> { sendMessage(player, "I need that!");return@on true } + "medic" -> { sendChat(player, "Medic!"); session.alertHealers(player);return@on true } } + sendChat(player, styleToTell.hornShout) + session.onHornCall(player, styleToTell) true } on(ATTACKER_HORNS, IntType.ITEM, "Tell-red", "Tell-green", "Tell-blue", "Medic", "Drop") { player, _ -> val optionClicked = player.getAttribute("interact:option")?.lowercase() ?: return@on false - if (optionClicked == "drop") { sendMessage(player, "I need that!"); return@on false } - - val collectorMap = mapOf( - "tell-red" to (BarbassaultSession.EggColor.RED to BaCall.COLLECTOR_RED), - "tell-green" to (BarbassaultSession.EggColor.GREEN to BaCall.COLLECTOR_GREEN), - "tell-blue" to (BarbassaultSession.EggColor.BLUE to BaCall.COLLECTOR_BLUE), - "medic" to (null to BaCall.MEDIC) ) - - val pair = collectorMap[optionClicked] ?: return@on false - val color = pair.first - val call = pair.second - - sendChat(player, call.text) - when (color) { - is BarbassaultSession.EggColor -> getBASession(player)?.onHornCall(player, color) - null -> getBASession(player)?.alertHealers(player) + val session = getBASession(player) ?: return@on true + var eggToTell = BarbassaultSession.EggColor.RED + when (optionClicked) { + "tell-red" -> eggToTell = BarbassaultSession.EggColor.RED + "tell-green" -> eggToTell = BarbassaultSession.EggColor.GREEN + "tell-blue" -> eggToTell = BarbassaultSession.EggColor.RED + "drop" -> { sendMessage(player, "I need that!");return@on true } + "medic" -> { sendChat(player, "Medic!"); session.alertHealers(player);return@on true } } + sendChat(player, eggToTell.hornShout) + session.onHornCall(player, eggToTell) true } on(HEALER_HORNS, IntType.ITEM, "Tell-tofu", "Tell-crackers", "Tell-worms","Medic", "Drop") { player, _ -> val optionClicked = player.getAttribute("interact:option")?.lowercase() ?: return@on false - if (optionClicked == "drop") { sendMessage(player, "I need that!"); return@on false } - - val lureMap = mapOf( - "tell-tofu" to (BarbassaultSession.LureFood.TOFU to BaCall.DEFENDER_TOFU), - "tell-crackers" to (BarbassaultSession.LureFood.CRACKERS to BaCall.DEFENDER_CRACKERS), - "tell-worms" to (BarbassaultSession.LureFood.WORMS to BaCall.DEFENDER_WORMS), - "medic" to (null to BaCall.MEDIC) ) - - val pair = lureMap[optionClicked] ?: return@on false - val lure = pair.first - val call = pair.second - - sendChat(player, call.text) - when (lure) { - is BarbassaultSession.LureFood -> getBASession(player)?.onHornCall(player, lure) - null -> getBASession(player)?.alertHealers(player) + val session = getBASession(player) ?: return@on true + var lureFoodToTell = BarbassaultSession.LureFood.TOFU + when (optionClicked){ + "tell-tofu" -> lureFoodToTell = BarbassaultSession.LureFood.TOFU + "tell-crackers" -> lureFoodToTell = BarbassaultSession.LureFood.CRACKERS + "tell-worms" -> lureFoodToTell = BarbassaultSession.LureFood.WORMS + "drop" -> { sendMessage(player, "I need that!");return@on true } + "medic" -> { sendChat(player, "Medic!"); session.alertHealers(player);return@on true } } + sendChat(player, lureFoodToTell.hornShout) + session.onHornCall(player, lureFoodToTell) true } diff --git a/Server/src/main/content/minigame/barbassault/arena/BASession.kt b/Server/src/main/content/minigame/barbassault/arena/BASession.kt index 31d2679a6..54e97ae34 100644 --- a/Server/src/main/content/minigame/barbassault/arena/BASession.kt +++ b/Server/src/main/content/minigame/barbassault/arena/BASession.kt @@ -1,11 +1,9 @@ package content.minigame.barbassault.arena import content.minigame.barbassault.ALL_BARBASS_ITEMS -import content.minigame.barbassault.BA_SESSION_KEY import content.minigame.barbassault.BarbRole import content.minigame.barbassault.BAActivity import content.minigame.barbassault.LureItems -import content.minigame.barbassault.arena.BAHornSystem.BaCall import content.minigame.barbassault.arena.scenery.EggCannon import content.minigame.barbassault.arena.scenery.GloryHorn import content.minigame.barbassault.getBALevels @@ -569,13 +567,12 @@ class BarbassaultSession( val activity: BAActivity ? = null) :LogoutListener, M session.onHornCall(bot, calledValue) val text = when (calledValue) { - is EggColor -> calledValue.baCall().text - is PoisonFood -> calledValue.baCall().text - is LureFood -> calledValue.baCall().text - is AttackerStyle -> calledValue.baCall().text + is EggColor -> calledValue.hornShout + is PoisonFood -> calledValue.hornShout + is LureFood -> calledValue.hornShout + is AttackerStyle -> calledValue.hornShout else -> return } - sendChat(bot, text) } @@ -599,27 +596,31 @@ class BarbassaultSession( val activity: BAActivity ? = null) :LogoutListener, M } val roleCalls: MutableMap> = mutableMapOf() - interface HasUIText { val ui: String } - enum class AttackerStyle(val top: String, val bottom: String) : HasUIText { - STYLE_1("Controlled/","Bronze/Wind"),STYLE_2("Accurate/","Iron/Water"),STYLE_3("Aggressive/","Steel/Earth"),STYLE_4("Defensive/","Mithril/Fire"); + interface HasUIText { val ui: String; val hornShout:String } + enum class AttackerStyle(val top: String, val bottom: String, override val hornShout:String):HasUIText { + STYLE_1("Controlled/","Bronze/Wind", "Attacker: Controlled/Bronze/Wind!"), + STYLE_2("Accurate/","Iron/Water", "Attacker: Accurate/Iron/Water!"), + STYLE_3("Aggressive/","Steel/Earth", "Attacker: Aggressive/Steel/Earth!"), + STYLE_4("Defensive/","Mithril/Fire", "Attacker: Defensive/Mithril/Fire!"); override val ui: String get() = top - fun baCall() = when (this) { STYLE_1 -> BaCall.ATTACKER_STYLE_1; STYLE_2 -> BaCall.ATTACKER_STYLE_2;STYLE_3 -> BaCall.ATTACKER_STYLE_3;STYLE_4 -> BaCall.ATTACKER_STYLE_4 - } } - enum class EggColor(override val ui: String): HasUIText { RED("Red Eggs"), GREEN("Green Eggs"),BLUE("Blue Eggs"); - fun itemId(): Int = when (this) { RED -> Items.RED_EGG_10532; GREEN -> Items.GREEN_EGG_10531; BLUE -> Items.BLUE_EGG_10533 } - fun baCall() = when (this) { RED -> BaCall.COLLECTOR_RED; GREEN -> BaCall.COLLECTOR_GREEN;BLUE -> BaCall.COLLECTOR_BLUE} + enum class EggColor(override val ui: String, val itemId:Int, override val hornShout:String):HasUIText { + RED( "Red Eggs", Items.RED_EGG_10532, "Collector: Red Eggs!"), + GREEN("Green Eggs",Items.GREEN_EGG_10531, "Collector: Green Eggs!"), + BLUE( "Blue Eggs", Items.BLUE_EGG_10533, "Collector: Blue Eggs!") } - enum class PoisonFood(override val ui: String): HasUIText { TOFU("Pois. Tofu"), WORMS("Pois. Worms"), MEAT("Pois. Meat"); - fun itemId(): Int = when (this) { TOFU -> Items.POISONED_TOFU_10539; WORMS -> Items.POISONED_WORMS_10540; MEAT -> Items.POISONED_MEAT_10541 } - fun baCall() = when (this) { TOFU -> BaCall.HEALER_TOFU; WORMS -> BaCall.HEALER_WORMS; MEAT -> BaCall.HEALER_MEAT} + enum class PoisonFood(override val ui: String, val itemId:Int, override val hornShout:String):HasUIText { + TOFU( "Pois. Tofu", Items.POISONED_TOFU_10539, "Healer: Poison tofu!"), + WORMS("Pois. Worms",Items.POISONED_WORMS_10540,"Healer: Poison worms!"), + MEAT( "Pois. Meat", Items.POISONED_MEAT_10541, "Healer: Poison meat!"); } - enum class LureFood(override val ui: String) : HasUIText { TOFU("Tofu"), CRACKERS("Crackers"), WORMS("Worms"); - fun itemId(): Int = when (this) { WORMS -> Items.WORMS_10515; CRACKERS -> Items.CRACKERS_10513; TOFU -> Items.TOFU_10514 } - fun baCall() = when (this) { TOFU -> BaCall.DEFENDER_TOFU; CRACKERS -> BaCall.DEFENDER_CRACKERS;WORMS -> BaCall.DEFENDER_WORMS} + enum class LureFood(override val ui: String, val itemId:Int, override val hornShout:String):HasUIText { + TOFU( "Tofu", Items.WORMS_10515, "Defender: Drop Tofu!"), + CRACKERS("Crackers",Items.CRACKERS_10513,"Defender: Drop Crackers!"), + WORMS( "Worms", Items.TOFU_10514, "Defender: Drop Worms!"); } class AttackerCall( override val required: AttackerStyle ) : RoleCall() diff --git a/Server/src/main/content/minigame/barbassault/arena/scenery/HornOfGlory.kt b/Server/src/main/content/minigame/barbassault/arena/scenery/HornOfGlory.kt index 4109b61fb..44c17c068 100644 --- a/Server/src/main/content/minigame/barbassault/arena/scenery/HornOfGlory.kt +++ b/Server/src/main/content/minigame/barbassault/arena/scenery/HornOfGlory.kt @@ -1,7 +1,7 @@ package content.minigame.barbassault.arena.scenery -import content.minigame.barbassault.arena.BAHornSystem.BaCall import content.minigame.barbassault.arena.BarbassaultSession +import content.minigame.barbassault.arena.BarbassaultSession.HasUIText import content.minigame.barbassault.getBASession import core.api.* import core.game.component.Component @@ -20,20 +20,20 @@ import org.rs09.consts.Scenery @Initializable class HornOfGlory : ComponentPlugin() , InteractionListener { var hornCallLock = false - private val CallMap = mapOf( - GloryHorn.CONTROLED_BRONZE_WIND to (BarbassaultSession.AttackerStyle.STYLE_1 to BaCall.ATTACKER_STYLE_1), - GloryHorn.ACCURATE_IRON_WATER to (BarbassaultSession.AttackerStyle.STYLE_2 to BaCall.ATTACKER_STYLE_2), - GloryHorn.AGGRISSIVE_STEEL_EARTH to (BarbassaultSession.AttackerStyle.STYLE_3 to BaCall.ATTACKER_STYLE_3), - GloryHorn.DEFENSIVE_MITHRIL_FIRE to (BarbassaultSession.AttackerStyle.STYLE_4 to BaCall.ATTACKER_STYLE_4), - GloryHorn.POISON_TOFU to (BarbassaultSession.PoisonFood.TOFU to BaCall.HEALER_TOFU), - GloryHorn.POISON_WORMS to (BarbassaultSession.PoisonFood.WORMS to BaCall.HEALER_WORMS), - GloryHorn.POISON_MEAT to (BarbassaultSession.PoisonFood.MEAT to BaCall.HEALER_MEAT), - GloryHorn.RED_EGG to (BarbassaultSession.EggColor.RED to BaCall.COLLECTOR_RED), - GloryHorn.GREEN_EGG to (BarbassaultSession.EggColor.GREEN to BaCall.COLLECTOR_GREEN), - GloryHorn.BLUE_EGG to (BarbassaultSession.EggColor.BLUE to BaCall.COLLECTOR_BLUE), - GloryHorn.FOOD_TOFU to (BarbassaultSession.LureFood.TOFU to BaCall.DEFENDER_TOFU), - GloryHorn.FOOD_CRACKERS to (BarbassaultSession.LureFood.CRACKERS to BaCall.DEFENDER_CRACKERS), - GloryHorn.FOOD_WORMS to (BarbassaultSession.LureFood.WORMS to BaCall.DEFENDER_WORMS) + val CallMap = mapOf( + GloryHorn.CONTROLED_BRONZE_WIND to BarbassaultSession.AttackerStyle.STYLE_1, + GloryHorn.ACCURATE_IRON_WATER to BarbassaultSession.AttackerStyle.STYLE_2, + GloryHorn.AGGRISSIVE_STEEL_EARTH to BarbassaultSession.AttackerStyle.STYLE_3, + GloryHorn.DEFENSIVE_MITHRIL_FIRE to BarbassaultSession.AttackerStyle.STYLE_4, + GloryHorn.POISON_TOFU to BarbassaultSession.PoisonFood.TOFU , + GloryHorn.POISON_WORMS to BarbassaultSession.PoisonFood.WORMS, + GloryHorn.POISON_MEAT to BarbassaultSession.PoisonFood.MEAT, + GloryHorn.RED_EGG to BarbassaultSession.EggColor.RED, + GloryHorn.GREEN_EGG to BarbassaultSession.EggColor.GREEN, + GloryHorn.BLUE_EGG to BarbassaultSession.EggColor.BLUE, + GloryHorn.FOOD_TOFU to BarbassaultSession.LureFood.TOFU, + GloryHorn.FOOD_CRACKERS to BarbassaultSession.LureFood.CRACKERS, + GloryHorn.FOOD_WORMS to BarbassaultSession.LureFood.WORMS ) override fun newInstance(arg: Any?): Plugin { @@ -43,11 +43,12 @@ class HornOfGlory : ComponentPlugin() , InteractionListener { override fun handle(player: Player?,component: Component?, opcode: Int, button: Int, slot: Int, itemId: Int ): Boolean { player ?: return true - val (gameValue, uiCall) = CallMap[button] ?: return true + val session = getBASession(player) ?: return true + val toCall = CallMap[button] as HasUIText if(!hornCallLock) { - getBASession(player)?.onHornGloryCall(gameValue) - sendChat(player, uiCall.text) + session.onHornGloryCall(toCall) + sendChat(player, toCall.hornShout) player.animate(Animation(5436)) player.lock(6) hornCallLock = true @@ -66,6 +67,7 @@ class HornOfGlory : ComponentPlugin() , InteractionListener { override fun open(player: Player?, component: Component?) { super.open(player, component) player ?: return + getBASession(player)?.updateGloryHornUI() } override fun defineListeners() { on(Scenery.HORN_OF_GLORY_20247, IntType.SCENERY, "Call") { player, _ ->