35 lines
700 B
Ruby
35 lines
700 B
Ruby
require_relative "inventory"
|
|
require_relative "health"
|
|
require_relative "logs"
|
|
|
|
class HUDLayer
|
|
def initialize
|
|
@hud_bg = Gosu::Image.new("assets/images/hud.png", retro: true)
|
|
@hud_fg = Gosu::Image.new("assets/images/hud_fg.png", retro: true)
|
|
@inventory = Inventory.new
|
|
@health = HealthBar.new(100)
|
|
@logs = GameLogger.new
|
|
|
|
$bus.on(:enemy_attack) do |damage|
|
|
@health.take_damage(damage)
|
|
end
|
|
end
|
|
|
|
def update(dt)
|
|
@logs.update(dt)
|
|
end
|
|
|
|
def draw
|
|
@hud_bg.draw(0, 0, Float::INFINITY)
|
|
|
|
@inventory.draw
|
|
@health.draw
|
|
@logs.draw
|
|
|
|
@hud_fg.draw(0, 0, Float::INFINITY)
|
|
end
|
|
|
|
def button_down(id, pos)
|
|
@inventory.button_down(id, pos)
|
|
end
|
|
end |