feat: final cutscene and full game loop
This commit is contained in:
@ -14,6 +14,7 @@ var gravity_modifier = 1
|
||||
@onready var hitting: Timer = $Hitting
|
||||
@onready var hitbox: Area2D = $Hitbox
|
||||
|
||||
@onready var armor: AnimatedSprite2D = $Armor
|
||||
@onready var sword: AnimatedSprite2D = $Sword
|
||||
@onready var damageable: Damageable = $Damageable
|
||||
@onready var shield: AnimatedSprite2D = $Shield
|
||||
@ -33,15 +34,19 @@ func play_anim():
|
||||
|
||||
func play_anim_run():
|
||||
current_animation = "run"
|
||||
current_sprite.play("run")
|
||||
|
||||
func play_anim_idle():
|
||||
current_animation = "idle"
|
||||
current_sprite.play("idle")
|
||||
|
||||
func play_anim_jump():
|
||||
current_animation = "jump"
|
||||
current_animation = "walk"
|
||||
current_sprite.play("walk")
|
||||
|
||||
func play_anim_dance():
|
||||
current_animation = "dance"
|
||||
current_sprite.play("dance")
|
||||
|
||||
func set_in_cutscene():
|
||||
is_in_cutscene = true
|
||||
@ -60,11 +65,11 @@ func _ready() -> void:
|
||||
current_sprite = base
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
play_anim()
|
||||
if is_in_cutscene:
|
||||
velocity.x = move_toward(velocity.x, 0, speed)
|
||||
move_and_slide()
|
||||
return
|
||||
play_anim()
|
||||
|
||||
if is_hitting:
|
||||
current_animation = "hit"
|
||||
@ -77,7 +82,11 @@ func _physics_process(delta: float) -> void:
|
||||
|
||||
var direction := Input.get_axis("move_left", "move_right")
|
||||
|
||||
damageable.set_active(has_shield and direction != 0)
|
||||
if(has_shield and not has_sword and direction == 0):
|
||||
damageable.set_active(false)
|
||||
else:
|
||||
damageable.set_active(true)
|
||||
|
||||
if direction > 0 and is_on_floor():
|
||||
look_right()
|
||||
if direction < 0 and is_on_floor():
|
||||
@ -107,13 +116,12 @@ func _physics_process(delta: float) -> void:
|
||||
func hit():
|
||||
is_hitting = true
|
||||
hitting.start()
|
||||
hitbox.monitorable = true
|
||||
hitbox.monitoring = true
|
||||
|
||||
func _on_hitting_timeout() -> void:
|
||||
is_hitting = false
|
||||
hitbox.monitorable = false
|
||||
hitbox.monitoring = false
|
||||
damageable.set_active(true)
|
||||
|
||||
func _on_dialogue_manager_dialogue_ended() -> void:
|
||||
set_in_play()
|
||||
@ -139,3 +147,17 @@ func _on_red_hood_sword_dialogue_dialogue_ended() -> void:
|
||||
current_sprite.play("idle")
|
||||
current_sprite.visible = true
|
||||
has_sword = true
|
||||
|
||||
func _on_put_on_armor() -> void:
|
||||
current_sprite.visible = false
|
||||
current_sprite = armor
|
||||
current_sprite.play("power_up")
|
||||
current_sprite.visible = true
|
||||
has_armor = true
|
||||
|
||||
func _on_final_armor_dialogue_ended() -> void:
|
||||
set_in_play()
|
||||
current_sprite.play("idle")
|
||||
|
||||
func _on_trigger_final_dialogue_body_entered(body: Node2D) -> void:
|
||||
set_in_cutscene()
|
||||
|
Reference in New Issue
Block a user