Files
apollo/data/plugins/skill/herblore/herb.rb
T
2014-08-08 13:50:56 +01:00

90 lines
2.4 KiB
Ruby

require 'java'
java_import 'org.apollo.game.action.Action'
# A herb is an ingredient that requires identification before being used.
class Herb < Ingredient
include HerbloreMethod
attr_reader :unidentified, :level, :experience
def initialize(item_id, unidentified, level, experience)
super item_id
@unidentified = unidentified
@level = level
@experience = experience
end
def invoke(player, id, slot)
item = player.inventory.get(slot)
player.start_action(HerbIdentificationAction.new(player, self, slot, item))
end
end
# An action that makes a player identify a herb.
class HerbIdentificationAction < Action
attr_reader :herb, :slot, :item, :pulses
def initialize(player, herb, slot, item)
super(0, true, player)
@herb = herb
@slot = slot
@item = item
@pulses = 0
end
def execute
if @pulses == 0
unless check_skill(mob, @herb.level, "identify this herb")
stop
return
end
end
execute_action
@pulses += 1
end
def execute_action
player = mob
inventory = player.inventory
if inventory.remove_slot(@slot, 1) == 1
identified = @herb.item
inventory.add(identified)
player.skill_set.add_experience(HERBLORE_ID, @herb.experience)
player.send_message("You identify the herb as a #{identified.definition.name}.", true)
end
stop
end
def equals(other)
return (get_class == other.get_class and slot == other.slot and herb == other.herb)
end
end
# Appends a herb to the InventoryItemMessage interception.
def append_herb(item_id, unidentified, level, experience)
herb = Herb.new(item_id, unidentified, level, experience)
append_herblore_item(herb, unidentified)
return herb
end
# Herbs
GUAM_LEAF = append_herb(249, 199, 1, 2.5) # 3, 2.5
MARRENTILL = append_herb(251, 201, 5, 3.8)
TARROMIN = append_herb(253, 203, 11, 5)
HARRALANDER = append_herb(255, 205, 20, 6.3)
RANARR = append_herb(257, 207, 25, 7.5)
TOADFLAX = append_herb(2998, 3049, 30, 8)
IRIT_LEAF = append_herb(259, 209, 40, 8.8)
AVANTOE = append_herb(261, 211, 48, 10)
KWUARM = append_herb(263, 213, 54, 11.3)
SNAPDRAGON = append_herb(3000, 3051, 59, 11.8)
CADANTINE = append_herb(265, 215, 65, 12.5)
LANTADYME = append_herb(2481, 2485, 67, 13.1)
DWARF_WEED = append_herb(267, 217, 70, 13.8)
TORSTOL = append_herb(269, 219, 75, 15)