From 2bb115115c9b01a99f4925945561077c75fb2749 Mon Sep 17 00:00:00 2001 From: Tooze Date: Tue, 27 Jan 2026 09:06:17 -0500 Subject: [PATCH] Moved all role machines in to one file --- .../arena/machines/AttackerMachine.kt | 40 ----- .../arena/machines/CollectorMachine.kt | 23 --- .../arena/machines/DefenderMachine.kt | 53 ------- .../arena/machines/HealerMachine.kt | 65 -------- .../barbassault/arena/machines/ItemMachine.kt | 33 ---- .../barbassault/arena/scenery/ItemMachine.kt | 149 ++++++++++++++++++ 6 files changed, 149 insertions(+), 214 deletions(-) delete mode 100644 Server/src/main/content/minigame/barbassault/arena/machines/AttackerMachine.kt delete mode 100644 Server/src/main/content/minigame/barbassault/arena/machines/CollectorMachine.kt delete mode 100644 Server/src/main/content/minigame/barbassault/arena/machines/DefenderMachine.kt delete mode 100644 Server/src/main/content/minigame/barbassault/arena/machines/HealerMachine.kt delete mode 100644 Server/src/main/content/minigame/barbassault/arena/machines/ItemMachine.kt create mode 100644 Server/src/main/content/minigame/barbassault/arena/scenery/ItemMachine.kt diff --git a/Server/src/main/content/minigame/barbassault/arena/machines/AttackerMachine.kt b/Server/src/main/content/minigame/barbassault/arena/machines/AttackerMachine.kt deleted file mode 100644 index 5e35f79fe..000000000 --- a/Server/src/main/content/minigame/barbassault/arena/machines/AttackerMachine.kt +++ /dev/null @@ -1,40 +0,0 @@ -package content.minigame.barbassault.arena.machines - -import core.api.EquipmentSlot -import core.api.getItemFromEquipment -import core.game.interaction.IntType -import core.game.interaction.InteractionListener -import org.rs09.consts.Items -import org.rs09.consts.Scenery -import core.api.sendMessage - - -class AttackerMachine: InteractionListener { - - val TAKE_ARROWS = intArrayOf(Items.BRONZE_ARROW_882, Items.IRON_ARROW_884,Items.STEEL_ARROW_886,Items.MITHRIL_ARROW_888) - val TAKE_RUNES = intArrayOf(Items.AIR_RUNE_556,Items.WATER_RUNE_555,Items.EARTH_RUNE_557,Items.FIRE_RUNE_554, - Items.MIND_RUNE_558,Items.CHAOS_RUNE_562, Items.DEATH_RUNE_560,Items.BLOOD_RUNE_565) - - //val TAKE_RUNES = intArrayOf(Items.CATALYTIC_RUNE_12851,Items.ELEMENTAL_RUNE_12850) - //suppose to use Catalyic and Elemental runes - - //should probably make sure familiars can't smuggle items out - - override fun defineListeners() { - on(Scenery.ATTACKER_ITEM_MACHINE_20241, IntType.SCENERY, "Take-runes") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10556) { - ItemMachine.handleAddItemMachine(player, node, TAKE_RUNES, 300) - sendMessage(player,"You take a selection of runes from the dispenser.") - } - return@on true - } - on(Scenery.ATTACKER_ITEM_MACHINE_20241, IntType.SCENERY, "Take-arrows") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10556) { - ItemMachine.handleAddItemMachine(player, node, TAKE_ARROWS, 300) - sendMessage(player,"You take a selection of arrows from the dispenser.") - } - return@on true - } - } - -} \ No newline at end of file diff --git a/Server/src/main/content/minigame/barbassault/arena/machines/CollectorMachine.kt b/Server/src/main/content/minigame/barbassault/arena/machines/CollectorMachine.kt deleted file mode 100644 index 853afcb7c..000000000 --- a/Server/src/main/content/minigame/barbassault/arena/machines/CollectorMachine.kt +++ /dev/null @@ -1,23 +0,0 @@ -package content.minigame.barbassault.arena.machines - -import core.api.EquipmentSlot -import core.api.getItemFromEquipment -import core.game.interaction.IntType -import core.game.interaction.InteractionListener -import org.rs09.consts.Scenery - -class CollectorMachine : InteractionListener { - - override fun defineListeners() { - on(Scenery.DEFENDER_ITEM_MACHINE_20242, IntType.SCENERY, "Convert") { player, _ -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10557) { - //Items.RED_EGG_10532 - //Items.BLUE_EGG_10533 - //Items.GREEN_EGG_10531 - //uhhhhhh - //more research is needed. - } - return@on true - } - } -} \ No newline at end of file diff --git a/Server/src/main/content/minigame/barbassault/arena/machines/DefenderMachine.kt b/Server/src/main/content/minigame/barbassault/arena/machines/DefenderMachine.kt deleted file mode 100644 index 2df3515a3..000000000 --- a/Server/src/main/content/minigame/barbassault/arena/machines/DefenderMachine.kt +++ /dev/null @@ -1,53 +0,0 @@ -package content.minigame.barbassault.arena.machines - -import core.api.EquipmentSlot -import core.api.getItemFromEquipment -import core.game.interaction.IntType -import core.game.interaction.InteractionListener -import org.rs09.consts.Items -import org.rs09.consts.Scenery - -class DefenderMachine :InteractionListener { - val TAKE_WORMS = Items.WORMS_10515 - val TAKE_CRACKERS = Items.CRACKERS_10513 - val TAKE_TOFU = Items.TOFU_10514 - val baseItems = intArrayOf(TAKE_WORMS, TAKE_CRACKERS, TAKE_TOFU) - val STOCK_UP = IntArray(11 * baseItems.size) { i -> baseItems[i % baseItems.size] } - - - override fun defineListeners() { - on(Scenery.DEFENDER_ITEM_MACHINE_20242, IntType.SCENERY, "Stock-up") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10558) { - ItemMachine.handleAddItemMachine(player, node, STOCK_UP, 1) - } - return@on true - } - on(Scenery.DEFENDER_ITEM_MACHINE_20242, IntType.SCENERY, "Take-crackers") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10558) { - ItemMachine.handleAddItemMachine(player, node, intArrayOf(TAKE_CRACKERS), 5) - } - return@on true - } - on(Scenery.DEFENDER_ITEM_MACHINE_20242, IntType.SCENERY, "Take-tofu") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10558) { - ItemMachine.handleAddItemMachine(player, node, intArrayOf(TAKE_TOFU), 5) - } - return@on true - } - on(Scenery.DEFENDER_ITEM_MACHINE_20242, IntType.SCENERY, "Take-worms") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10558) { - ItemMachine.handleAddItemMachine(player, node, intArrayOf(TAKE_WORMS), 5) - } - return@on true - } - } -} - -/* - [DEFENDER_ITEM_MACHINE_20242] - Options[ Stock-up, Take-crackers, Take-tofu, Take-worms] - take items gives 5, - stock up alternates crackers tofu worms - CRACKERS_10513, TOFU_10514, WORMS_10515 - - */ \ No newline at end of file diff --git a/Server/src/main/content/minigame/barbassault/arena/machines/HealerMachine.kt b/Server/src/main/content/minigame/barbassault/arena/machines/HealerMachine.kt deleted file mode 100644 index d75d121f6..000000000 --- a/Server/src/main/content/minigame/barbassault/arena/machines/HealerMachine.kt +++ /dev/null @@ -1,65 +0,0 @@ -package content.minigame.barbassault.arena.machines - - -import core.api.EquipmentSlot -import core.api.getItemFromEquipment -import core.game.interaction.IntType -import core.game.interaction.InteractionListener -import org.rs09.consts.Items -import org.rs09.consts.Scenery - -class HealerMachine : InteractionListener { - val ALL_HEALER_VAILS = intArrayOf(Items.HEALING_VIAL_10546,Items.HEALING_VIAL1_10545,Items.HEALING_VIAL2_10544,Items.HEALING_VIAL3_10543,Items.HEALING_VIAL4_10542) - val TAKE_VAIL = Items.HEALING_VIAL4_10542 - val TAKE_WORMS = Items.POISONED_WORMS_10540 - val TAKE_TOFU = Items.POISONED_TOFU_10539 - val TAKE_MEAT = Items.POISONED_MEAT_10541 - - val baseItems = intArrayOf(TAKE_WORMS, TAKE_TOFU, TAKE_MEAT) - val STOCK_UP = IntArray(11 * baseItems.size) { i -> baseItems[i % baseItems.size] } - - - override fun defineListeners() { - on(Scenery.HEALER_ITEM_MACHINE_20243, IntType.SCENERY, "Stock-up") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10559) { - //todo only allowed to have one vial - ItemMachine.handleAddItemMachine(player, node, STOCK_UP, 1) - } - return@on true - } - on(Scenery.HEALER_ITEM_MACHINE_20243, IntType.SCENERY, "Take-vail") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10559) { - //todo only allowed to have one vial - ItemMachine.handleAddItemMachine(player, node, intArrayOf(TAKE_VAIL), 1) - } - return@on true - } - on(Scenery.HEALER_ITEM_MACHINE_20243, IntType.SCENERY, "Take-worms") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10559) { - ItemMachine.handleAddItemMachine(player, node, intArrayOf(TAKE_WORMS), 5) - } - return@on true - } - on(Scenery.HEALER_ITEM_MACHINE_20243, IntType.SCENERY, "Take-tofu") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10559) { - ItemMachine.handleAddItemMachine(player, node, intArrayOf(TAKE_TOFU), 5) - } - return@on true - } - on(Scenery.HEALER_ITEM_MACHINE_20243, IntType.SCENERY, "Take-meat") { player, node -> - if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10559) { - ItemMachine.handleAddItemMachine(player, node, intArrayOf(TAKE_MEAT), 5) - } - return@on true - } - } -} - - /* - * - * [HEALER_ITEM_MACHINE_20243] - Options[ Stock-up, Take-vail, Take-tofu, Take-worms, Tale-meat] - Take item gives 5! - Stock-up gives vial and alternating tofo-worms-meat till full - POISONED_TOFU_10539,POISONED_MEAT_10541,POISONED_WORMS_10540 -*/ \ No newline at end of file diff --git a/Server/src/main/content/minigame/barbassault/arena/machines/ItemMachine.kt b/Server/src/main/content/minigame/barbassault/arena/machines/ItemMachine.kt deleted file mode 100644 index d12bc66da..000000000 --- a/Server/src/main/content/minigame/barbassault/arena/machines/ItemMachine.kt +++ /dev/null @@ -1,33 +0,0 @@ -package content.minigame.barbassault.arena.machines - -import core.api.addItem -import core.game.node.Node -import core.game.node.entity.player.Player -import core.game.system.task.Pulse -import core.game.world.GameWorld -import core.game.world.update.flag.context.Animation - -class ItemMachine { - companion object { - fun handleAddItemMachine(player: Player,node: Node, items: IntArray, amount: Int) - { - player.animate(Animation(5419)) // find right animation - player.lock(5) // - - GameWorld.Pulser.submit(object : Pulse(3, player) { - override fun pulse(): Boolean { - //sendMessage(player,"You fill up your inventory with food from the dispenser") //defender - //sendMessage(player,"You fill up your inventory with poisoned food from the dispenser")// healer - //todo send right message depending on role - addArrayOfItems(player,items,amount) - player.unlock() - return true - } - }) - } - - fun addArrayOfItems(player: Player, ids: IntArray, amount: Int) { - ids.forEach { id -> addItem(player,id,amount) } - } - } -} \ No newline at end of file diff --git a/Server/src/main/content/minigame/barbassault/arena/scenery/ItemMachine.kt b/Server/src/main/content/minigame/barbassault/arena/scenery/ItemMachine.kt new file mode 100644 index 000000000..b64278225 --- /dev/null +++ b/Server/src/main/content/minigame/barbassault/arena/scenery/ItemMachine.kt @@ -0,0 +1,149 @@ +package content.minigame.barbassault.arena.scenery + +import core.api.EquipmentSlot +import core.api.addItem +import core.api.getItemFromEquipment +import core.api.sendMessage +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.node.Node +import core.game.node.entity.player.Player +import core.game.system.task.Pulse +import core.game.world.GameWorld +import core.game.world.update.flag.context.Animation +import org.rs09.consts.Items +import org.rs09.consts.Scenery + +class ItemMachine: InteractionListener { + //Attacker// + //val TAKE_RUNES = intArrayOf(Items.CATALYTIC_RUNE_12851,Items.ELEMENTAL_RUNE_12850) + //suppose to use Catalyic and Elemental runes + private val TAKE_ARROWS = intArrayOf(Items.BRONZE_ARROW_882, Items.IRON_ARROW_884, Items.STEEL_ARROW_886, Items.MITHRIL_ARROW_888) + private val TAKE_RUNES = intArrayOf(Items.AIR_RUNE_556, Items.WATER_RUNE_555, Items.EARTH_RUNE_557, Items.FIRE_RUNE_554, + Items.MIND_RUNE_558, Items.CHAOS_RUNE_562, Items.DEATH_RUNE_560, Items.BLOOD_RUNE_565) + //Defender// + private val TAKE_WORMS = Items.WORMS_10515 + private val TAKE_CRACKERS = Items.CRACKERS_10513 + private val TAKE_TOFU = Items.TOFU_10514 + val baseItems_DEF = intArrayOf(TAKE_WORMS, TAKE_CRACKERS, TAKE_TOFU) + val STOCK_UP_DEF = IntArray(11 * baseItems_DEF.size) { i -> baseItems_DEF[i % baseItems_DEF.size] } + //Healer// + private val ALL_HEALER_VAILS = intArrayOf(Items.HEALING_VIAL_10546,Items.HEALING_VIAL1_10545,Items.HEALING_VIAL2_10544,Items.HEALING_VIAL3_10543,Items.HEALING_VIAL4_10542) + private val TAKE_VAIL = Items.HEALING_VIAL4_10542 + private val TAKE_POIS_WORMS = Items.POISONED_WORMS_10540 + private val TAKE_POIS_TOFU = Items.POISONED_TOFU_10539 + private val TAKE_POIS_MEAT = Items.POISONED_MEAT_10541 + + private val baseItems_HEAL = intArrayOf(TAKE_POIS_WORMS, TAKE_POIS_TOFU, TAKE_POIS_MEAT) + private val STOCK_UP_HEAL = IntArray(11 * baseItems_HEAL.size) { i -> baseItems_HEAL[i % baseItems_HEAL.size] } + + override fun defineListeners() { + //Attacker// + on(Scenery.ATTACKER_ITEM_MACHINE_20241, IntType.SCENERY, "Take-runes") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10556) { + handleAddItemMachine(player, node, TAKE_RUNES, 300) + sendMessage(player,"You take a selection of runes from the dispenser.") + } + return@on true + } + on(Scenery.ATTACKER_ITEM_MACHINE_20241, IntType.SCENERY, "Take-arrows") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10556) { + handleAddItemMachine(player, node, TAKE_ARROWS, 300) + sendMessage(player,"You take a selection of arrows from the dispenser.") + } + return@on true + } + //Defender// + on(Scenery.DEFENDER_ITEM_MACHINE_20242, IntType.SCENERY, "Stock-up") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10558) { + handleAddItemMachine(player, node, STOCK_UP_DEF, 1) + } + return@on true + } + on(Scenery.DEFENDER_ITEM_MACHINE_20242, IntType.SCENERY, "Take-crackers") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10558) { + handleAddItemMachine(player, node, intArrayOf(TAKE_CRACKERS), 5) + } + return@on true + } + on(Scenery.DEFENDER_ITEM_MACHINE_20242, IntType.SCENERY, "Take-tofu") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10558) { + handleAddItemMachine(player, node, intArrayOf(TAKE_TOFU), 5) + } + return@on true + } + on(Scenery.DEFENDER_ITEM_MACHINE_20242, IntType.SCENERY, "Take-worms") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10558) { + handleAddItemMachine(player, node, intArrayOf(TAKE_WORMS), 5) + } + return@on true + } + //Healer// + on(Scenery.HEALER_ITEM_MACHINE_20243, IntType.SCENERY, "Stock-up") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10559) { + //todo only allowed to have one vial + handleAddItemMachine(player, node, STOCK_UP_HEAL, 1) + } + return@on true + } + on(Scenery.HEALER_ITEM_MACHINE_20243, IntType.SCENERY, "Take-vail") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10559) { + //todo only allowed to have one vial + handleAddItemMachine(player, node, intArrayOf(TAKE_VAIL), 1) + } + return@on true + } + on(Scenery.HEALER_ITEM_MACHINE_20243, IntType.SCENERY, "Take-worms") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10559) { + handleAddItemMachine(player, node, intArrayOf(TAKE_POIS_WORMS), 5) + } + return@on true + } + on(Scenery.HEALER_ITEM_MACHINE_20243, IntType.SCENERY, "Take-tofu") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10559) { + handleAddItemMachine(player, node, intArrayOf(TAKE_POIS_TOFU), 5) + } + return@on true + } + on(Scenery.HEALER_ITEM_MACHINE_20243, IntType.SCENERY, "Take-meat") { player, node -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10559) { + handleAddItemMachine(player, node, intArrayOf(TAKE_POIS_MEAT), 5) + } + return@on true + } + //Collector// + on(Scenery.COLLECTOR_CONVERTER_21250, IntType.SCENERY, "Convert") { player, _ -> + if (getItemFromEquipment(player, EquipmentSlot.CAPE)?.id == 10557) { + //Items.RED_EGG_10532 + //Items.BLUE_EGG_10533 + //Items.GREEN_EGG_10531 + //uhhhhhh + //more research is needed. + } + return@on true + } + + } + + private fun handleAddItemMachine(player: Player,node: Node, items: IntArray, amount: Int) + { + player.animate(Animation(5419)) // find right animation + player.lock(5) + + GameWorld.Pulser.submit(object : Pulse(3, player) { + override fun pulse(): Boolean { + //sendMessage(player,"You fill up your inventory with food from the dispenser") //defender + //sendMessage(player,"You fill up your inventory with poisoned food from the dispenser")// healer + //todo send right message depending on role + addArrayOfItems(player,items,amount) + player.unlock() + return true + } + }) + } + + private fun addArrayOfItems(player: Player, ids: IntArray, amount: Int) { + ids.forEach { id -> addItem(player,id,amount) } + } + +} \ No newline at end of file