stress cutscene progress

This commit is contained in:
Yoshman29
2023-02-02 23:06:38 +01:00
parent 858aa39647
commit 25afb382db
19 changed files with 230842 additions and 50 deletions
+109
View File
@@ -0,0 +1,109 @@
import lime.app.Application;
import funkin.system.FunkinSprite;
import funkin.options.Options;
var tankman, pico:FunkinSprite;
var gf:Character;
var stressCutscene:FlxSound;
var step:Int = 0;
function create() {
FlxG.camera.zoom = 1;
game.camHUD.visible = false;
game.persistentUpdate = true;
game.gf.visible = false;
gf = new Character(game.gf.x, game.gf.y, "gf-tankmen");
gf.scrollFactor.set(0.95, 0.95);
gf.playAnim("dance-cutscene");
game.insert(game.members.indexOf(game.gf), gf);
stressCutscene = FlxG.sound.load(Paths.sound(Options.naughtyness ? 'cutscenes/tank/stress' : 'cutscenes/tank/stress-censor'));
stressCutscene.play();
stressCutscene.onComplete = function() {
for(spr in [gf, tankman, pico]) {
spr.destroy();
game.remove(spr);
}
game.camHUD.visible = game.dad.visible = game.gf.visible = true;
close();
};
tankman = new FunkinSprite(game.dad.x + game.dad.globalOffset.x + 520, game.dad.y + game.dad.globalOffset.y + 225);
tankman.antialiasing = true;
tankman.loadSprite(Paths.image('game/cutscenes/tank/stress-tankman'));
tankman.animateAtlas.anim.addBySymbol('p1', 'TANK TALK 3 P1 UNCUT', 0, false);
tankman.animateAtlas.anim.addBySymbol('p2', 'TANK TALK 3 P2 UNCUT', 0, false);
tankman.playAnim('p1');
pico = new FunkinSprite(game.gf.x + game.gf.globalOffset.x + 150, game.gf.y + game.gf.globalOffset.y + 395);
pico.antialiasing = true;
pico.loadSprite(Paths.image('game/cutscenes/tank/stress-pico'));
pico.animateAtlas.anim.addBySymbol('die', 'GF Time to Die sequence', 24, false);
pico.animateAtlas.anim.addBySymbol('saves', 'Pico Saves them sequence', 24, false);
pico.animateAtlas.anim.addBySymbol('idle', 'Pico Dual Wield on Speaker idle', 24, true);
pico.scrollFactor.set(0.95, 0.95);
pico.playAnim("idle");
pico.visible = false;
game.insert(game.members.indexOf(game.gf), pico);
game.insert(game.members.indexOf(game.dad), tankman);
game.dad.visible = false;
focusOn(game.dad);
}
function update(elapsed) {
if (FlxG.keys.justPressed.F5)
FlxG.resetState();
switch(step) {
case 0:
lipSync(tankman, 0, 16750);
if (stressCutscene.time > 15100) {
step = 1;
focusOn(game.gf);
pico.visible = true;
pico.playAnim('die', true);
// removes old gf to free ram
game.remove(gf);
gf.destroy();
FlxTween.tween(FlxG.camera, {zoom: FlxG.camera.zoom * 1.3}, 2.1, {ease: FlxEase.quadInOut});
}
case 1:
lipSync(tankman, 0, 16750);
if (stressCutscene.time > 17300) {
FlxG.camera.zoom = 0.8;
step = 2;
pico.playAnim('saves', true);
}
case 2:
if (stressCutscene.time > 19600) {
tankman.playAnim('p2', true);
step = 3;
}
case 3:
lipSync(tankman, 19500, stressCutscene.length);
if (stressCutscene.time > 20300) {
game.camFollow.y += 180;
game.camFollow.x -= 80;
step = 4;
}
case 4:
lipSync(tankman, 19500, stressCutscene.length);
if (pico.isAnimFinished() && pico.getAnimName() == "saves")
pico.playAnim("idle");
}
}
function lipSync(char:FunkinSprite, begin:Float, end:Float) {
char.animateAtlas.anim.curFrame = Std.int(FlxMath.remapToRange(stressCutscene.time, begin, end, 0, char.animateAtlas.anim.length-1));
}
function focusOn(char) {
var camPos = char.getCameraPosition();
game.camFollow.setPosition(camPos.x, camPos.y);
camPos.put();
}
+13 -18
View File
@@ -1,30 +1,25 @@
import openfl.utils.Assets;
function onNoteCreation(event) {
if (event.noteType != null || event.note.noteTypeID > 0) {
// event.note.visible = false;
event.note.strumLineID = 2;
}
function onPostGenerateStrums() {
strumLine = new StrumLine([gf], -1, true, controls);
players.push(strumLine);
strumLine.generateStrums();
}
function onNoteCreation(event)
if (event.noteType != null || event.note.noteTypeID > 0)
event.note.strumLineID = 2;
var strumLine:StrumLine;
function postCreate() {
strumLine = new StrumLine([gf], 0.5, true, controls);
players.push(strumLine);
strumLine.generateStrums();
generateNotes(CoolUtil.parseJson(Paths.chart('stress', 'picospeaker')).song);
for(s in cpuStrums)
s.x -= FlxG.width * 0.125;
for(s in playerStrums)
s.x += FlxG.width * 0.125;
}
function update(elapsed) {
camHUD.zoom /= 0.75;
}
function postUpdate(elapsed) {
camHUD.zoom *= 0.75;
function onStrumCreation(event) {
if (event.player == 3) {
event.cancelAnimation();
event.strum.alpha = 0;
event.strum.visible = false;
}
}