feat: Implement new Stop 'n' Go game mode with dedicated manager, player logic, and control scripts.

This commit is contained in:
2026-03-23 20:42:55 +08:00
parent 75a636c97c
commit 878e331b6e
6 changed files with 225 additions and 87 deletions
+5 -5
View File
@@ -2172,7 +2172,7 @@ func sync_snatch_tekton(carrier_path: NodePath, tekton_path: NodePath):
self.is_carrying_tekton = true
self.carried_tekton = tekton
tekton.set_carried(true, self)
tekton.set_carried(true, self )
# Reset my carry timer (3s rule starts fresh)
tekton_carry_timer = 0.0
@@ -2399,10 +2399,10 @@ func sync_bump(target_pos: Vector2i, is_soft: bool = false):
var tween = create_tween()
# Ensure the character starts at logical pos if they were drifting
global_position = original_pos
global_position = original_pos
tween.tween_property(self, "global_position", mid_pos, duration).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT)
tween.tween_property(self, "global_position", original_pos, duration).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_IN)
tween.tween_property(self , "global_position", mid_pos, duration).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT)
tween.tween_property(self , "global_position", original_pos, duration).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_IN)
func knock_tekton():
if not is_multiplayer_authority() or is_frozen or is_stop_frozen or is_invisible:
@@ -2472,6 +2472,6 @@ func _find_nearby_carrier() -> Node3D:
if p.is_carrying_tekton:
# Check adjacency or same tile
var dist = Vector2(p.current_position.x, p.current_position.y).distance_to(Vector2(current_position.x, current_position.y))
if dist <= 1.5:
if dist <= 1.5:
return p
return null