mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 16:49:11 +00:00
654a1a6dfd
Rebased several other pieces of code
46 lines
1.2 KiB
Ruby
46 lines
1.2 KiB
Ruby
require 'java'
|
|
|
|
java_import 'org.apollo.game.action.DistancedAction'
|
|
java_import 'org.apollo.game.model.inter.bank.BankUtils'
|
|
|
|
BANK_BOOTH_ID = 2213
|
|
BANK_BOOTH_SIZE = 1
|
|
|
|
# The npcs with a 'bank' menu action.
|
|
BANKER_NPCS = [ 166, 494, 495, 496, 497, 498, 499, 1036, 1360, 1702, 2163, 2164, 2354, 2355, 2568, 2569, 2570 ]
|
|
|
|
# A distanced action to open a new bank.
|
|
class BankAction < DistancedAction
|
|
attr_reader :position
|
|
|
|
def initialize(mob, position)
|
|
super(0, true, mob, position, BANK_BOOTH_SIZE)
|
|
@position = position
|
|
end
|
|
|
|
def executeAction
|
|
mob.turn_to(@position)
|
|
BankUtils.open_bank(mob)
|
|
stop
|
|
end
|
|
|
|
def equals(other)
|
|
return (get_class == other.get_class and @position == other.position)
|
|
end
|
|
end
|
|
|
|
# Intercepts the object action message
|
|
on :message, :second_object_action do |player, message|
|
|
if message.id == BANK_BOOTH_ID
|
|
player.start_action(BankAction.new(player, message.position))
|
|
message.terminate
|
|
end
|
|
end
|
|
|
|
on :message, :second_npc_action do |player, message|
|
|
npc = $world.npc_repository.get(message.index)
|
|
if BANKER_NPCS.include?(npc.id)
|
|
player.start_action(BankAction.new(player, npc.position))
|
|
message.terminate
|
|
end
|
|
end |