Files
godot-demo-projects/2d/role_playing_game/combat/combat.gd
A Thousand Ships 82913393a8 Improve code style (#1021)
* Remove unnecessary use of `self`
* Connect to signals directly over `connect("name")`
* Use `call_deferred` on callables over `call_deferred("name"))`
* Emit signals directly over `emit_signal("name"...)`
2024-03-25 17:06:52 +01:00

40 lines
856 B
GDScript

extends Node
signal combat_finished(winner, loser)
func initialize(combat_combatants):
for combatant in combat_combatants:
combatant = combatant.instantiate()
if combatant is Combatant:
$Combatants.add_combatant(combatant)
combatant.get_node("Health").dead.connect(_on_combatant_death.bind(combatant))
else:
combatant.queue_free()
$UI.initialize()
$TurnQueue.initialize()
func clear_combat():
for n in $Combatants.get_children():
n.queue_free()
for n in $UI/Combatants.get_children():
n.queue_free()
func finish_combat(winner, loser):
combat_finished.emit(winner, loser)
func _on_combatant_death(combatant):
var winner
if not combatant.name == "Player":
winner = $Combatants/Player
else:
for n in $Combatants.get_children():
if not n.name == "Player":
winner = n
break
finish_combat(winner, combatant)