extends "res://maps/map.gd" onready var sg_health: TextureProgress = $"%SGHealthBar" onready var sg_energy: TextureProgress = $"%SGEnergyBar" onready var fami_health: TextureProgress = $"%FamiHealthBar" onready var laser_ok: TextureRect = $"%LaserOk" onready var sg2083: KinematicBody2D = $"2083" onready var famira: Node2D = $Famira func _ready() -> void: sg_energy.max_value = sg2083.max_energy sg2083.state = sg2083.State.INACTIVE famira.animation_player.play("grow", -1.0, 0.0) Audio.play_sound(Audio.a_ominous,Audio.ac_collectible) Audio.play_music(load("res://audio/music/the_dirt_under_the_meadow.ogg")) func _on_2083_health_changed(amount) -> void: sg_health.value = amount - 4 func _on_Famira_health_changed(amount) -> void: fami_health.value = ceil(amount) - 3 func _on_cutscene_finished() -> void: sg2083.visible = true famira.visible = true famira.animation_player.play("grow") $AnimationPlayer.play("drop-stg") Audio.play_music(load("res://audio/music/rumble_revolution.ogg")) yield(get_tree().create_timer(0.5), "timeout") $FamiCutscene/FamiHuman.visible = false func fade() -> void: Fade.fade_out(0.4) yield(Fade, "fade_finished") sg2083.anims.play("force idle") Fade.fade_in(0.4) $"%GUI".visible = true yield(Fade, "fade_finished") sg2083.state = sg2083.State.STAND famira.state_chart.send_event("transformed") func start_fight() -> void: famira.animation_player.state_chart.send_event("transformed") func _on_2083_energy_changed(amount,laser_energy) -> void: sg_energy.value = amount - 3 #Display heads up of laser status if amount >= laser_energy: if !Audio.ac_collectible.is_playing() && $"%LaserOk".visible == false: Audio.play_sound(Audio.a_laser_ready,Audio.ac_collectible) $"%LaserOk".visible = true else: $"%LaserOk".visible = false func _on_Famira_died() -> void: sg2083.state = sg2083.State.INACTIVE var tween = create_tween() tween.set_trans(Tween.TRANS_CUBIC) tween.tween_property($"%Camera", "global_position:x", famira.global_position.x - 128, 0.5) tween.tween_interval(10.0) tween.tween_callback(self, "_on_death_cooldown") func _on_death_cooldown() -> void: Game.can_pause = false if Game.marathon_mode: Game.current_level += 1 if Game.current_level > LevelData.marathon_end: Fade.fade_out(Options.transition_speed_secs) yield(Fade, "fade_finished") SceneManager.change_scene(load("res://menus/marathon_results.tscn").instance()) else: Game.change_map(LevelData.levels[Game.current_level].scene) else: Game.change_map(load("res://cutscenes/ending_future.tscn"))