Rewrote entire banking system (aside from dialogue), converted to listener system
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user