extends Damageable const StateIdle = preload("res://scripts/comm_station/state/idle.gd") const StateBroken = preload("res://scripts/comm_station/state/broken.gd") var state = null signal comms_established onready var coin_machine = $"%coin_machine" onready var item_dump = $"%item_dump" onready var status_text = $"%status_text" onready var status_light = $"%status_light" func _ready(): state = StateBroken.new() if start_broken else StateIdle.new() state.ctx = self state.enter_from(null) print("comms_station: NULL -> ", state.NAME) func change_state(new_state): print("comms_station: ", state.NAME, " -> ", new_state.NAME) new_state.ctx = self state.exit_to(new_state) new_state.enter_from(state) state = new_state func _on_coin_machine_coin_requirement_met(player): state.on_coin_machine_coin_requirement_met(player) func _on_item_dump_item_dump_completed(): state.on_item_dump_item_dump_completed() func _on_item_dump_item_dumped(): state.on_item_dump_item_dumped() func take_damage(damage : int = 1): .take_damage(damage) state.on_damage_taken() func emit_signal_comms_established(): emit_signal("comms_established")