From fc364451a7bd28167577eae6b668c61dc42c2550 Mon Sep 17 00:00:00 2001 From: Amitai Mazliah Date: Tue, 9 Jan 2024 23:02:02 +0200 Subject: [PATCH] status in turn change --- scripts/agents/agent_2d.gd | 5 +++++ scripts/agents/statuses/poison_status.gd | 10 +--------- scripts/turn_queue.gd | 4 ++-- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/scripts/agents/agent_2d.gd b/scripts/agents/agent_2d.gd index 45aada7..b803575 100644 --- a/scripts/agents/agent_2d.gd +++ b/scripts/agents/agent_2d.gd @@ -77,6 +77,11 @@ func end_turn() -> void: await execute_all_effect_for_time(self, Effect.EffectTime.OnTurnEnd) turn_ended.emit() +func turn_changed() -> void: + for status: AgentStatus in statuses: + if status.has_method('on_turn_changed'): + status.on_turn_changed() + func take_damage(damage: int) -> void: current_health -= damage print(name, " took ", damage, " and left with current_health ", current_health) diff --git a/scripts/agents/statuses/poison_status.gd b/scripts/agents/statuses/poison_status.gd index 9546c59..f1ffe22 100644 --- a/scripts/agents/statuses/poison_status.gd +++ b/scripts/agents/statuses/poison_status.gd @@ -3,14 +3,6 @@ extends AgentStatus class_name PoisonStatus @export var damage_per_turn: int -@export var turn_changed_event_channel: VoidEventChannel -func on_status_given(agent: Agent2D): - super.on_status_given(agent) - turn_changed_event_channel.event_raised.connect(_on_turn_changed) - -func on_status_ended(agent: Agent2D): - turn_changed_event_channel.event_raised.disconnect(_on_turn_changed) - -func _on_turn_changed(): +func on_turn_changed(): _agent.take_damage(damage_per_turn) diff --git a/scripts/turn_queue.gd b/scripts/turn_queue.gd index 3dbc70e..9219309 100644 --- a/scripts/turn_queue.gd +++ b/scripts/turn_queue.gd @@ -4,7 +4,6 @@ class_name TurnQueue @export var victory_event_channel: VoidEventChannel @export var defeat_event_channel: VoidEventChannel -@export var turn_changed_event_channel: VoidEventChannel @export var turn_time_in_secs : float = 10 @export var turn_label : Label @export var turn_countdown_progress_bar: ProgressBar @@ -65,7 +64,6 @@ func _start_turn(): turn_label.modulate.a = 1 turn_label.text = _active_agent.name + "'s turns" get_tree().create_timer(1).timeout.connect(_fade_label) - turn_changed_event_channel.raise_event() _active_agent.start_turn() timer.start() _countdown_timers = [ @@ -79,6 +77,8 @@ func _start_turn(): func _end_turn() -> void: print("Ending turn of ", _active_agent_index, " ", _active_agent) await _active_agent.end_turn() + for agent: Agent2D in agents: + agent.turn_changed() await _kill_dead_agents() _start_turn()