mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-11-23 08:07:54 -05:00
58 lines
1.8 KiB
Haxe
58 lines
1.8 KiB
Haxe
package funkin.play.cutscene;
|
|
|
|
import flixel.FlxSprite;
|
|
import flixel.tweens.FlxEase;
|
|
import flixel.tweens.FlxTween;
|
|
import flixel.util.FlxColor;
|
|
import funkin.audio.FunkinSound;
|
|
import flixel.util.FlxTimer;
|
|
|
|
/**
|
|
* Static methods for playing cutscenes in the PlayState.
|
|
* TODO: Un-hardcode this shit!!!!!1!
|
|
*/
|
|
class VanillaCutscenes
|
|
{
|
|
static var blackScreen:FlxSprite;
|
|
|
|
static final TWEEN_DURATION:Float = 2.0;
|
|
|
|
/**
|
|
* Plays the cutscene that appears at the start of Winter Horrorland.
|
|
* TODO: Move this to `winter-horrorland.hxc`
|
|
*/
|
|
public static function playHorrorStartCutscene():Void
|
|
{
|
|
PlayState.instance.isInCutscene = true;
|
|
PlayState.instance.camHUD.visible = false;
|
|
|
|
blackScreen = new FlxSprite(-200, -200).makeGraphic(FlxG.width * 2, FlxG.height * 2, FlxColor.BLACK);
|
|
blackScreen.scrollFactor.set(0, 0);
|
|
blackScreen.zIndex = 1000000;
|
|
PlayState.instance.add(blackScreen);
|
|
|
|
new FlxTimer().start(0.1, function(_) {
|
|
trace('Playing horrorland cutscene...');
|
|
PlayState.instance.remove(blackScreen);
|
|
|
|
// Force set the camera position and zoom.
|
|
PlayState.instance.cameraFollowPoint.setPosition(400, -2050);
|
|
PlayState.instance.resetCamera();
|
|
FlxG.camera.zoom = 2.5;
|
|
|
|
// Play the Sound effect.
|
|
FunkinSound.playOnce(Paths.sound('Lights_Turn_On'), function() {
|
|
// Fade in the HUD.
|
|
trace('SFX done...');
|
|
PlayState.instance.camHUD.visible = true;
|
|
PlayState.instance.camHUD.alpha = 0.0; // Use alpha rather than visible to let us fade it in.
|
|
FlxTween.tween(PlayState.instance.camHUD, {alpha: 1.0}, TWEEN_DURATION, {ease: FlxEase.quadInOut});
|
|
|
|
// Start the countdown.
|
|
trace('Zoom out done...');
|
|
trace('Begin countdown (ends cutscene)');
|
|
PlayState.instance.startCountdown();
|
|
});
|
|
});
|
|
}
|
|
}
|