Merge pull request #395 from KirbyKid256/pulls/pose-at-door

All-Stars Pose at Level End
This commit is contained in:
Joe H
2025-09-26 12:48:31 +01:00
committed by GitHub
3 changed files with 17 additions and 0 deletions

View File

@@ -74,6 +74,7 @@ var pipe_move_direction := 1
var stomp_combo := 0 var stomp_combo := 0
var is_invincible := false var is_invincible := false
var is_posing := false
const COMBO_VALS := [100, 200, 400, 500, 800, 1000, 2000, 4000, 5000, 8000, null] const COMBO_VALS := [100, 200, 400, 500, 800, 1000, 2000, 4000, 5000, 8000, null]
@@ -82,6 +83,8 @@ const COMBO_VALS := [100, 200, 400, 500, 800, 1000, 2000, 4000, 5000, 8000, null
@onready var normal_state: Node = $States/Normal @onready var normal_state: Node = $States/Normal
@export var auto_death_pit := true @export var auto_death_pit := true
var can_pose := true
var can_hurt := true var can_hurt := true
var in_water := false var in_water := false

View File

@@ -7,6 +7,7 @@ func enter(_msg := {}) -> void:
player.get_node("CameraCenterJoint/RightWall").set_collision_layer_value(1, false) player.get_node("CameraCenterJoint/RightWall").set_collision_layer_value(1, false)
func physics_update(delta: float) -> void: func physics_update(delta: float) -> void:
if player.is_posing: return
player.input_direction = 1 player.input_direction = 1
player.can_run = false player.can_run = false
player.normal_state.handle_movement(delta) player.normal_state.handle_movement(delta)

View File

@@ -39,6 +39,19 @@ func _process(_delta: float) -> void:
if get_node_or_null("Wall") != null: if get_node_or_null("Wall") != null:
%Wall.visible = show_walls %Wall.visible = show_walls
func _physics_process(_delta: float) -> void:
for i: Player in get_tree().get_nodes_in_group("Players"):
if not i.sprite.sprite_frames.has_animation("PoseDoor"): i.can_pose = false; continue
if i.can_pose and i.global_position >= global_position and i.sprite.sprite_frames.has_animation("PoseDoor"):
i.is_posing = true; i.can_pose = false
i.global_position = global_position
i.play_animation("PoseDoor")
i.sprite.animation_finished.connect(on_pose_finished.bind(i))
i.sprite.animation_looped.connect(on_pose_finished.bind(i))
func on_pose_finished(player: Player) -> void:
player.is_posing = false
func on_music_finished() -> void: func on_music_finished() -> void:
do_sequence() do_sequence()