class_name PhaseManager extends Node @export var prep_phase: PrepPhase @export var npc_spwaner: NPC_Spawner @export var max_round_count:int = 8 @export var mornig_sound: AudioStreamPlayer var round_number: int = 1 var active_customer:NPC signal new_round_start_up(customer_count:int) signal day_changed(count:int) signal shop_opens signal start_round_change() signal start_new_round signal end_game func prepare_round() -> RoundSettings: var settings = RoundSettings.new() # aktuell sehr trausrige game progression if round_number == 1: settings.customer_count = 3 settings.order_size = 3 settings.time_limit = 30.00 elif round_number == 2: settings.customer_count = 4 settings.order_size = randi_range(3,4) settings.time_limit = 30.00 elif round_number == 3: settings.customer_count = 5 settings.order_size = randi_range(4,5) settings.time_limit = 30.00 elif round_number == 4: settings.customer_count = 5 settings.order_size = randi_range(4,6) settings.time_limit = 30.00 else: settings.customer_count = 5 settings.order_size = randi_range(4,6) settings.time_limit = 30.00 return settings # varaibeln - wie viel customer spawnwn sollen func start_round()->void: for i in range(max_round_count): var round_settings:RoundSettings = prepare_round() new_round_start_up.emit(round_settings.customer_count) print("Warm-up startet...") mornig_sound.play() day_changed.emit(round_number) await warm_up() print("Warm-up endet - Shop öffnet ") # shop opens logic shop_opens.emit() await run_rush_phase(round_settings) print("Runde ", round_number, " beendet.") start_round_change.emit() await start_new_round round_number += 1 end_game.emit() ## ausgewählt wenn man das spiel das erste mal startet func start_tutorial()->void: pass func run_prep_phase()->void: pass func warm_up()->void: await get_tree().create_timer(2.0).timeout # je nach dem wie lange ich es mache func run_rush_phase(settings:RoundSettings)->void: print("This round NPC are:"+ str(settings.customer_count)) for i in range(settings.customer_count): print("Spawnd customer") active_customer = npc_spwaner.spawn_npc(settings) active_customer.walk() active_customer.shop_entert_sound.play() await active_customer.npc_left print("NPC left") # hier kann man dann das neue taget machen oder zb eine ander metheode await get_tree().create_timer(1.5).timeout # wenn jetzt ein sknal kommt soll weiter gemacht werden func day_result_phase()->void: pass