Moved all role machines in to one file

This commit is contained in:
Tooze 2026-01-27 09:06:17 -05:00
parent 0c25abc88a
commit 2bb115115c
6 changed files with 149 additions and 214 deletions

View file

@ -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
}
}
}

View file

@ -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
}
}
}

View file

@ -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
*/

View file

@ -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
*/

View file

@ -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) }
}
}
}

View file

@ -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) }
}
}