class Rsrb::Item::WeightListener

Attributes

player[R]

Public Class Methods

new(player) click to toggle source
# File lib/rsrb/model/item.rb, line 162
def initialize(player)
  @player = player
end

Public Instance Methods

items_changed(container) click to toggle source
# File lib/rsrb/model/item.rb, line 174
def items_changed(container)
  update_weight
end
slot_changed(container, slot) click to toggle source
# File lib/rsrb/model/item.rb, line 166
def slot_changed(container, slot)
  update_weight
end
slots_changed(container, slots) click to toggle source
# File lib/rsrb/model/item.rb, line 170
def slots_changed(container, slots)
  update_weight
end

Private Instance Methods

calculate_weight() click to toggle source
# File lib/rsrb/model/item.rb, line 185
def calculate_weight
  weight = 0.0
  weight += @player.inventory.items.inject(0) {|sum, item| sum + (item ? item.definition.weight : 0) }
  weight += @player.equipment.items.inject(0) {|sum, item| sum + (item ? item.definition.weight : 0) }
  weight
end
update_weight() click to toggle source
# File lib/rsrb/model/item.rb, line 180
def update_weight
  weight = calculate_weight
  @player.connection.send_data Rsrb::Net::PacketBuilder.new(240).add_short(weight.to_i).to_packet
end