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_bot: AnimatedSprite3D = $floor_spawn_bot
|
||||||
@onready var floor_spawn_top: AnimatedSprite3D = $floor_spawn_top
|
@onready var floor_spawn_top: AnimatedSprite3D = $floor_spawn_top
|
||||||
|
@onready var vfx_scatter_knock: AnimatedSprite3D = $scatter_knock
|
||||||
|
|
||||||
#func _input(event: InputEvent) -> void:
|
#func _input(event: InputEvent) -> void:
|
||||||
#if event.is_action_pressed("grab_item"):
|
#if event.is_action_pressed("grab_item"):
|
||||||
@@ -369,6 +370,14 @@ func play_floor_spawn():
|
|||||||
floor_spawn_bot.visible = false
|
floor_spawn_bot.visible = false
|
||||||
floor_spawn_top.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():
|
func _init_managers():
|
||||||
movement_manager = load("res://scripts/managers/player_movement_manager.gd").new()
|
movement_manager = load("res://scripts/managers/player_movement_manager.gd").new()
|
||||||
movement_manager.name = "MovementManager"
|
movement_manager.name = "MovementManager"
|
||||||
|
|||||||
@@ -1013,9 +1013,12 @@ func _scatter_player_tiles(player_node: Node):
|
|||||||
SfxManager.rpc("play_rpc", "tile_scatter")
|
SfxManager.rpc("play_rpc", "tile_scatter")
|
||||||
NotificationManager.send_message(player_node, "Not in Safe Zone! Tiles scattered!", NotificationManager.MessageType.WARNING)
|
NotificationManager.send_message(player_node, "Not in Safe Zone! Tiles scattered!", NotificationManager.MessageType.WARNING)
|
||||||
|
|
||||||
# Screen shake
|
# Screen shake and animation
|
||||||
if player_node.has_method("trigger_screen_shake") and can_rpc():
|
if can_rpc():
|
||||||
player_node.rpc("trigger_screen_shake", "heavy")
|
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])
|
print("[StopNGo] Caught outside: Scattered %d tiles from Player %d" % [tiles_to_scatter.size(), peer_id])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user