60 lines
1.7 KiB
Kotlin
60 lines
1.7 KiB
Kotlin
package rs09.game.interaction.`object`
|
|
|
|
import core.game.component.CloseEvent
|
|
import core.game.component.Component
|
|
import core.game.container.access.InterfaceContainer
|
|
import core.game.node.Node
|
|
import core.game.node.entity.player.Player
|
|
import core.game.node.entity.player.link.IronmanMode
|
|
import org.rs09.consts.Components
|
|
import org.rs09.consts.Scenery
|
|
import rs09.game.interaction.InteractionListener
|
|
|
|
private val BANK_DEPOSIT_BOXES = intArrayOf(
|
|
Scenery.BANK_DEPOSIT_BOX_9398,
|
|
Scenery.BANK_DEPOSIT_BOX_20228,
|
|
Scenery.BANK_DEPOSIT_BOX_25937,
|
|
Scenery.BANK_DEPOSIT_BOX_26969,
|
|
Scenery.BANK_DEPOSIT_BOX_34755,
|
|
Scenery.BANK_DEPOSIT_BOX_36788,
|
|
Scenery.BANK_DEPOSIT_BOX_39830
|
|
)
|
|
|
|
/**
|
|
* Allows the user to interact with bank deposit boxes.
|
|
*
|
|
* @author vddCore
|
|
*/
|
|
class BankDepositBoxHandler : InteractionListener {
|
|
|
|
private fun openDepositBox(player: Player, node: Node) : Boolean {
|
|
if (player.ironmanManager.checkRestriction(IronmanMode.ULTIMATE)) {
|
|
return true
|
|
}
|
|
|
|
player.interfaceManager.open(Component(Components.BANK_DEPOSIT_BOX_11)).closeEvent = CloseEvent { p, _ ->
|
|
p.interfaceManager.openDefaultTabs()
|
|
return@CloseEvent true
|
|
}
|
|
|
|
player.interfaceManager.removeTabs(0, 1, 2, 3, 4, 5, 6)
|
|
InterfaceContainer.generateItems(
|
|
player,
|
|
player.inventory.toArray(),
|
|
arrayOf(
|
|
"Examine",
|
|
"Deposit-X",
|
|
"Deposit-All",
|
|
"Deposit-10",
|
|
"Deposit-5",
|
|
"Deposit-1"
|
|
), 11, 15, 5, 7
|
|
)
|
|
|
|
return true
|
|
}
|
|
|
|
override fun defineListeners() {
|
|
on(BANK_DEPOSIT_BOXES, SCENERY, "deposit", handler = ::openDepositBox)
|
|
}
|
|
} |