extends Reference const NAME = "working" var ctx = null func _init(): pass func enter_from(state): for item_slot in ctx.item_slots: item_slot.add_enabled = false item_slot.remove_enabled = false ctx.item_dump.enabled = false ctx.coin_machine.enabled = false ctx.progress_text.text = "Progress: 0%" ctx.status_light.activate() ctx.gen_timer.start() ctx.emit_signal("gen_started") func exit_to(state): pass func update(delta): var time_left : float = ctx.gen_timer.time_left var time_passed : float = ctx.gen_time - time_left var percent_complete : float = (time_passed / ctx.gen_time) * 100.0 ctx.progress_text.text = "Progress: %d%%" % percent_complete func on_coin_machine_coin_requirement_met(player): assert(false, "coin machine should be disabled while working") func on_gen_timer_timeout(): var count : int = 0 for item_slot in ctx.item_slots: if count < ctx.gen_count: item_slot.spawn_item(ctx.gen_item) count += 1 item_slot.add_enabled = true ctx.emit_signal("gen_finished") ctx.change_state(ctx.States[ctx.EState.BLOCKED].new("Finished!")) func on_item_slot_item_changed(item): assert(item != null) func on_item_dump_item_dump_completed(): assert(false, "item dump should be disabled while working") func on_damage_taken(): if ctx.current_hp <= 0: ctx.gen_timer.stop() ctx.change_state(ctx.States[ctx.EState.BROKEN].new())