extends Reference const INTERFACES = [preload("res://scripts/rover_station/state/state_interface.tres")] const NAME = "playing" var ctx: Spatial = null var game: Node var player: Node func _init(p_player: Node): player = p_player func enter_from(state): ctx.get_node("item_dump").enabled = false ctx.get_node("coin_machine").enabled = false ctx.get_node("item_holder").add_enabled = false ctx.get_node("item_holder").remove_enabled = false ctx.get_node("status_light").activate() # START THE GAME game = ctx.get_node("%rover_game").create_instance() game.connect("got_treasure", self, "on_got_treasure") game.connect("game_over", self, "on_game_over") ctx.get_node("game_canvas").visible = true player.start_playing_rover_game() func exit_to(state): # END THE GAME player.stop_playing_rover_game() ctx.get_node("game_canvas").visible = false if game: game.queue_free() game = null func on_coin_machine_coin_requirement_met(player): assert(false, "coin machine should be disabled while playing") func on_item_dump_completed(): assert(false, "item dump should be disabled while playing") func on_damage_taken(): if ctx.hp <= 0: ctx.change_state(ctx.StateBroken.new()) func on_got_treasure(treasure: Resource): ctx.add_treasure(treasure) func on_game_over(): ctx.change_state(ctx.StateIdle.new()) func on_player_sleep(): ctx.treasure.clear() ctx.change_state(ctx.StateIdle.new())