feat: implement StopNGoManager for phase-based gameplay and update player logic for mission tracking and movement penalties
This commit is contained in:
@@ -352,6 +352,7 @@ func _ready():
|
||||
|
||||
@onready var floor_spawn_bot: AnimatedSprite3D = $floor_spawn_bot
|
||||
@onready var floor_spawn_top: AnimatedSprite3D = $floor_spawn_top
|
||||
@onready var vfx_scatter_knock: AnimatedSprite3D = $scatter_knock
|
||||
|
||||
#func _input(event: InputEvent) -> void:
|
||||
#if event.is_action_pressed("grab_item"):
|
||||
@@ -369,6 +370,14 @@ func play_floor_spawn():
|
||||
floor_spawn_bot.visible = false
|
||||
floor_spawn_top.visible = false
|
||||
|
||||
@rpc("any_peer", "call_local")
|
||||
func play_scatter_knock():
|
||||
if vfx_scatter_knock:
|
||||
vfx_scatter_knock.visible = true
|
||||
vfx_scatter_knock.play("scatter_knock")
|
||||
await vfx_scatter_knock.animation_finished
|
||||
vfx_scatter_knock.visible = false
|
||||
|
||||
func _init_managers():
|
||||
movement_manager = load("res://scripts/managers/player_movement_manager.gd").new()
|
||||
movement_manager.name = "MovementManager"
|
||||
|
||||
@@ -1013,9 +1013,12 @@ func _scatter_player_tiles(player_node: Node):
|
||||
SfxManager.rpc("play_rpc", "tile_scatter")
|
||||
NotificationManager.send_message(player_node, "Not in Safe Zone! Tiles scattered!", NotificationManager.MessageType.WARNING)
|
||||
|
||||
# Screen shake
|
||||
if player_node.has_method("trigger_screen_shake") and can_rpc():
|
||||
player_node.rpc("trigger_screen_shake", "heavy")
|
||||
# Screen shake and animation
|
||||
if can_rpc():
|
||||
if player_node.has_method("trigger_screen_shake"):
|
||||
player_node.rpc("trigger_screen_shake", "heavy")
|
||||
if player_node.has_method("play_scatter_knock"):
|
||||
player_node.rpc("play_scatter_knock")
|
||||
|
||||
print("[StopNGo] Caught outside: Scattered %d tiles from Player %d" % [tiles_to_scatter.size(), peer_id])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user