mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-06 07:50:22 +01:00
This makes demos render correctly on hiDPI displays, while also demonstrating how to handle multiple resolutions. The 3D in 2D demo now uses "3D No-Effects" for the 3D viewport, which is faster to render. Thanks to this, 4× MSAA is now enabled for a better result. The background loading demo now uses mipmaps for better-looking images. The material testers demo now samples mouse input in a resolution-independent manner when panning. Default clear colors were also changed in some projects for visual consistency with the project's theme.
37 lines
938 B
GDScript
37 lines
938 B
GDScript
extends Node
|
|
|
|
signal combat_finished(winner, loser)
|
|
const Combatant = preload("res://turn_combat/combatants/Combatant.gd")
|
|
|
|
func initialize(combat_combatants):
|
|
for combatant in combat_combatants:
|
|
combatant = combatant.instance()
|
|
if combatant is Combatant:
|
|
$Combatants.add_combatant(combatant)
|
|
combatant.get_node("Health").connect("dead", self, "_on_combatant_death", [combatant])
|
|
else:
|
|
combatant.queue_free()
|
|
$UI.initialize()
|
|
$TurnQueue.initialize()
|
|
|
|
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)
|
|
|
|
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):
|
|
emit_signal("combat_finished", winner, loser)
|
|
|