signalis-eb/godot/src/equipment.gd

25 lines
601 B
GDScript

class_name Equipment extends Node
signal unequipped(item: Item)
signal equipped(item: Item)
@export var initial_equipment: Usable
var current_item: Option = Option.none
func _ready() -> void:
current_item = Option.from(initial_equipment)
func unequip():
if current_item.is_some():
var item = current_item.unwrap()
current_item = Option.none
unequipped.emit(item)
func equip(item: Item):
unequip()
if item != null:
current_item = Option.some(item)
equipped.emit(item)
func use():
current_item.inspect(func(x: Variant) -> void: x.use())