mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2024-11-05 06:14:36 +00:00
Merge branch 'master' of github.com:ninjamuffin99/Funkin-secret into nitpix
This commit is contained in:
commit
e6e3779d1c
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
<classpath name="source" />
|
<classpath name="source" />
|
||||||
|
|
||||||
<assets path='assets/preload/music' include="*mp4" embed='false' />
|
<!-- <assets path='assets/preload/music' include="*mp4" embed='false' /> -->
|
||||||
|
|
||||||
<assets path="assets/preload" rename="assets" exclude="*.ogg" if="web"/>
|
<assets path="assets/preload" rename="assets" exclude="*.ogg" if="web"/>
|
||||||
<assets path="assets/preload" rename="assets" exclude="*.mp3" unless="web"/>
|
<assets path="assets/preload" rename="assets" exclude="*.mp3" unless="web"/>
|
||||||
|
|
62
source/FlxVideo.hx
Normal file
62
source/FlxVideo.hx
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
package;
|
||||||
|
|
||||||
|
import flixel.FlxBasic;
|
||||||
|
import flixel.FlxG;
|
||||||
|
import flixel.FlxSprite;
|
||||||
|
import openfl.events.NetStatusEvent;
|
||||||
|
import openfl.media.Video;
|
||||||
|
import openfl.net.NetConnection;
|
||||||
|
import openfl.net.NetStream;
|
||||||
|
|
||||||
|
class FlxVideo extends FlxBasic
|
||||||
|
{
|
||||||
|
var video:Video;
|
||||||
|
var netStream:NetStream;
|
||||||
|
|
||||||
|
public var finishCallback:Void->Void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Doesn't actually interact with Flixel shit, only just a pleasant to use class
|
||||||
|
*/
|
||||||
|
public function new(vidSrc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
|
||||||
|
video = new Video();
|
||||||
|
video.x = 0;
|
||||||
|
video.y = 0;
|
||||||
|
|
||||||
|
FlxG.addChildBelowMouse(video);
|
||||||
|
|
||||||
|
var netConnection = new NetConnection();
|
||||||
|
netConnection.connect(null);
|
||||||
|
|
||||||
|
netStream = new NetStream(netConnection);
|
||||||
|
netStream.client = {onMetaData: client_onMetaData};
|
||||||
|
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netConnection_onNetStatus);
|
||||||
|
netStream.play(Paths.file(vidSrc));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function finishVideo():Void
|
||||||
|
{
|
||||||
|
netStream.dispose();
|
||||||
|
FlxG.removeChild(video);
|
||||||
|
|
||||||
|
if (finishCallback != null)
|
||||||
|
finishCallback();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function client_onMetaData(metaData:Dynamic)
|
||||||
|
{
|
||||||
|
video.attachNetStream(netStream);
|
||||||
|
|
||||||
|
video.width = FlxG.width;
|
||||||
|
video.height = FlxG.height;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function netConnection_onNetStatus(event:NetStatusEvent):Void
|
||||||
|
{
|
||||||
|
if (event.info.code == 'NetStream.Play.Complete')
|
||||||
|
finishVideo();
|
||||||
|
}
|
||||||
|
}
|
|
@ -105,10 +105,13 @@ class GameOverSubstate extends MusicBeatSubstate
|
||||||
if (bf.animation.curAnim.name == 'firstDeath' && bf.animation.curAnim.finished && !playingDeathSound)
|
if (bf.animation.curAnim.name == 'firstDeath' && bf.animation.curAnim.finished && !playingDeathSound)
|
||||||
{
|
{
|
||||||
playingDeathSound = true;
|
playingDeathSound = true;
|
||||||
|
|
||||||
|
bf.startedDeath = true;
|
||||||
|
coolStartDeath(0.2);
|
||||||
|
|
||||||
FlxG.sound.play(Paths.sound('jeffGameover/jeffGameover-' + randomGameover), 1, false, null, true, function()
|
FlxG.sound.play(Paths.sound('jeffGameover/jeffGameover-' + randomGameover), 1, false, null, true, function()
|
||||||
{
|
{
|
||||||
bf.startedDeath = true;
|
FlxG.sound.music.fadeIn(4, 0.2, 1);
|
||||||
coolStartDeath();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -125,9 +128,9 @@ class GameOverSubstate extends MusicBeatSubstate
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function coolStartDeath():Void
|
private function coolStartDeath(?vol:Float = 1):Void
|
||||||
{
|
{
|
||||||
FlxG.sound.playMusic(Paths.music('gameOver' + stageSuffix));
|
FlxG.sound.playMusic(Paths.music('gameOver' + stageSuffix), vol);
|
||||||
}
|
}
|
||||||
|
|
||||||
override function beatHit()
|
override function beatHit()
|
||||||
|
|
|
@ -25,6 +25,7 @@ class LoadingState extends MusicBeatState
|
||||||
var danceLeft = false;
|
var danceLeft = false;
|
||||||
|
|
||||||
var loadBar:FlxSprite;
|
var loadBar:FlxSprite;
|
||||||
|
var funkay:FlxSprite;
|
||||||
|
|
||||||
function new(target:FlxState, stopMusic:Bool)
|
function new(target:FlxState, stopMusic:Bool)
|
||||||
{
|
{
|
||||||
|
@ -38,7 +39,7 @@ class LoadingState extends MusicBeatState
|
||||||
var bg:FlxSprite = new FlxSprite().makeGraphic(FlxG.width, FlxG.height, 0xFFcaff4d);
|
var bg:FlxSprite = new FlxSprite().makeGraphic(FlxG.width, FlxG.height, 0xFFcaff4d);
|
||||||
add(bg);
|
add(bg);
|
||||||
|
|
||||||
var funkay:FlxSprite = new FlxSprite();
|
funkay = new FlxSprite();
|
||||||
funkay.loadGraphic(Paths.image('funkay'));
|
funkay.loadGraphic(Paths.image('funkay'));
|
||||||
funkay.setGraphicSize(0, FlxG.height);
|
funkay.setGraphicSize(0, FlxG.height);
|
||||||
funkay.updateHitbox();
|
funkay.updateHitbox();
|
||||||
|
@ -124,6 +125,19 @@ class LoadingState extends MusicBeatState
|
||||||
{
|
{
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
|
|
||||||
|
funkay.setGraphicSize(Std.int(FlxMath.lerp(FlxG.width * 0.88, funkay.width, 0.9)));
|
||||||
|
funkay.updateHitbox();
|
||||||
|
// funkay.updateHitbox();
|
||||||
|
|
||||||
|
if (controls.ACCEPT)
|
||||||
|
{
|
||||||
|
funkay.setGraphicSize(Std.int(funkay.width + 60));
|
||||||
|
funkay.updateHitbox();
|
||||||
|
// funkay.setGraphicSize(0, Std.int(funkay.height + 50));
|
||||||
|
// funkay.updateHitbox();
|
||||||
|
// funkay.screenCenter();
|
||||||
|
}
|
||||||
|
|
||||||
if (callbacks != null)
|
if (callbacks != null)
|
||||||
{
|
{
|
||||||
targetShit = FlxMath.remapToRange(callbacks.numRemaining / callbacks.length, 1, 0, 0, 1);
|
targetShit = FlxMath.remapToRange(callbacks.numRemaining / callbacks.length, 1, 0, 0, 1);
|
||||||
|
|
|
@ -23,6 +23,7 @@ import flixel.graphics.atlas.FlxAtlas;
|
||||||
import flixel.graphics.frames.FlxAtlasFrames;
|
import flixel.graphics.frames.FlxAtlasFrames;
|
||||||
import flixel.group.FlxGroup.FlxTypedGroup;
|
import flixel.group.FlxGroup.FlxTypedGroup;
|
||||||
import flixel.group.FlxGroup;
|
import flixel.group.FlxGroup;
|
||||||
|
import flixel.math.FlxAngle;
|
||||||
import flixel.math.FlxMath;
|
import flixel.math.FlxMath;
|
||||||
import flixel.math.FlxPoint;
|
import flixel.math.FlxPoint;
|
||||||
import flixel.math.FlxRect;
|
import flixel.math.FlxRect;
|
||||||
|
@ -43,6 +44,8 @@ import openfl.display.BitmapData;
|
||||||
import openfl.display.BlendMode;
|
import openfl.display.BlendMode;
|
||||||
import openfl.display.StageQuality;
|
import openfl.display.StageQuality;
|
||||||
import openfl.filters.ShaderFilter;
|
import openfl.filters.ShaderFilter;
|
||||||
|
import shaderslmfao.BuildingShaders.BuildingShader;
|
||||||
|
import shaderslmfao.BuildingShaders;
|
||||||
import shaderslmfao.ColorSwap;
|
import shaderslmfao.ColorSwap;
|
||||||
import ui.PreferencesMenu;
|
import ui.PreferencesMenu;
|
||||||
|
|
||||||
|
@ -131,6 +134,7 @@ class PlayState extends MusicBeatState
|
||||||
var gfCutsceneLayer:FlxGroup;
|
var gfCutsceneLayer:FlxGroup;
|
||||||
var bfTankCutsceneLayer:FlxGroup;
|
var bfTankCutsceneLayer:FlxGroup;
|
||||||
var tankWatchtower:BGSprite;
|
var tankWatchtower:BGSprite;
|
||||||
|
var tankGround:BGSprite;
|
||||||
|
|
||||||
var talking:Bool = true;
|
var talking:Bool = true;
|
||||||
var songScore:Int = 0;
|
var songScore:Int = 0;
|
||||||
|
@ -157,6 +161,7 @@ class PlayState extends MusicBeatState
|
||||||
#end
|
#end
|
||||||
|
|
||||||
var camPos:FlxPoint;
|
var camPos:FlxPoint;
|
||||||
|
var lightFadeShader:BuildingShaders;
|
||||||
|
|
||||||
override public function create()
|
override public function create()
|
||||||
{
|
{
|
||||||
|
@ -254,7 +259,9 @@ class PlayState extends MusicBeatState
|
||||||
city.updateHitbox();
|
city.updateHitbox();
|
||||||
add(city);
|
add(city);
|
||||||
|
|
||||||
|
lightFadeShader = new BuildingShaders();
|
||||||
phillyCityLights = new FlxTypedGroup<FlxSprite>();
|
phillyCityLights = new FlxTypedGroup<FlxSprite>();
|
||||||
|
|
||||||
add(phillyCityLights);
|
add(phillyCityLights);
|
||||||
|
|
||||||
for (i in 0...5)
|
for (i in 0...5)
|
||||||
|
@ -265,6 +272,7 @@ class PlayState extends MusicBeatState
|
||||||
light.setGraphicSize(Std.int(light.width * 0.85));
|
light.setGraphicSize(Std.int(light.width * 0.85));
|
||||||
light.updateHitbox();
|
light.updateHitbox();
|
||||||
light.antialiasing = true;
|
light.antialiasing = true;
|
||||||
|
light.shader = lightFadeShader.shader;
|
||||||
phillyCityLights.add(light);
|
phillyCityLights.add(light);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -548,9 +556,15 @@ class PlayState extends MusicBeatState
|
||||||
var smokeRight:BGSprite = new BGSprite('smokeRight', 1100, -100, 0.4, 0.4, ['SmokeRight'], true);
|
var smokeRight:BGSprite = new BGSprite('smokeRight', 1100, -100, 0.4, 0.4, ['SmokeRight'], true);
|
||||||
add(smokeRight);
|
add(smokeRight);
|
||||||
|
|
||||||
|
// tankGround.
|
||||||
|
|
||||||
tankWatchtower = new BGSprite('tankWatchtower', 100, 50, 0.5, 0.5, ['watchtower gradient color']);
|
tankWatchtower = new BGSprite('tankWatchtower', 100, 50, 0.5, 0.5, ['watchtower gradient color']);
|
||||||
add(tankWatchtower);
|
add(tankWatchtower);
|
||||||
|
|
||||||
|
tankGround = new BGSprite('tankRolling', 300, 300, 0.5, 0.5, ['BG tank w lighting'], true);
|
||||||
|
add(tankGround);
|
||||||
|
tankGround.active = false;
|
||||||
|
|
||||||
tankmanRun = new FlxTypedGroup<TankmenBG>();
|
tankmanRun = new FlxTypedGroup<TankmenBG>();
|
||||||
add(tankmanRun);
|
add(tankmanRun);
|
||||||
|
|
||||||
|
@ -559,12 +573,14 @@ class PlayState extends MusicBeatState
|
||||||
tankGround.updateHitbox();
|
tankGround.updateHitbox();
|
||||||
add(tankGround);
|
add(tankGround);
|
||||||
|
|
||||||
|
moveTank();
|
||||||
|
|
||||||
// smokeLeft.screenCenter();
|
// smokeLeft.screenCenter();
|
||||||
|
|
||||||
var fgTank0:BGSprite = new BGSprite('tank0', -500, 650, 1.7, 1.5, ['fg']);
|
var fgTank0:BGSprite = new BGSprite('tank0', -500, 650, 1.7, 1.5, ['fg']);
|
||||||
foregroundSprites.add(fgTank0);
|
foregroundSprites.add(fgTank0);
|
||||||
|
|
||||||
var fgTank1:BGSprite = new BGSprite('tank1', -300, 700, 2, 0.2, ['fg']);
|
var fgTank1:BGSprite = new BGSprite('tank1', -300, 750, 2, 0.2, ['fg']);
|
||||||
foregroundSprites.add(fgTank1);
|
foregroundSprites.add(fgTank1);
|
||||||
|
|
||||||
// just called 'foreground' just cuz small inconsistency no bbiggei
|
// just called 'foreground' just cuz small inconsistency no bbiggei
|
||||||
|
@ -577,7 +593,7 @@ class PlayState extends MusicBeatState
|
||||||
var fgTank5:BGSprite = new BGSprite('tank5', 1800, 900, 1.5, 1.5, ['fg']);
|
var fgTank5:BGSprite = new BGSprite('tank5', 1800, 900, 1.5, 1.5, ['fg']);
|
||||||
foregroundSprites.add(fgTank5);
|
foregroundSprites.add(fgTank5);
|
||||||
|
|
||||||
var fgTank3:BGSprite = new BGSprite('tank3', 1300, 1430, 3.5, 2.5, ['fg']);
|
var fgTank3:BGSprite = new BGSprite('tank3', 1300, 1400, 3.5, 2.5, ['fg']);
|
||||||
foregroundSprites.add(fgTank3);
|
foregroundSprites.add(fgTank3);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -918,8 +934,8 @@ class PlayState extends MusicBeatState
|
||||||
switch (curSong.toLowerCase())
|
switch (curSong.toLowerCase())
|
||||||
{
|
{
|
||||||
// REMOVE THIS LATER
|
// REMOVE THIS LATER
|
||||||
// case 'stress':
|
case 'stress':
|
||||||
// stressIntro();
|
stressIntro();
|
||||||
|
|
||||||
default:
|
default:
|
||||||
startCountdown();
|
startCountdown();
|
||||||
|
@ -933,112 +949,150 @@ class PlayState extends MusicBeatState
|
||||||
{
|
{
|
||||||
inCutscene = true;
|
inCutscene = true;
|
||||||
|
|
||||||
FlxG.sound.playMusic(Paths.music('DISTORTO'), 0);
|
var blackShit:FlxSprite = new FlxSprite(-200, -200).makeGraphic(FlxG.width * 2, FlxG.height * 2, FlxColor.BLACK);
|
||||||
FlxG.sound.music.fadeIn(5, 0, 0.5);
|
blackShit.scrollFactor.set();
|
||||||
|
add(blackShit);
|
||||||
|
|
||||||
dad.visible = false;
|
var vid:FlxVideo = new FlxVideo('music/ughCutscene.mp4');
|
||||||
var tankCutscene:TankCutscene = new TankCutscene(-20, 320);
|
vid.finishCallback = function()
|
||||||
tankCutscene.frames = Paths.getSparrowAtlas('cutsceneStuff/tankTalkSong1');
|
{
|
||||||
tankCutscene.animation.addByPrefix('wellWell', 'TANK TALK 1 P1', 24, false);
|
remove(blackShit);
|
||||||
tankCutscene.animation.addByPrefix('killYou', 'TANK TALK 1 P2', 24, false);
|
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom}, (Conductor.crochet / 1000) * 5, {ease: FlxEase.quadInOut});
|
||||||
tankCutscene.animation.play('wellWell');
|
startCountdown();
|
||||||
tankCutscene.antialiasing = true;
|
cameraMovement();
|
||||||
gfCutsceneLayer.add(tankCutscene);
|
};
|
||||||
|
|
||||||
camHUD.visible = false;
|
FlxG.camera.zoom = defaultCamZoom * 1.2;
|
||||||
|
|
||||||
FlxG.camera.zoom *= 1.2;
|
camFollow.x += 100;
|
||||||
camFollow.y += 100;
|
camFollow.y += 100;
|
||||||
|
|
||||||
tankCutscene.startSyncAudio = FlxG.sound.load(Paths.sound('wellWellWell'));
|
/*
|
||||||
|
FlxG.sound.playMusic(Paths.music('DISTORTO'), 0);
|
||||||
|
FlxG.sound.music.fadeIn(5, 0, 0.5);
|
||||||
|
|
||||||
new FlxTimer().start(3, function(tmr:FlxTimer)
|
dad.visible = false;
|
||||||
{
|
var tankCutscene:TankCutscene = new TankCutscene(-20, 320);
|
||||||
camFollow.x += 800;
|
tankCutscene.frames = Paths.getSparrowAtlas('cutsceneStuff/tankTalkSong1');
|
||||||
|
tankCutscene.animation.addByPrefix('wellWell', 'TANK TALK 1 P1', 24, false);
|
||||||
|
tankCutscene.animation.addByPrefix('killYou', 'TANK TALK 1 P2', 24, false);
|
||||||
|
tankCutscene.animation.play('wellWell');
|
||||||
|
tankCutscene.antialiasing = true;
|
||||||
|
gfCutsceneLayer.add(tankCutscene);
|
||||||
|
|
||||||
|
camHUD.visible = false;
|
||||||
|
|
||||||
|
FlxG.camera.zoom *= 1.2;
|
||||||
camFollow.y += 100;
|
camFollow.y += 100;
|
||||||
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom * 1.2}, 0.27, {ease: FlxEase.quadInOut});
|
|
||||||
|
|
||||||
new FlxTimer().start(1.5, function(bep:FlxTimer)
|
tankCutscene.startSyncAudio = FlxG.sound.load(Paths.sound('wellWellWell'));
|
||||||
{
|
|
||||||
boyfriend.playAnim('singUP');
|
|
||||||
// play sound
|
|
||||||
FlxG.sound.play(Paths.sound('bfBeep'), function() {
|
|
||||||
boyfriend.playAnim('idle');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
new FlxTimer().start(3, function(swaggy:FlxTimer)
|
new FlxTimer().start(3, function(tmr:FlxTimer)
|
||||||
{
|
{
|
||||||
camFollow.x -= 800;
|
camFollow.x += 800;
|
||||||
camFollow.y -= 100;
|
camFollow.y += 100;
|
||||||
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom * 1.2}, 0.5, {ease: FlxEase.quadInOut});
|
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom * 1.2}, 0.27, {ease: FlxEase.quadInOut});
|
||||||
tankCutscene.animation.play('killYou');
|
|
||||||
FlxG.sound.play(Paths.sound('killYou'));
|
new FlxTimer().start(1.5, function(bep:FlxTimer)
|
||||||
new FlxTimer().start(6.1, function(swagasdga:FlxTimer)
|
|
||||||
{
|
{
|
||||||
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom}, (Conductor.crochet / 1000) * 5, {ease: FlxEase.quadInOut});
|
boyfriend.playAnim('singUP');
|
||||||
|
// play sound
|
||||||
FlxG.sound.music.fadeOut((Conductor.crochet / 1000) * 5, 0);
|
FlxG.sound.play(Paths.sound('bfBeep'), function()
|
||||||
|
|
||||||
new FlxTimer().start((Conductor.crochet / 1000) * 5, function(money:FlxTimer)
|
|
||||||
{
|
{
|
||||||
dad.visible = true;
|
boyfriend.playAnim('idle');
|
||||||
gfCutsceneLayer.remove(tankCutscene);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
cameraMovement();
|
|
||||||
|
|
||||||
startCountdown();
|
|
||||||
});
|
});
|
||||||
});
|
|
||||||
});
|
new FlxTimer().start(3, function(swaggy:FlxTimer)
|
||||||
|
{
|
||||||
|
camFollow.x -= 800;
|
||||||
|
camFollow.y -= 100;
|
||||||
|
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom * 1.2}, 0.5, {ease: FlxEase.quadInOut});
|
||||||
|
tankCutscene.animation.play('killYou');
|
||||||
|
FlxG.sound.play(Paths.sound('killYou'));
|
||||||
|
new FlxTimer().start(6.1, function(swagasdga:FlxTimer)
|
||||||
|
{
|
||||||
|
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom}, (Conductor.crochet / 1000) * 5, {ease: FlxEase.quadInOut});
|
||||||
|
|
||||||
|
FlxG.sound.music.fadeOut((Conductor.crochet / 1000) * 5, 0);
|
||||||
|
|
||||||
|
new FlxTimer().start((Conductor.crochet / 1000) * 5, function(money:FlxTimer)
|
||||||
|
{
|
||||||
|
dad.visible = true;
|
||||||
|
gfCutsceneLayer.remove(tankCutscene);
|
||||||
|
});
|
||||||
|
|
||||||
|
cameraMovement();
|
||||||
|
|
||||||
|
startCountdown();
|
||||||
|
camHUD.visible = true;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});*/
|
||||||
}
|
}
|
||||||
|
|
||||||
function gunsIntro()
|
function gunsIntro()
|
||||||
{
|
{
|
||||||
inCutscene = true;
|
inCutscene = true;
|
||||||
|
|
||||||
camFollow.setPosition(camPos.x, camPos.y);
|
var blackShit:FlxSprite = new FlxSprite(-200, -200).makeGraphic(FlxG.width * 2, FlxG.height * 2, FlxColor.BLACK);
|
||||||
|
blackShit.scrollFactor.set();
|
||||||
|
add(blackShit);
|
||||||
|
|
||||||
camHUD.visible = false;
|
var vid:FlxVideo = new FlxVideo('music/gunsCutscene.mp4');
|
||||||
|
vid.finishCallback = function()
|
||||||
FlxG.sound.playMusic(Paths.music('DISTORTO'), 0);
|
|
||||||
FlxG.sound.music.fadeIn(5, 0, 0.5);
|
|
||||||
|
|
||||||
camFollow.y += 100;
|
|
||||||
|
|
||||||
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom * 1.3}, 4, {ease: FlxEase.quadInOut});
|
|
||||||
|
|
||||||
dad.visible = false;
|
|
||||||
var tankCutscene:TankCutscene = new TankCutscene(20, 320);
|
|
||||||
tankCutscene.frames = Paths.getSparrowAtlas('cutsceneStuff/tankTalkSong2');
|
|
||||||
tankCutscene.animation.addByPrefix('tankyguy', 'TANK TALK 2', 24, false);
|
|
||||||
tankCutscene.animation.play('tankyguy');
|
|
||||||
tankCutscene.antialiasing = true;
|
|
||||||
gfCutsceneLayer.add(tankCutscene); // add();
|
|
||||||
|
|
||||||
tankCutscene.startSyncAudio = FlxG.sound.load(Paths.sound('tankSong2'));
|
|
||||||
|
|
||||||
new FlxTimer().start(4.1, function(ugly:FlxTimer)
|
|
||||||
{
|
{
|
||||||
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom * 1.4}, 0.4, {ease: FlxEase.quadOut});
|
remove(blackShit);
|
||||||
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom * 1.3}, 0.7, {ease: FlxEase.quadInOut, startDelay: 0.45});
|
|
||||||
|
|
||||||
gf.playAnim('sad');
|
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom}, (Conductor.crochet / 1000) * 5, {ease: FlxEase.quadInOut});
|
||||||
});
|
|
||||||
|
|
||||||
new FlxTimer().start(11, function(tmr:FlxTimer)
|
|
||||||
{
|
|
||||||
FlxG.sound.music.fadeOut((Conductor.crochet / 1000) * 5, 0);
|
|
||||||
|
|
||||||
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom}, (Conductor.crochet * 5) / 1000, {ease: FlxEase.quartIn});
|
|
||||||
startCountdown();
|
startCountdown();
|
||||||
new FlxTimer().start((Conductor.crochet * 25) / 1000, function(daTim:FlxTimer)
|
cameraMovement();
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
camFollow.setPosition(camPos.x, camPos.y);
|
||||||
|
|
||||||
|
camHUD.visible = false;
|
||||||
|
|
||||||
|
FlxG.sound.playMusic(Paths.music('DISTORTO'), 0);
|
||||||
|
FlxG.sound.music.fadeIn(5, 0, 0.5);
|
||||||
|
|
||||||
|
camFollow.y += 100;
|
||||||
|
|
||||||
|
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom * 1.3}, 4, {ease: FlxEase.quadInOut});
|
||||||
|
|
||||||
|
dad.visible = false;
|
||||||
|
var tankCutscene:TankCutscene = new TankCutscene(20, 320);
|
||||||
|
tankCutscene.frames = Paths.getSparrowAtlas('cutsceneStuff/tankTalkSong2');
|
||||||
|
tankCutscene.animation.addByPrefix('tankyguy', 'TANK TALK 2', 24, false);
|
||||||
|
tankCutscene.animation.play('tankyguy');
|
||||||
|
tankCutscene.antialiasing = true;
|
||||||
|
gfCutsceneLayer.add(tankCutscene); // add();
|
||||||
|
|
||||||
|
tankCutscene.startSyncAudio = FlxG.sound.load(Paths.sound('tankSong2'));
|
||||||
|
|
||||||
|
new FlxTimer().start(4.1, function(ugly:FlxTimer)
|
||||||
{
|
{
|
||||||
dad.visible = true;
|
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom * 1.4}, 0.4, {ease: FlxEase.quadOut});
|
||||||
gfCutsceneLayer.remove(tankCutscene);
|
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom * 1.3}, 0.7, {ease: FlxEase.quadInOut, startDelay: 0.45});
|
||||||
|
|
||||||
|
gf.playAnim('sad');
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
new FlxTimer().start(11, function(tmr:FlxTimer)
|
||||||
|
{
|
||||||
|
FlxG.sound.music.fadeOut((Conductor.crochet / 1000) * 5, 0);
|
||||||
|
|
||||||
|
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom}, (Conductor.crochet * 5) / 1000, {ease: FlxEase.quartIn});
|
||||||
|
startCountdown();
|
||||||
|
new FlxTimer().start((Conductor.crochet * 25) / 1000, function(daTim:FlxTimer)
|
||||||
|
{
|
||||||
|
dad.visible = true;
|
||||||
|
gfCutsceneLayer.remove(tankCutscene);
|
||||||
|
});
|
||||||
|
|
||||||
|
camHUD.visible = true;
|
||||||
|
});*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1056,13 +1110,30 @@ class PlayState extends MusicBeatState
|
||||||
{
|
{
|
||||||
inCutscene = true;
|
inCutscene = true;
|
||||||
|
|
||||||
// for story mode shit
|
var blackShit:FlxSprite = new FlxSprite(-200, -200).makeGraphic(FlxG.width * 2, FlxG.height * 2, FlxColor.BLACK);
|
||||||
camFollow.setPosition(camPos.x, camPos.y);
|
blackShit.scrollFactor.set();
|
||||||
|
add(blackShit);
|
||||||
|
|
||||||
var dummyLoaderShit:FlxGroup = new FlxGroup();
|
var vid:FlxVideo = new FlxVideo('music/stressCutscene.mp4');
|
||||||
|
vid.finishCallback = function()
|
||||||
|
{
|
||||||
|
remove(blackShit);
|
||||||
|
|
||||||
|
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom}, (Conductor.crochet / 1000) * 5, {ease: FlxEase.quadInOut});
|
||||||
|
startCountdown();
|
||||||
|
cameraMovement();
|
||||||
|
};
|
||||||
|
|
||||||
add(dummyLoaderShit);
|
|
||||||
/*
|
/*
|
||||||
|
camHUD.visible = false;
|
||||||
|
|
||||||
|
// for story mode shit
|
||||||
|
camFollow.setPosition(camPos.x, camPos.y);
|
||||||
|
|
||||||
|
var dummyLoaderShit:FlxGroup = new FlxGroup();
|
||||||
|
|
||||||
|
add(dummyLoaderShit);
|
||||||
|
|
||||||
for (i in 0...7)
|
for (i in 0...7)
|
||||||
{
|
{
|
||||||
var dummyLoader:FlxSprite = new FlxSprite();
|
var dummyLoader:FlxSprite = new FlxSprite();
|
||||||
|
@ -1073,223 +1144,221 @@ class PlayState extends MusicBeatState
|
||||||
// dummyLoader.drawFrame(true);
|
// dummyLoader.drawFrame(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
dad.visible = false;
|
||||||
|
|
||||||
dad.visible = false;
|
// gf.y += 300;
|
||||||
|
gf.alpha = 0.01;
|
||||||
|
|
||||||
// gf.y += 300;
|
var gfTankmen:FlxSprite = new FlxSprite(210, 70);
|
||||||
gf.alpha = 0.01;
|
gfTankmen.frames = Paths.getSparrowAtlas('characters/gfTankmen');
|
||||||
|
gfTankmen.animation.addByPrefix('loop', 'GF Dancing at Gunpoint', 24, true);
|
||||||
|
gfTankmen.animation.play('loop');
|
||||||
|
gfTankmen.antialiasing = true;
|
||||||
|
gfCutsceneLayer.add(gfTankmen);
|
||||||
|
|
||||||
var gfTankmen:FlxSprite = new FlxSprite(210, 70);
|
var tankCutscene:TankCutscene = new TankCutscene(-70, 320);
|
||||||
gfTankmen.frames = Paths.getSparrowAtlas('characters/gfTankmen');
|
tankCutscene.frames = Paths.getSparrowAtlas('cutsceneStuff/tankTalkSong3-pt1');
|
||||||
gfTankmen.animation.addByPrefix('loop', 'GF Dancing at Gunpoint', 24, true);
|
tankCutscene.animation.addByPrefix('tankyguy', 'TANK TALK 3 P1 UNCUT', 24, false);
|
||||||
gfTankmen.animation.play('loop');
|
// tankCutscene.animation.addByPrefix('weed', 'sexAmbig', 24, false);
|
||||||
gfTankmen.antialiasing = true;
|
tankCutscene.animation.play('tankyguy');
|
||||||
gfCutsceneLayer.add(gfTankmen);
|
|
||||||
|
|
||||||
var tankCutscene:TankCutscene = new TankCutscene(-70, 320);
|
tankCutscene.antialiasing = true;
|
||||||
tankCutscene.frames = Paths.getSparrowAtlas('cutsceneStuff/tankTalkSong3-pt1');
|
bfTankCutsceneLayer.add(tankCutscene); // add();
|
||||||
tankCutscene.animation.addByPrefix('tankyguy', 'TANK TALK 3 P1 UNCUT', 24, false);
|
|
||||||
// tankCutscene.animation.addByPrefix('weed', 'sexAmbig', 24, false);
|
|
||||||
tankCutscene.animation.play('tankyguy');
|
|
||||||
|
|
||||||
tankCutscene.antialiasing = true;
|
var alsoTankCutscene:FlxSprite = new FlxSprite(20, 320);
|
||||||
bfTankCutsceneLayer.add(tankCutscene); // add();
|
alsoTankCutscene.frames = Paths.getSparrowAtlas('cutsceneStuff/tankTalkSong3-pt2');
|
||||||
|
alsoTankCutscene.animation.addByPrefix('swagTank', 'TANK TALK 3 P2 UNCUT', 24, false);
|
||||||
|
alsoTankCutscene.antialiasing = true;
|
||||||
|
|
||||||
var alsoTankCutscene:FlxSprite = new FlxSprite(20, 320);
|
bfTankCutsceneLayer.add(alsoTankCutscene);
|
||||||
alsoTankCutscene.frames = Paths.getSparrowAtlas('cutsceneStuff/tankTalkSong3-pt2');
|
|
||||||
alsoTankCutscene.animation.addByPrefix('swagTank', 'TANK TALK 3 P2 UNCUT', 24, false);
|
|
||||||
alsoTankCutscene.antialiasing = true;
|
|
||||||
|
|
||||||
bfTankCutsceneLayer.add(alsoTankCutscene);
|
alsoTankCutscene.y = FlxG.height + 100;
|
||||||
|
|
||||||
alsoTankCutscene.y = FlxG.height + 100;
|
camFollow.setPosition(gf.x + 350, gf.y + 560);
|
||||||
|
|
||||||
camFollow.setPosition(gf.x + 350, gf.y + 560);
|
|
||||||
FlxG.camera.focusOn(camFollow.getPosition());
|
|
||||||
|
|
||||||
boyfriend.visible = false;
|
|
||||||
|
|
||||||
var fakeBF:Character = new Character(boyfriend.x, boyfriend.y, 'bf', true);
|
|
||||||
bfTankCutsceneLayer.add(fakeBF);
|
|
||||||
|
|
||||||
// var atlasCutscene:Animation
|
|
||||||
// var animAssets:AssetManager = new AssetManager();
|
|
||||||
|
|
||||||
// var url = 'images/gfDemon';
|
|
||||||
|
|
||||||
// // animAssets.enqueueSingle(Paths.file(url + "/spritemap1.png"));
|
|
||||||
// // animAssets.enqueueSingle(Paths.file(url + "/spritemap1.json"));
|
|
||||||
// // animAssets.enqueueSingle(Paths.file(url + "/Animation.json"));
|
|
||||||
|
|
||||||
// animAssets.loadQueue(function(asssss:AssetManager)
|
|
||||||
// {
|
|
||||||
// var daAnim:Animation = asssss.createAnimation('GF Turnin Demon W Effect');
|
|
||||||
// FlxG.addChildBelowMouse(daAnim);
|
|
||||||
// });
|
|
||||||
|
|
||||||
var bfCatchGf:FlxSprite = new FlxSprite(boyfriend.x - 10, boyfriend.y - 90);
|
|
||||||
bfCatchGf.frames = Paths.getSparrowAtlas('cutsceneStuff/bfCatchesGF');
|
|
||||||
bfCatchGf.animation.addByPrefix('catch', 'BF catches GF', 24, false);
|
|
||||||
bfCatchGf.antialiasing = true;
|
|
||||||
add(bfCatchGf);
|
|
||||||
bfCatchGf.visible = false;
|
|
||||||
|
|
||||||
if (PreferencesMenu.getPref('censor-naughty'))
|
|
||||||
tankCutscene.startSyncAudio = FlxG.sound.play(Paths.sound('stressCutscene'));
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tankCutscene.startSyncAudio = FlxG.sound.play(Paths.sound('song3censor'));
|
|
||||||
// cutsceneSound.loadEmbedded(Paths.sound('song3censor'));
|
|
||||||
|
|
||||||
var censor:FlxSprite = new FlxSprite();
|
|
||||||
censor.frames = Paths.getSparrowAtlas('cutsceneStuff/censor');
|
|
||||||
censor.animation.addByPrefix('censor', 'mouth censor', 24);
|
|
||||||
censor.animation.play('censor');
|
|
||||||
add(censor);
|
|
||||||
censor.visible = false;
|
|
||||||
//
|
|
||||||
|
|
||||||
new FlxTimer().start(4.6, function(censorTimer:FlxTimer)
|
|
||||||
{
|
|
||||||
censor.visible = true;
|
|
||||||
censor.setPosition(dad.x + 160, dad.y + 180);
|
|
||||||
|
|
||||||
new FlxTimer().start(0.2, function(endThing:FlxTimer)
|
|
||||||
{
|
|
||||||
censor.visible = false;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
new FlxTimer().start(25.1, function(censorTimer:FlxTimer)
|
|
||||||
{
|
|
||||||
censor.visible = true;
|
|
||||||
censor.setPosition(dad.x + 120, dad.y + 170);
|
|
||||||
|
|
||||||
new FlxTimer().start(0.9, function(endThing:FlxTimer)
|
|
||||||
{
|
|
||||||
censor.visible = false;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
new FlxTimer().start(30.7, function(censorTimer:FlxTimer)
|
|
||||||
{
|
|
||||||
censor.visible = true;
|
|
||||||
censor.setPosition(dad.x + 210, dad.y + 190);
|
|
||||||
|
|
||||||
new FlxTimer().start(0.4, function(endThing:FlxTimer)
|
|
||||||
{
|
|
||||||
censor.visible = false;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
new FlxTimer().start(33.8, function(censorTimer:FlxTimer)
|
|
||||||
{
|
|
||||||
censor.visible = true;
|
|
||||||
censor.setPosition(dad.x + 180, dad.y + 170);
|
|
||||||
|
|
||||||
new FlxTimer().start(0.6, function(endThing:FlxTimer)
|
|
||||||
{
|
|
||||||
censor.visible = false;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// new FlxTimer().start(0.01, function(tmr) cutsceneSound.play()); // cutsceneSound.play();
|
|
||||||
// cutsceneSound.play();
|
|
||||||
// tankCutscene.startSyncAudio = cutsceneSound;
|
|
||||||
// tankCutscene.animation.curAnim.curFrame
|
|
||||||
|
|
||||||
FlxG.camera.zoom = defaultCamZoom * 1.15;
|
|
||||||
|
|
||||||
camFollow.x -= 200;
|
|
||||||
|
|
||||||
// cutsceneSound.onComplete = startCountdown;
|
|
||||||
|
|
||||||
// Cunt 1
|
|
||||||
new FlxTimer().start(31.5, function(cunt:FlxTimer)
|
|
||||||
{
|
|
||||||
camFollow.x += 400;
|
|
||||||
camFollow.y += 150;
|
|
||||||
FlxG.camera.zoom = defaultCamZoom * 1.4;
|
|
||||||
FlxTween.tween(FlxG.camera, {zoom: FlxG.camera.zoom + 0.1}, 0.5, {ease: FlxEase.elasticOut});
|
|
||||||
FlxG.camera.focusOn(camFollow.getPosition());
|
FlxG.camera.focusOn(camFollow.getPosition());
|
||||||
boyfriend.playAnim('singUPmiss');
|
|
||||||
boyfriend.animation.finishCallback = function(animFinish:String)
|
boyfriend.visible = false;
|
||||||
|
|
||||||
|
var fakeBF:Character = new Character(boyfriend.x, boyfriend.y, 'bf', true);
|
||||||
|
bfTankCutsceneLayer.add(fakeBF);
|
||||||
|
|
||||||
|
// var atlasCutscene:Animation
|
||||||
|
// var animAssets:AssetManager = new AssetManager();
|
||||||
|
|
||||||
|
// var url = 'images/gfDemon';
|
||||||
|
|
||||||
|
// // animAssets.enqueueSingle(Paths.file(url + "/spritemap1.png"));
|
||||||
|
// // animAssets.enqueueSingle(Paths.file(url + "/spritemap1.json"));
|
||||||
|
// // animAssets.enqueueSingle(Paths.file(url + "/Animation.json"));
|
||||||
|
|
||||||
|
// animAssets.loadQueue(function(asssss:AssetManager)
|
||||||
|
// {
|
||||||
|
// var daAnim:Animation = asssss.createAnimation('GF Turnin Demon W Effect');
|
||||||
|
// FlxG.addChildBelowMouse(daAnim);
|
||||||
|
// });
|
||||||
|
|
||||||
|
var bfCatchGf:FlxSprite = new FlxSprite(boyfriend.x - 10, boyfriend.y - 90);
|
||||||
|
bfCatchGf.frames = Paths.getSparrowAtlas('cutsceneStuff/bfCatchesGF');
|
||||||
|
bfCatchGf.animation.addByPrefix('catch', 'BF catches GF', 24, false);
|
||||||
|
bfCatchGf.antialiasing = true;
|
||||||
|
add(bfCatchGf);
|
||||||
|
bfCatchGf.visible = false;
|
||||||
|
|
||||||
|
if (PreferencesMenu.getPref('censor-naughty'))
|
||||||
|
tankCutscene.startSyncAudio = FlxG.sound.play(Paths.sound('stressCutscene'));
|
||||||
|
else
|
||||||
{
|
{
|
||||||
camFollow.x -= 400;
|
tankCutscene.startSyncAudio = FlxG.sound.play(Paths.sound('song3censor'));
|
||||||
camFollow.y -= 150;
|
// cutsceneSound.loadEmbedded(Paths.sound('song3censor'));
|
||||||
FlxG.camera.zoom /= 1.4;
|
|
||||||
|
var censor:FlxSprite = new FlxSprite();
|
||||||
|
censor.frames = Paths.getSparrowAtlas('cutsceneStuff/censor');
|
||||||
|
censor.animation.addByPrefix('censor', 'mouth censor', 24);
|
||||||
|
censor.animation.play('censor');
|
||||||
|
add(censor);
|
||||||
|
censor.visible = false;
|
||||||
|
//
|
||||||
|
|
||||||
|
new FlxTimer().start(4.6, function(censorTimer:FlxTimer)
|
||||||
|
{
|
||||||
|
censor.visible = true;
|
||||||
|
censor.setPosition(dad.x + 160, dad.y + 180);
|
||||||
|
|
||||||
|
new FlxTimer().start(0.2, function(endThing:FlxTimer)
|
||||||
|
{
|
||||||
|
censor.visible = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
new FlxTimer().start(25.1, function(censorTimer:FlxTimer)
|
||||||
|
{
|
||||||
|
censor.visible = true;
|
||||||
|
censor.setPosition(dad.x + 120, dad.y + 170);
|
||||||
|
|
||||||
|
new FlxTimer().start(0.9, function(endThing:FlxTimer)
|
||||||
|
{
|
||||||
|
censor.visible = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
new FlxTimer().start(30.7, function(censorTimer:FlxTimer)
|
||||||
|
{
|
||||||
|
censor.visible = true;
|
||||||
|
censor.setPosition(dad.x + 210, dad.y + 190);
|
||||||
|
|
||||||
|
new FlxTimer().start(0.4, function(endThing:FlxTimer)
|
||||||
|
{
|
||||||
|
censor.visible = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
new FlxTimer().start(33.8, function(censorTimer:FlxTimer)
|
||||||
|
{
|
||||||
|
censor.visible = true;
|
||||||
|
censor.setPosition(dad.x + 180, dad.y + 170);
|
||||||
|
|
||||||
|
new FlxTimer().start(0.6, function(endThing:FlxTimer)
|
||||||
|
{
|
||||||
|
censor.visible = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// new FlxTimer().start(0.01, function(tmr) cutsceneSound.play()); // cutsceneSound.play();
|
||||||
|
// cutsceneSound.play();
|
||||||
|
// tankCutscene.startSyncAudio = cutsceneSound;
|
||||||
|
// tankCutscene.animation.curAnim.curFrame
|
||||||
|
|
||||||
|
FlxG.camera.zoom = defaultCamZoom * 1.15;
|
||||||
|
|
||||||
|
camFollow.x -= 200;
|
||||||
|
|
||||||
|
// cutsceneSound.onComplete = startCountdown;
|
||||||
|
|
||||||
|
// Cunt 1
|
||||||
|
new FlxTimer().start(31.5, function(cunt:FlxTimer)
|
||||||
|
{
|
||||||
|
camFollow.x += 400;
|
||||||
|
camFollow.y += 150;
|
||||||
|
FlxG.camera.zoom = defaultCamZoom * 1.4;
|
||||||
|
FlxTween.tween(FlxG.camera, {zoom: FlxG.camera.zoom + 0.1}, 0.5, {ease: FlxEase.elasticOut});
|
||||||
FlxG.camera.focusOn(camFollow.getPosition());
|
FlxG.camera.focusOn(camFollow.getPosition());
|
||||||
|
boyfriend.playAnim('singUPmiss');
|
||||||
|
boyfriend.animation.finishCallback = function(animFinish:String)
|
||||||
|
{
|
||||||
|
camFollow.x -= 400;
|
||||||
|
camFollow.y -= 150;
|
||||||
|
FlxG.camera.zoom /= 1.4;
|
||||||
|
FlxG.camera.focusOn(camFollow.getPosition());
|
||||||
|
|
||||||
boyfriend.animation.finishCallback = null;
|
boyfriend.animation.finishCallback = null;
|
||||||
};
|
};
|
||||||
});
|
|
||||||
|
|
||||||
new FlxTimer().start(15.1, function(tmr:FlxTimer)
|
|
||||||
{
|
|
||||||
camFollow.y -= 170;
|
|
||||||
camFollow.x += 200;
|
|
||||||
FlxTween.tween(FlxG.camera, {zoom: FlxG.camera.zoom * 1.3}, 2.1, {
|
|
||||||
ease: FlxEase.quadInOut
|
|
||||||
});
|
});
|
||||||
|
|
||||||
new FlxTimer().start(2.2, function(swagTimer:FlxTimer)
|
new FlxTimer().start(15.1, function(tmr:FlxTimer)
|
||||||
{
|
{
|
||||||
// FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom}, 0.7, {ease: FlxEase.elasticOut});
|
camFollow.y -= 170;
|
||||||
FlxG.camera.zoom = 0.8;
|
camFollow.x += 200;
|
||||||
// camFollow.y -= 100;
|
FlxTween.tween(FlxG.camera, {zoom: FlxG.camera.zoom * 1.3}, 2.1, {
|
||||||
boyfriend.visible = false;
|
ease: FlxEase.quadInOut
|
||||||
bfCatchGf.visible = true;
|
});
|
||||||
bfCatchGf.animation.play('catch');
|
|
||||||
|
|
||||||
bfTankCutsceneLayer.remove(fakeBF);
|
new FlxTimer().start(2.2, function(swagTimer:FlxTimer)
|
||||||
|
|
||||||
bfCatchGf.animation.finishCallback = function(anim:String)
|
|
||||||
{
|
{
|
||||||
bfCatchGf.visible = false;
|
// FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom}, 0.7, {ease: FlxEase.elasticOut});
|
||||||
boyfriend.visible = true;
|
FlxG.camera.zoom = 0.8;
|
||||||
|
// camFollow.y -= 100;
|
||||||
|
boyfriend.visible = false;
|
||||||
|
bfCatchGf.visible = true;
|
||||||
|
bfCatchGf.animation.play('catch');
|
||||||
|
|
||||||
|
bfTankCutsceneLayer.remove(fakeBF);
|
||||||
|
|
||||||
|
bfCatchGf.animation.finishCallback = function(anim:String)
|
||||||
|
{
|
||||||
|
bfCatchGf.visible = false;
|
||||||
|
boyfriend.visible = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
new FlxTimer().start(3, function(weedShitBaby:FlxTimer)
|
||||||
|
{
|
||||||
|
camFollow.y += 180;
|
||||||
|
camFollow.x -= 80;
|
||||||
|
});
|
||||||
|
|
||||||
|
new FlxTimer().start(2.3, function(gayLol:FlxTimer)
|
||||||
|
{
|
||||||
|
bfTankCutsceneLayer.remove(tankCutscene);
|
||||||
|
alsoTankCutscene.y = 320;
|
||||||
|
alsoTankCutscene.animation.play('swagTank');
|
||||||
|
// tankCutscene.animation.play('weed');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
gf.visible = false;
|
||||||
|
var cutsceneShit:CutsceneCharacter = new CutsceneCharacter(210, 70, 'gfHoldup');
|
||||||
|
gfCutsceneLayer.add(cutsceneShit);
|
||||||
|
gfCutsceneLayer.remove(gfTankmen);
|
||||||
|
|
||||||
|
cutsceneShit.onFinish = function()
|
||||||
|
{
|
||||||
|
gf.alpha = 1;
|
||||||
|
gf.visible = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
new FlxTimer().start(3, function(weedShitBaby:FlxTimer)
|
// add(cutsceneShit);
|
||||||
|
new FlxTimer().start(20, function(alsoTmr:FlxTimer)
|
||||||
{
|
{
|
||||||
camFollow.y += 180;
|
dad.visible = true;
|
||||||
camFollow.x -= 80;
|
bfTankCutsceneLayer.remove(alsoTankCutscene);
|
||||||
|
startCountdown();
|
||||||
|
remove(dummyLoaderShit);
|
||||||
|
dummyLoaderShit.destroy();
|
||||||
|
dummyLoaderShit = null;
|
||||||
|
|
||||||
|
gfCutsceneLayer.remove(cutsceneShit);
|
||||||
});
|
});
|
||||||
|
});*/
|
||||||
new FlxTimer().start(2.3, function(gayLol:FlxTimer)
|
|
||||||
{
|
|
||||||
bfTankCutsceneLayer.remove(tankCutscene);
|
|
||||||
alsoTankCutscene.y = 320;
|
|
||||||
alsoTankCutscene.animation.play('swagTank');
|
|
||||||
// tankCutscene.animation.play('weed');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
gf.visible = false;
|
|
||||||
var cutsceneShit:CutsceneCharacter = new CutsceneCharacter(210, 70, 'gfHoldup');
|
|
||||||
gfCutsceneLayer.add(cutsceneShit);
|
|
||||||
gfCutsceneLayer.remove(gfTankmen);
|
|
||||||
|
|
||||||
cutsceneShit.onFinish = function()
|
|
||||||
{
|
|
||||||
gf.alpha = 1;
|
|
||||||
gf.visible = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
// add(cutsceneShit);
|
|
||||||
new FlxTimer().start(20, function(alsoTmr:FlxTimer)
|
|
||||||
{
|
|
||||||
dad.visible = true;
|
|
||||||
bfTankCutsceneLayer.remove(alsoTankCutscene);
|
|
||||||
startCountdown();
|
|
||||||
remove(dummyLoaderShit);
|
|
||||||
dummyLoaderShit.destroy();
|
|
||||||
dummyLoaderShit = null;
|
|
||||||
|
|
||||||
gfCutsceneLayer.remove(cutsceneShit);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function initDiscord():Void
|
function initDiscord():Void
|
||||||
|
@ -1931,7 +2000,12 @@ class PlayState extends MusicBeatState
|
||||||
trainFrameTiming = 0;
|
trainFrameTiming = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// phillyCityLights.members[curLight].alpha -= (Conductor.crochet / 1000) * FlxG.elapsed;
|
|
||||||
|
lightFadeShader.update((Conductor.crochet / 1000) * FlxG.elapsed * 1.5);
|
||||||
|
// phillyCityLights.members[curLight].alpha -= (Conductor.crochet / 1000) * FlxG.elapsed;
|
||||||
|
|
||||||
|
case 'tank':
|
||||||
|
moveTank();
|
||||||
}
|
}
|
||||||
|
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
|
@ -2314,7 +2388,8 @@ class PlayState extends MusicBeatState
|
||||||
camHUD.visible = false;
|
camHUD.visible = false;
|
||||||
inCutscene = true;
|
inCutscene = true;
|
||||||
|
|
||||||
FlxG.sound.play(Paths.sound('Lights_Shut_off'), function(){
|
FlxG.sound.play(Paths.sound('Lights_Shut_off'), function()
|
||||||
|
{
|
||||||
// no camFollow so it centers on horror tree
|
// no camFollow so it centers on horror tree
|
||||||
SONG = Song.loadFromJson(storyPlaylist[0].toLowerCase() + difficulty, storyPlaylist[0]);
|
SONG = Song.loadFromJson(storyPlaylist[0].toLowerCase() + difficulty, storyPlaylist[0]);
|
||||||
LoadingState.loadAndSwitchState(new PlayState());
|
LoadingState.loadAndSwitchState(new PlayState());
|
||||||
|
@ -2809,6 +2884,25 @@ class PlayState extends MusicBeatState
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function moveTank():Void
|
||||||
|
{
|
||||||
|
if (!inCutscene)
|
||||||
|
{
|
||||||
|
var daAngleOffset:Float = 1;
|
||||||
|
tankAngle += FlxG.elapsed * tankSpeed;
|
||||||
|
tankGround.angle = tankAngle - 90 + 15;
|
||||||
|
|
||||||
|
tankGround.x = tankX + Math.cos(FlxAngle.asRadians((tankAngle * daAngleOffset) + 180)) * 1500;
|
||||||
|
tankGround.y = 1300 + Math.sin(FlxAngle.asRadians((tankAngle * daAngleOffset) + 180)) * 1100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var tankResetShit:Bool = false;
|
||||||
|
var tankMoving:Bool = false;
|
||||||
|
var tankAngle:Float = FlxG.random.int(-90, 45);
|
||||||
|
var tankSpeed:Float = FlxG.random.float(5, 7);
|
||||||
|
var tankX:Float = 400;
|
||||||
|
|
||||||
var trainMoving:Bool = false;
|
var trainMoving:Bool = false;
|
||||||
var trainFrameTiming:Float = 0;
|
var trainFrameTiming:Float = 0;
|
||||||
|
|
||||||
|
@ -2995,6 +3089,8 @@ class PlayState extends MusicBeatState
|
||||||
|
|
||||||
if (curBeat % 4 == 0)
|
if (curBeat % 4 == 0)
|
||||||
{
|
{
|
||||||
|
lightFadeShader.reset();
|
||||||
|
|
||||||
phillyCityLights.forEach(function(light:FlxSprite)
|
phillyCityLights.forEach(function(light:FlxSprite)
|
||||||
{
|
{
|
||||||
light.visible = false;
|
light.visible = false;
|
||||||
|
|
|
@ -29,6 +29,8 @@ import openfl.events.NetStatusEvent;
|
||||||
import openfl.media.Video;
|
import openfl.media.Video;
|
||||||
import openfl.net.NetConnection;
|
import openfl.net.NetConnection;
|
||||||
import openfl.net.NetStream;
|
import openfl.net.NetStream;
|
||||||
|
import shaderslmfao.BuildingShaders.BuildingShader;
|
||||||
|
import shaderslmfao.BuildingShaders;
|
||||||
import shaderslmfao.ColorSwap;
|
import shaderslmfao.ColorSwap;
|
||||||
import ui.PreferencesMenu;
|
import ui.PreferencesMenu;
|
||||||
|
|
||||||
|
@ -45,7 +47,7 @@ import sys.thread.Thread;
|
||||||
|
|
||||||
class TitleState extends MusicBeatState
|
class TitleState extends MusicBeatState
|
||||||
{
|
{
|
||||||
static var initialized:Bool = false;
|
public static var initialized:Bool = false;
|
||||||
|
|
||||||
var blackScreen:FlxSprite;
|
var blackScreen:FlxSprite;
|
||||||
var credGroup:FlxGroup;
|
var credGroup:FlxGroup;
|
||||||
|
@ -57,6 +59,7 @@ class TitleState extends MusicBeatState
|
||||||
var wackyImage:FlxSprite;
|
var wackyImage:FlxSprite;
|
||||||
var lastBeat:Int = 0;
|
var lastBeat:Int = 0;
|
||||||
var swagShader:ColorSwap;
|
var swagShader:ColorSwap;
|
||||||
|
var alphaShader:BuildingShaders;
|
||||||
var thingie:FlxSprite;
|
var thingie:FlxSprite;
|
||||||
|
|
||||||
var video:Video;
|
var video:Video;
|
||||||
|
@ -73,6 +76,7 @@ class TitleState extends MusicBeatState
|
||||||
FlxG.game.focusLostFramerate = 60;
|
FlxG.game.focusLostFramerate = 60;
|
||||||
|
|
||||||
swagShader = new ColorSwap();
|
swagShader = new ColorSwap();
|
||||||
|
alphaShader = new BuildingShaders();
|
||||||
|
|
||||||
FlxG.sound.muteKeys = [ZERO];
|
FlxG.sound.muteKeys = [ZERO];
|
||||||
|
|
||||||
|
@ -105,6 +109,11 @@ class TitleState extends MusicBeatState
|
||||||
StoryMenuState.weekUnlocked[0] = true;
|
StoryMenuState.weekUnlocked[0] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (FlxG.save.data.seenVideo != null)
|
||||||
|
{
|
||||||
|
VideoState.seenVideo = FlxG.save.data.seenVideo;
|
||||||
|
}
|
||||||
|
|
||||||
#if FREEPLAY
|
#if FREEPLAY
|
||||||
FlxG.switchState(new FreeplayState());
|
FlxG.switchState(new FreeplayState());
|
||||||
#elseif ANIMATE
|
#elseif ANIMATE
|
||||||
|
@ -249,6 +258,7 @@ class TitleState extends MusicBeatState
|
||||||
logoBl.updateHitbox();
|
logoBl.updateHitbox();
|
||||||
|
|
||||||
logoBl.shader = swagShader.shader;
|
logoBl.shader = swagShader.shader;
|
||||||
|
// logoBl.shader = alphaShader.shader;
|
||||||
|
|
||||||
// trace();
|
// trace();
|
||||||
// logoBl.screenCenter();
|
// logoBl.screenCenter();
|
||||||
|
@ -465,11 +475,13 @@ class TitleState extends MusicBeatState
|
||||||
if (controls.UI_LEFT)
|
if (controls.UI_LEFT)
|
||||||
{
|
{
|
||||||
swagShader.update(-elapsed * 0.1);
|
swagShader.update(-elapsed * 0.1);
|
||||||
|
// alphaShader.update(-elapsed * 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (controls.UI_RIGHT)
|
if (controls.UI_RIGHT)
|
||||||
{
|
{
|
||||||
swagShader.update(elapsed * 0.1);
|
swagShader.update(elapsed * 0.1);
|
||||||
|
// alphaShader.update(elapsed * 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
|
|
|
@ -23,6 +23,9 @@ class VideoState extends MusicBeatState
|
||||||
|
|
||||||
seenVideo = true;
|
seenVideo = true;
|
||||||
|
|
||||||
|
FlxG.save.data.seenVideo = true;
|
||||||
|
FlxG.save.flush();
|
||||||
|
|
||||||
if (FlxG.sound.music != null)
|
if (FlxG.sound.music != null)
|
||||||
FlxG.sound.music.stop();
|
FlxG.sound.music.stop();
|
||||||
|
|
||||||
|
@ -61,6 +64,7 @@ class VideoState extends MusicBeatState
|
||||||
netStream.dispose();
|
netStream.dispose();
|
||||||
FlxG.removeChild(video);
|
FlxG.removeChild(video);
|
||||||
|
|
||||||
|
TitleState.initialized = false;
|
||||||
FlxG.switchState(new TitleState());
|
FlxG.switchState(new TitleState());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,18 +62,20 @@ class FlxSymbol extends FlxSprite
|
||||||
{
|
{
|
||||||
if (Reflect.hasField(element, 'ASI'))
|
if (Reflect.hasField(element, 'ASI'))
|
||||||
{
|
{
|
||||||
|
var m3d = element.ASI.M3D;
|
||||||
|
var dumbassMatrix:Matrix = new Matrix(m3d[0], m3d[1], m3d[4], m3d[5], m3d[12], m3d[13]);
|
||||||
|
|
||||||
var spr:FlxSymbol = new FlxSymbol(0, 0, coolParsed);
|
var spr:FlxSymbol = new FlxSymbol(0, 0, coolParsed);
|
||||||
matrixExposed = true;
|
matrixExposed = true;
|
||||||
spr.frames = frames;
|
spr.frames = frames;
|
||||||
spr.frame = spr.frames.getByName(element.ASI.N);
|
spr.frame = spr.frames.getByName(element.ASI.N);
|
||||||
|
|
||||||
var m3d = element.ASI.M3D;
|
// dumbassMatrix.translate(origin.x, origin.y);
|
||||||
var dumbassMatrix:Matrix = new Matrix(m3d[0], m3d[1], m3d[4], m3d[5], m3d[12], m3d[13]);
|
|
||||||
|
|
||||||
dumbassMatrix.concat(_matrix);
|
dumbassMatrix.concat(_matrix);
|
||||||
spr.matrixExposed = true;
|
spr.matrixExposed = true;
|
||||||
|
|
||||||
spr.transformMatrix.concat(dumbassMatrix);
|
spr.transformMatrix.concat(dumbassMatrix);
|
||||||
|
// spr._matrix.concat(spr.transformMatrix);
|
||||||
|
|
||||||
spr.origin.set();
|
spr.origin.set();
|
||||||
spr.origin.x += origin.x;
|
spr.origin.x += origin.x;
|
||||||
|
@ -85,39 +87,15 @@ class FlxSymbol extends FlxSprite
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var nestedSymbol = symbolMap.get(element.SI.SN);
|
var nestedSymbol = symbolMap.get(element.SI.SN);
|
||||||
|
var nestedShit:FlxSymbol = new FlxSymbol(0, 0, coolParse);
|
||||||
// nestedSymbol
|
|
||||||
|
|
||||||
// if (element.SI.M3D[0] == -1 || flipX)
|
|
||||||
// nestedShit.flipX = true;
|
|
||||||
|
|
||||||
// nestedSymbol.TL.L.reverse();
|
|
||||||
|
|
||||||
// _matrix.identity();
|
|
||||||
// _matrix.scale(1, 1);
|
|
||||||
|
|
||||||
var nestedShit:FlxSymbol = new FlxSymbol(x, y, coolParse);
|
|
||||||
nestedShit.frames = frames;
|
nestedShit.frames = frames;
|
||||||
|
|
||||||
var swagMatrix:FlxMatrix = new FlxMatrix(element.SI.M3D[0], element.SI.M3D[1], element.SI.M3D[4], element.SI.M3D[5],
|
var swagMatrix:FlxMatrix = new FlxMatrix(element.SI.M3D[0], element.SI.M3D[1], element.SI.M3D[4], element.SI.M3D[5],
|
||||||
element.SI.M3D[12], element.SI.M3D[13]);
|
element.SI.M3D[12], element.SI.M3D[13]);
|
||||||
|
|
||||||
// _matrix.concat(swagMatrix);
|
|
||||||
|
|
||||||
swagMatrix.concat(_matrix);
|
swagMatrix.concat(_matrix);
|
||||||
|
|
||||||
nestedShit._matrix.concat(swagMatrix);
|
nestedShit._matrix.concat(swagMatrix);
|
||||||
// nestedShit.x = swagMatrix.tx;
|
|
||||||
// nestedShit.y = swagMatrix.ty;
|
|
||||||
|
|
||||||
// nestedShit._skewMatrix.identity();
|
|
||||||
// nestedShit._skewMatrix.concat(swagMatrix);
|
|
||||||
// _matrix.setTo(element.SI.M3D[0], element.SI.M3D[1], element.SI.M3D[4], element.SI.M3D[5], element.SI.M3D[12], element.SI.M3D[13]);
|
|
||||||
|
|
||||||
// nestedShit.scale.x = Math.sqrt(_matrix.a * _matrix.a + _matrix.b + _matrix.b);
|
|
||||||
// nestedShit.scale.y = Math.sqrt(_matrix.a * _matrix.a + _matrix.b * _matrix.b);
|
|
||||||
// nestedShit.origin.set(element.SI.TRP.x, element.SI.TRP.y);
|
|
||||||
|
|
||||||
nestedShit.origin.set(element.SI.TRP.x, element.SI.TRP.y);
|
nestedShit.origin.set(element.SI.TRP.x, element.SI.TRP.y);
|
||||||
// nestedShit.angle += ((180 / Math.PI) * Math.atan2(swagMatrix.b, swagMatrix.a));
|
// nestedShit.angle += ((180 / Math.PI) * Math.atan2(swagMatrix.b, swagMatrix.a));
|
||||||
// nestedShit.angle += angle;
|
// nestedShit.angle += angle;
|
||||||
|
|
49
source/shaderslmfao/BuildingShaders.hx
Normal file
49
source/shaderslmfao/BuildingShaders.hx
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
package shaderslmfao;
|
||||||
|
|
||||||
|
import flixel.system.FlxAssets.FlxShader;
|
||||||
|
|
||||||
|
class BuildingShaders
|
||||||
|
{
|
||||||
|
public var shader(default, null):BuildingShader;
|
||||||
|
public var daAlpha:Float = 1;
|
||||||
|
|
||||||
|
public function new():Void
|
||||||
|
{
|
||||||
|
shader = new BuildingShader();
|
||||||
|
shader.alphaShit.value = [0];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(elapsed:Float):Void
|
||||||
|
{
|
||||||
|
shader.alphaShit.value[0] += elapsed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function reset()
|
||||||
|
{
|
||||||
|
shader.alphaShit.value[0] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class BuildingShader extends FlxShader
|
||||||
|
{
|
||||||
|
@:glFragmentSource('
|
||||||
|
#pragma header
|
||||||
|
|
||||||
|
uniform float alphaShit;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);
|
||||||
|
|
||||||
|
if (color.a > 0.0)
|
||||||
|
color -= alphaShit;
|
||||||
|
|
||||||
|
gl_FragColor = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
')
|
||||||
|
public function new()
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
}
|
|
@ -31,7 +31,7 @@ class OptionsState extends MusicBeatState
|
||||||
var options = addPage(Options, new OptionsMenu(false));
|
var options = addPage(Options, new OptionsMenu(false));
|
||||||
var preferences = addPage(Preferences, new PreferencesMenu());
|
var preferences = addPage(Preferences, new PreferencesMenu());
|
||||||
var controls = addPage(Controls, new ControlsMenu());
|
var controls = addPage(Controls, new ControlsMenu());
|
||||||
var colors = addPage(Colors, new ColorsMenu());
|
// var colors = addPage(Colors, new ColorsMenu());
|
||||||
|
|
||||||
#if cpp
|
#if cpp
|
||||||
var mods = addPage(Mods, new ModMenu());
|
var mods = addPage(Mods, new ModMenu());
|
||||||
|
@ -41,7 +41,7 @@ class OptionsState extends MusicBeatState
|
||||||
{
|
{
|
||||||
options.onExit.add(exitToMainMenu);
|
options.onExit.add(exitToMainMenu);
|
||||||
controls.onExit.add(switchPage.bind(Options));
|
controls.onExit.add(switchPage.bind(Options));
|
||||||
colors.onExit.add(switchPage.bind(Options));
|
// colors.onExit.add(switchPage.bind(Options));
|
||||||
preferences.onExit.add(switchPage.bind(Options));
|
preferences.onExit.add(switchPage.bind(Options));
|
||||||
|
|
||||||
#if cpp
|
#if cpp
|
||||||
|
@ -179,7 +179,7 @@ class OptionsMenu extends Page
|
||||||
add(items = new TextMenuList());
|
add(items = new TextMenuList());
|
||||||
createItem('preferences', function() switchPage(Preferences));
|
createItem('preferences', function() switchPage(Preferences));
|
||||||
createItem("controls", function() switchPage(Controls));
|
createItem("controls", function() switchPage(Controls));
|
||||||
createItem('colors', function() switchPage(Colors));
|
// createItem('colors', function() switchPage(Colors));
|
||||||
#if cpp
|
#if cpp
|
||||||
createItem('mods', function() switchPage(Mods));
|
createItem('mods', function() switchPage(Mods));
|
||||||
#end
|
#end
|
||||||
|
|
|
@ -30,7 +30,7 @@ class PreferencesMenu extends ui.OptionsState.Page
|
||||||
|
|
||||||
add(items = new TextMenuList());
|
add(items = new TextMenuList());
|
||||||
|
|
||||||
createPrefItem('naughtyness', 'censor-naughty', false);
|
createPrefItem('naughtyness', 'censor-naughty', true);
|
||||||
createPrefItem('downscroll', 'downscroll', false);
|
createPrefItem('downscroll', 'downscroll', false);
|
||||||
createPrefItem('flashing menu', 'flashing-menu', true);
|
createPrefItem('flashing menu', 'flashing-menu', true);
|
||||||
createPrefItem('Camera Zooming on Beat', 'camera-zoom', true);
|
createPrefItem('Camera Zooming on Beat', 'camera-zoom', true);
|
||||||
|
@ -65,7 +65,7 @@ class PreferencesMenu extends ui.OptionsState.Page
|
||||||
|
|
||||||
public static function initPrefs():Void
|
public static function initPrefs():Void
|
||||||
{
|
{
|
||||||
preferenceCheck('censor-naughty', false);
|
preferenceCheck('censor-naughty', true);
|
||||||
preferenceCheck('downscroll', false);
|
preferenceCheck('downscroll', false);
|
||||||
preferenceCheck('flashing-menu', true);
|
preferenceCheck('flashing-menu', true);
|
||||||
preferenceCheck('camera-zoom', true);
|
preferenceCheck('camera-zoom', true);
|
||||||
|
|
Loading…
Reference in a new issue