mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2026-08-23 03:15:10 -06:00
Moved all role machines in to one file
This commit is contained in:
parent
0c25abc88a
commit
2bb115115c
6 changed files with 149 additions and 214 deletions
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
||||
*/
|
||||
|
|
@ -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
|
||||
*/
|
||||
|
|
@ -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) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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) }
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue