Files
mist/game/weapons/handler.rb
T

39 lines
1.0 KiB
Ruby

require_relative 'lorentz_field'
require_relative 'occams_razor'
#require_relative 'quantum_bow'
#require_relative 'blade_of_recursion'
class WeaponHandler
def initialize
@weapons = {
lorentz_field: LorentzField.new,
occams_razor: OccamsRazor.new,
#quantum_bow: QuantumBow.new,
#blade_of_recursion: BladeOfRecursion.new
}
end
def update(dt)
@weapons.each_value { |weapon| weapon.update(dt) }
selected_item = $bus.get(:selected_item)
return unless @weapons.key?(selected_item)
weapon = @weapons[selected_item]
if $bus.get(:count, selected_item) > 0
if Gosu.button_down?(Gosu::KB_SPACE)
direction = $bus.get(:player_direction)
weapon.attack(direction)
elsif Gosu.button_down?(Gosu::MS_LEFT)
player_x, player_y = $bus.get(:player_position)
mouse_x, mouse_y = $bus.get(:mouse_position)
direction = Math.atan2(mouse_y - player_y, mouse_x - player_x)
weapon.attack(direction)
end
end
end
def draw
@weapons.each_value(&:draw)
end
end