module Rsrb::Model::Equipment
Public Class Methods
equip(player, item, slot, name, id)
click to toggle source
# File lib/rsrb/model/equipment.rb, line 56 def self.equip(player, item, slot, name, id) if item != nil && item.id == id equip_slot = self.get_exception(item.id) equip_slot = slot(name) if equip_slot == nil oldEquip = nil stackable = false if player.equipment.is_slot_used(equip_slot) && !stackable oldEquip = player.equipment.items[equip_slot] player.equipment.set equip_slot, nil end player.inventory.set slot, nil player.inventory.add oldEquip unless oldEquip == nil if stackable player.equipment.add item else player.equipment.set equip_slot, item end end end
get_exception(id)
click to toggle source
# File lib/rsrb/model/equipment.rb, line 51 def self.get_exception(id) item = EXCEPTIONS.find {|e| e[:id] == id } item && item[:slot] end
is(item, type)
click to toggle source
# File lib/rsrb/model/equipment.rb, line 45 def self.is(item, type) name = item.definition.name.downcase slot = SLOTS.find {|e| e[:check] == type } slot[:names].find {|s| name.include?(s) } != nil end
load()
click to toggle source
# File lib/rsrb/model/equipment.rb, line 8 def self.load() begin # Load sidebars SIDEBARS.clear sidebar_data = XmlSimple.xml_in("assets/equipment_sidebars.xml", 'KeyToSymbol' => true) sidebar_data[:sidebar].each {|sidebar| SIDEBARS[sidebar["regex"].to_regexp] = { :type => sidebar["type"].to_sym, :id => sidebar["id"].to_i } } # Load slots SLOTS.clear slot_data = XmlSimple.xml_in("assets/equipment_slots.xml", 'KeyToSymbol' => true) slot_data[:slot].each {|slot| SLOTS << {:slot => slot["id"].to_i, :check => slot["check"].to_i, :names => slot[:name]} } # Load exceptions EXCEPTIONS.clear exception_data = XmlSimple.xml_in("assets/equipment_exceptions.xml", 'KeyToSymbol' => true) exception_data[:exception].each {|exception| EXCEPTIONS << {:id => exception["id"].to_i, :slot => exception["slot"].to_i} } rescue Exception => e LOG.error "Failed to load equipment data!" LOG.error e end end
slot(name)
click to toggle source
# File lib/rsrb/model/equipment.rb, line 39 def self.slot(name) name = name.downcase slot = SLOTS.find {|e| e[:names].find {|s| name.include?(s) } } (slot && slot[:slot]) || 3 end