Files
apollo/data/plugins/skill-prayer/bury.rb
T
Dane 9da5b69b25 Fix bones id and BuryBoneAction delay.
The indices for bones were being set to "hash[:id], hash[:experience]".
instead of "hash[:id]" due to a syntax overlook.
2014-04-07 14:43:52 -04:00

82 lines
2.8 KiB
Ruby

require 'java'
java_import 'org.apollo.game.action.Action'
java_import 'org.apollo.game.model.Animation'
java_import 'org.apollo.game.model.Skill'
BURY_BONE_ANIMATION = 827
BONES = {}
# Represents a bone with a name, id, and experience.
class Bone
attr_reader :id, :exp
def initialize(id, exp)
@id = id
@exp = exp
end
end
# An action where a bone in a player's inventory is buried.
class BuryBoneAction < Action
def initialize(mob, slot, bone)
super(1, false, mob)
@slot = slot
@bone = bone
mob.play_animation(Animation.new(BURY_BONE_ANIMATION))
mob.send_message('You dig a hole in the ground...')
end
def execute
if mob.inventory.get(@slot).id == @bone.id
mob.send_message('You bury the bones.')
mob.inventory.reset(@slot)
mob.skill_set.add_experience(Skill::PRAYER, @bone.exp)
end
stop
end
end
# Intercepts the first item option event,
on :event, :item_option do |ctx, player, event|
if event.option == 1
bone = BONES[event.id]
unless bone == nil
player.start_action(BuryBoneAction.new(player, event.slot, bone))
ctx.break_handler_chain
end
end
end
# Appends a bone to the array
def append_bone(hash)
raise 'Hash must contain an id and an experience value.' unless hash.has_key?(:id) && hash.has_key?(:experience)
id = hash[:id]
BONES[id] = Bone.new(id, hash[:experience])
end
append_bone :name => :regular_bones, :id => 526, :experience => 5
append_bone :name => :burnt_bones, :id => 528, :experience => 5
append_bone :name => :bat_bones, :id => 530, :experience => 4
append_bone :name => :big_bones, :id => 532, :experience => 45
append_bone :name => :babydragon_bones, :id => 534, :experience => 30
append_bone :name => :dragon_bones, :id => 536, :experience => 72
append_bone :name => :wolf_bones, :id => 2859, :experience => 14
append_bone :name => :shaikahan_bones, :id => 3123, :experience => 25
append_bone :name => :jogre_bones, :id => 3125, :experience => 15
append_bone :name => :burnt_zogre_bones, :id => 3127, :experience => 25
append_bone :name => :monkey_bones, :id => 3179, :experience => 14 # smallish
append_bone :name => :monkey_bones, :id => 3180, :experience => 14 # medium
append_bone :name => :monkey_bones, :id => 3181, :experience => 14 # quite large
append_bone :name => :monkey_bones, :id => 3182, :experience => 14 # quite large
append_bone :name => :monkey_bones, :id => 3183, :experience => 14 # small
append_bone :name => :shaking_bones, :id => 3187, :experience => 14
append_bone :name => :zogre_bones, :id => 4812, :experience => 23
append_bone :name => :fayrg_bones, :id => 4830, :experience => 84
append_bone :name => :raurg_bones, :id => 4832, :experience => 96
append_bone :name => :ourg_bones, :id => 4834, :experience => 140