extends XROrigin3D # Gleiches Enum zur Sicherheit enum AgeState { BABY, CHILD, TEEN } # Skalierungs-Faktoren (XROrigin Scale) # < 1.0 macht dich klein (Welt wirkt riesig) # 1.0 ist Normalgröße var scale_baby = 0.3 # ca. 30% Größe (Baby) var scale_child = 0.65 # ca. 65% Größe (Kind) var scale_teen = 1.0 # 100% Größe (Teenager) func _ready(): # Wir starten initial als Baby apply_scale(scale_baby) # Diese Funktion muss mit dem Signal der Uhr verbunden werden func _on_watch_age_changed(new_age_state): match new_age_state: AgeState.BABY: tween_scale(scale_baby) AgeState.CHILD: tween_scale(scale_child) AgeState.TEEN: tween_scale(scale_teen) func tween_scale(target_scale_value: float): # Wir nutzen Tween für einen sanften Übergang (vermeidet Übelkeit) var tween = create_tween() # Wir skalieren den gesamten XROrigin # Vector3.ONE * target_scale ergibt (x, y, z) mit dem gleichen Wert tween.tween_property(self, "scale", Vector3.ONE * target_scale_value, 0.5).set_trans(Tween.TRANS_SINE) print("Skaliere Spieler zu: ", target_scale_value) func apply_scale(val: float): # Harte Skalierung ohne Animation (für den Start) scale = Vector3.ONE * val