hero-mark-2/cutscenes/fami_cutscene.gd

59 lines
1.8 KiB
GDScript

extends Node2D
signal cutscene_finished
const DeathParticles = preload("res://objects/enemy/death_particles.tscn")
export var cutscene_skip: float = 78.5
onready var animation_player: AnimationPlayer = $AnimationPlayer
func _init() -> void:
connect("cutscene_finished", self, "_on_cutscene_finished")
Game.can_restart = false
func _on_cutscene_finished() -> void:
Audio.play_sound(Audio.a_fami_transform,Audio.ac_voice)
func _physics_process(delta: float) -> void:
if animation_player.current_animation_position < cutscene_skip:
Game.can_pause = false
func _input(event: InputEvent) -> void:
if event.is_action_pressed("jump") and animation_player.current_animation_position < (cutscene_skip - Options.transition_speed_secs * 2.0):
skip_cutscene()
if event.is_action_pressed("debug_2"):
animation_player.seek(60)
func skip_cutscene() -> void:
Fade.fade_out(Options.transition_speed_secs)
yield(Fade, "fade_finished")
animation_player.seek(cutscene_skip)
$Label.rect_position.y = -99999 # stupid 1.1 stuff
Fade.fade_in(Options.transition_speed_secs)
func kill_cop() -> void:
var splatter := DeathParticles.instance()
splatter.global_position = $Cop.global_position
splatter.emitting = true
Audio.play_sound(Audio.a_copsquash,Audio.ac_land)
Audio.play_sound(Audio.a_copsquash2,Audio.ac_voice)
add_child(splatter)
$Cop.queue_free()
func stop_music():
Audio.ac_music.playing = false
func play_rumble_intro():
Audio.play_music(load("res://audio/music/rumble_revolution_intro.ogg"))
func _notification(what: int) -> void:
match what:
NOTIFICATION_WM_FOCUS_OUT:
animation_player.playback_active = false
$FamiVoice.stream_paused = true
Audio.ac_music.stream_paused = true
NOTIFICATION_WM_FOCUS_IN:
animation_player.playback_active = true
$FamiVoice.stream_paused = false
Audio.ac_music.stream_paused = false