why don't you pull some bitches
pull some bitches
This commit is contained in:
commit
97d4229d0b
@ -224,8 +224,8 @@ class Alphabet extends FlxSpriteGroup
|
|||||||
{
|
{
|
||||||
var scaledY = FlxMath.remapToRange(targetY, 0, 1, 0, 1.3);
|
var scaledY = FlxMath.remapToRange(targetY, 0, 1, 0, 1.3);
|
||||||
|
|
||||||
y = FlxMath.lerp(y, (scaledY * 120) + (FlxG.height * 0.48), 0.16);
|
y = FlxMath.lerp(y, (scaledY * 120) + (FlxG.height * 0.48), 0.30);
|
||||||
x = FlxMath.lerp(x, (targetY * 20) + 90, 0.16);
|
x = FlxMath.lerp(x, (targetY * 20) + 90, 0.30);
|
||||||
}
|
}
|
||||||
|
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import flixel.math.FlxMath;
|
||||||
|
import flixel.FlxCamera;
|
||||||
import flixel.math.FlxPoint;
|
import flixel.math.FlxPoint;
|
||||||
import flixel.FlxObject;
|
import flixel.FlxObject;
|
||||||
#if desktop
|
#if desktop
|
||||||
@ -28,13 +30,23 @@ class GameplayCustomizeState extends MusicBeatState
|
|||||||
var strumLine:FlxSprite;
|
var strumLine:FlxSprite;
|
||||||
var strumLineNotes:FlxTypedGroup<FlxSprite>;
|
var strumLineNotes:FlxTypedGroup<FlxSprite>;
|
||||||
var playerStrums:FlxTypedGroup<FlxSprite>;
|
var playerStrums:FlxTypedGroup<FlxSprite>;
|
||||||
|
private var camHUD:FlxCamera;
|
||||||
override function create() {
|
|
||||||
|
public override function create() {
|
||||||
#if desktop
|
#if desktop
|
||||||
// Updating Discord Rich Presence
|
// Updating Discord Rich Presence
|
||||||
DiscordClient.changePresence("Customizing Gameplay", null);
|
DiscordClient.changePresence("Customizing Gameplay", null);
|
||||||
#end
|
#end
|
||||||
|
|
||||||
|
Conductor.changeBPM(102);
|
||||||
|
persistentUpdate = true;
|
||||||
|
|
||||||
|
super.create();
|
||||||
|
|
||||||
|
camHUD = new FlxCamera();
|
||||||
|
camHUD.bgColor.alpha = 0;
|
||||||
|
FlxG.cameras.add(camHUD);
|
||||||
|
|
||||||
background.scrollFactor.set(0.9,0.9);
|
background.scrollFactor.set(0.9,0.9);
|
||||||
curt.scrollFactor.set(0.9,0.9);
|
curt.scrollFactor.set(0.9,0.9);
|
||||||
front.scrollFactor.set(0.9,0.9);
|
front.scrollFactor.set(0.9,0.9);
|
||||||
@ -43,11 +55,6 @@ class GameplayCustomizeState extends MusicBeatState
|
|||||||
add(front);
|
add(front);
|
||||||
add(curt);
|
add(curt);
|
||||||
|
|
||||||
|
|
||||||
add(sick);
|
|
||||||
|
|
||||||
bf.playAnim('idle');
|
|
||||||
|
|
||||||
var camFollow = new FlxObject(0, 0, 1, 1);
|
var camFollow = new FlxObject(0, 0, 1, 1);
|
||||||
|
|
||||||
dad = new Character(100, 100, 'dad');
|
dad = new Character(100, 100, 'dad');
|
||||||
@ -59,6 +66,8 @@ class GameplayCustomizeState extends MusicBeatState
|
|||||||
add(bf);
|
add(bf);
|
||||||
add(dad);
|
add(dad);
|
||||||
|
|
||||||
|
add(sick);
|
||||||
|
|
||||||
add(camFollow);
|
add(camFollow);
|
||||||
|
|
||||||
FlxG.camera.follow(camFollow, LOCKON, 0.01);
|
FlxG.camera.follow(camFollow, LOCKON, 0.01);
|
||||||
@ -77,9 +86,14 @@ class GameplayCustomizeState extends MusicBeatState
|
|||||||
|
|
||||||
playerStrums = new FlxTypedGroup<FlxSprite>();
|
playerStrums = new FlxTypedGroup<FlxSprite>();
|
||||||
|
|
||||||
|
sick.cameras = [camHUD];
|
||||||
|
strumLine.cameras = [camHUD];
|
||||||
|
playerStrums.cameras = [camHUD];
|
||||||
|
|
||||||
generateStaticArrows(0);
|
generateStaticArrows(0);
|
||||||
generateStaticArrows(1);
|
generateStaticArrows(1);
|
||||||
|
|
||||||
|
|
||||||
if (!FlxG.save.data.changedHit)
|
if (!FlxG.save.data.changedHit)
|
||||||
{
|
{
|
||||||
FlxG.save.data.changedHitX = defaultX;
|
FlxG.save.data.changedHitX = defaultX;
|
||||||
@ -89,12 +103,20 @@ class GameplayCustomizeState extends MusicBeatState
|
|||||||
sick.x = FlxG.save.data.changedHitX;
|
sick.x = FlxG.save.data.changedHitX;
|
||||||
sick.y = FlxG.save.data.changedHitY;
|
sick.y = FlxG.save.data.changedHitY;
|
||||||
|
|
||||||
|
sick.updateHitbox();
|
||||||
|
|
||||||
FlxG.mouse.visible = true;
|
FlxG.mouse.visible = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override function update(elapsed:Float) {
|
override function update(elapsed:Float) {
|
||||||
bf.playAnim('idle');
|
if (FlxG.sound.music != null)
|
||||||
dad.dance();
|
Conductor.songPosition = FlxG.sound.music.time;
|
||||||
|
|
||||||
|
super.update(elapsed);
|
||||||
|
|
||||||
|
FlxG.camera.zoom = FlxMath.lerp(0.9, FlxG.camera.zoom, 0.95);
|
||||||
|
camHUD.zoom = FlxMath.lerp(1, camHUD.zoom, 0.95);
|
||||||
|
|
||||||
if (FlxG.mouse.overlaps(sick) && FlxG.mouse.pressed)
|
if (FlxG.mouse.overlaps(sick) && FlxG.mouse.pressed)
|
||||||
{
|
{
|
||||||
@ -115,6 +137,21 @@ class GameplayCustomizeState extends MusicBeatState
|
|||||||
FlxG.sound.play(Paths.sound('cancelMenu'));
|
FlxG.sound.play(Paths.sound('cancelMenu'));
|
||||||
FlxG.switchState(new OptionsMenu());
|
FlxG.switchState(new OptionsMenu());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override function beatHit()
|
||||||
|
{
|
||||||
|
super.beatHit();
|
||||||
|
|
||||||
|
bf.playAnim('idle');
|
||||||
|
dad.dance();
|
||||||
|
|
||||||
|
FlxG.camera.zoom += 0.015;
|
||||||
|
camHUD.zoom += 0.010;
|
||||||
|
|
||||||
|
trace('beat');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import openfl.Lib;
|
||||||
import flixel.FlxG;
|
import flixel.FlxG;
|
||||||
|
|
||||||
class KadeEngineData
|
class KadeEngineData
|
||||||
@ -37,5 +38,19 @@ class KadeEngineData
|
|||||||
FlxG.save.data.changedHitY = -1;
|
FlxG.save.data.changedHitY = -1;
|
||||||
FlxG.save.data.changedHit = false;
|
FlxG.save.data.changedHit = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (FlxG.save.data.fpsRain == null)
|
||||||
|
FlxG.save.data.fpsRain = false;
|
||||||
|
|
||||||
|
if (FlxG.save.data.fpsCap == null)
|
||||||
|
FlxG.save.data.fpsCap = 120;
|
||||||
|
|
||||||
|
if (FlxG.save.data.fpsCap > 285 || FlxG.save.data.fpsCap < 60)
|
||||||
|
FlxG.save.data.fpsCap = 120; // baby proof so you can't hard lock ur copy of kade engine
|
||||||
|
|
||||||
|
if (FlxG.save.data.scrollSpeed == null)
|
||||||
|
FlxG.save.data.scrollSpeed = 1;
|
||||||
|
|
||||||
|
(cast (Lib.current.getChildAt(0), Main)).setFPSCap(FlxG.save.data.fpsCap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package;
|
package;
|
||||||
|
|
||||||
|
import openfl.display.BlendMode;
|
||||||
|
import openfl.text.TextFormat;
|
||||||
|
import openfl.display.Application;
|
||||||
|
import flixel.util.FlxColor;
|
||||||
import flixel.FlxG;
|
import flixel.FlxG;
|
||||||
import flixel.FlxGame;
|
import flixel.FlxGame;
|
||||||
import flixel.FlxState;
|
import flixel.FlxState;
|
||||||
@ -68,7 +72,9 @@ class Main extends Sprite
|
|||||||
initialState = TitleState;
|
initialState = TitleState;
|
||||||
#end
|
#end
|
||||||
|
|
||||||
addChild(new FlxGame(gameWidth, gameHeight, initialState, zoom, framerate, framerate, skipSplash, startFullscreen));
|
game = new FlxGame(gameWidth, gameHeight, initialState, zoom, framerate, framerate, skipSplash, startFullscreen);
|
||||||
|
|
||||||
|
addChild(game);
|
||||||
|
|
||||||
#if !mobile
|
#if !mobile
|
||||||
fpsCounter = new FPS(10, 3, 0xFFFFFF);
|
fpsCounter = new FPS(10, 3, 0xFFFFFF);
|
||||||
@ -77,9 +83,31 @@ class Main extends Sprite
|
|||||||
#end
|
#end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var game:FlxGame;
|
||||||
|
|
||||||
var fpsCounter:FPS;
|
var fpsCounter:FPS;
|
||||||
|
|
||||||
public function toggleFPS(fpsEnabled:Bool):Void {
|
public function toggleFPS(fpsEnabled:Bool):Void {
|
||||||
fpsCounter.visible = fpsEnabled;
|
fpsCounter.visible = fpsEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function changeFPSColor(color:FlxColor)
|
||||||
|
{
|
||||||
|
fpsCounter.textColor = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setFPSCap(cap:Float)
|
||||||
|
{
|
||||||
|
openfl.Lib.current.stage.frameRate = cap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFPSCap():Float
|
||||||
|
{
|
||||||
|
return openfl.Lib.current.stage.frameRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFPS():Float
|
||||||
|
{
|
||||||
|
return fpsCounter.currentFPS;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,9 @@ class MainMenuState extends MusicBeatState
|
|||||||
var newGaming2:FlxText;
|
var newGaming2:FlxText;
|
||||||
var newInput:Bool = true;
|
var newInput:Bool = true;
|
||||||
|
|
||||||
public static var kadeEngineVer:String = "1.3.1";
|
public static var nightly:String = "-Nightly.2";
|
||||||
|
|
||||||
|
public static var kadeEngineVer:String = "1.3.1" + nightly;
|
||||||
public static var gameVer:String = "0.2.7.1";
|
public static var gameVer:String = "0.2.7.1";
|
||||||
|
|
||||||
var magenta:FlxSprite;
|
var magenta:FlxSprite;
|
||||||
@ -99,7 +101,7 @@ class MainMenuState extends MusicBeatState
|
|||||||
menuItem.antialiasing = true;
|
menuItem.antialiasing = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
FlxG.camera.follow(camFollow, null, 0.06);
|
FlxG.camera.follow(camFollow, null, 0.60 * (60 / FlxG.save.data.fpsCap));
|
||||||
|
|
||||||
var versionShit:FlxText = new FlxText(5, FlxG.height - 18, 0, gameVer + " FNF - " + kadeEngineVer + " Kade Engine", 12);
|
var versionShit:FlxText = new FlxText(5, FlxG.height - 18, 0, gameVer + " FNF - " + kadeEngineVer + " Kade Engine", 12);
|
||||||
versionShit.scrollFactor.set();
|
versionShit.scrollFactor.set();
|
||||||
|
@ -36,7 +36,7 @@ class MenuItem extends FlxSpriteGroup
|
|||||||
override function update(elapsed:Float)
|
override function update(elapsed:Float)
|
||||||
{
|
{
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
y = FlxMath.lerp(y, (targetY * 120) + 480, 0.17);
|
y = FlxMath.lerp(y, (targetY * 120) + 480, 0.17 * (60 / FlxG.save.data.fpsCap));
|
||||||
|
|
||||||
if (isFlashing)
|
if (isFlashing)
|
||||||
flashingInt += 1;
|
flashingInt += 1;
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package;
|
package;
|
||||||
|
|
||||||
|
import flixel.tweens.FlxTween;
|
||||||
|
import flixel.util.FlxColor;
|
||||||
|
import openfl.Lib;
|
||||||
import Conductor.BPMChangeEvent;
|
import Conductor.BPMChangeEvent;
|
||||||
import flixel.FlxG;
|
import flixel.FlxG;
|
||||||
import flixel.addons.transition.FlxTransitionableState;
|
import flixel.addons.transition.FlxTransitionableState;
|
||||||
@ -27,6 +30,18 @@ class MusicBeatState extends FlxUIState
|
|||||||
super.create();
|
super.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var array:Array<FlxColor> = [
|
||||||
|
FlxColor.fromRGB(148, 0, 211),
|
||||||
|
FlxColor.fromRGB(75, 0, 130),
|
||||||
|
FlxColor.fromRGB(0, 0, 255),
|
||||||
|
FlxColor.fromRGB(0, 255, 0),
|
||||||
|
FlxColor.fromRGB(255, 255, 0),
|
||||||
|
FlxColor.fromRGB(255, 127, 0),
|
||||||
|
FlxColor.fromRGB(255, 0 , 0)
|
||||||
|
];
|
||||||
|
|
||||||
|
var skippedFrames = 0;
|
||||||
|
|
||||||
override function update(elapsed:Float)
|
override function update(elapsed:Float)
|
||||||
{
|
{
|
||||||
//everyStep();
|
//everyStep();
|
||||||
@ -38,6 +53,17 @@ class MusicBeatState extends FlxUIState
|
|||||||
if (oldStep != curStep && curStep > 0)
|
if (oldStep != curStep && curStep > 0)
|
||||||
stepHit();
|
stepHit();
|
||||||
|
|
||||||
|
if (FlxG.save.data.fpsRain && skippedFrames >= 6)
|
||||||
|
{
|
||||||
|
if (currentColor >= array.length)
|
||||||
|
currentColor = 0;
|
||||||
|
(cast (Lib.current.getChildAt(0), Main)).changeFPSColor(array[currentColor]);
|
||||||
|
currentColor++;
|
||||||
|
skippedFrames = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
skippedFrames++;
|
||||||
|
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,6 +72,8 @@ class MusicBeatState extends FlxUIState
|
|||||||
curBeat = Math.floor(curStep / 4);
|
curBeat = Math.floor(curStep / 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static var currentColor = 0;
|
||||||
|
|
||||||
private function updateCurStep():Void
|
private function updateCurStep():Void
|
||||||
{
|
{
|
||||||
var lastChange:BPMChangeEvent = {
|
var lastChange:BPMChangeEvent = {
|
||||||
@ -64,6 +92,7 @@ class MusicBeatState extends FlxUIState
|
|||||||
|
|
||||||
public function stepHit():Void
|
public function stepHit():Void
|
||||||
{
|
{
|
||||||
|
|
||||||
if (curStep % 4 == 0)
|
if (curStep % 4 == 0)
|
||||||
beatHit();
|
beatHit();
|
||||||
}
|
}
|
||||||
|
140
source/Note.hx
140
source/Note.hx
@ -63,20 +63,20 @@ class Note extends FlxSprite
|
|||||||
animation.add('redScroll', [7]);
|
animation.add('redScroll', [7]);
|
||||||
animation.add('blueScroll', [5]);
|
animation.add('blueScroll', [5]);
|
||||||
animation.add('purpleScroll', [4]);
|
animation.add('purpleScroll', [4]);
|
||||||
|
|
||||||
animation.add('purplehold', [0]);
|
|
||||||
animation.add('greenhold', [2]);
|
|
||||||
animation.add('redhold', [3]);
|
|
||||||
animation.add('bluehold', [1]);
|
|
||||||
|
|
||||||
if (isSustainNote)
|
if (isSustainNote)
|
||||||
{
|
{
|
||||||
loadGraphic(Paths.image('weeb/pixelUI/arrowEnds'), true, 7, 6);
|
loadGraphic(Paths.image('weeb/pixelUI/arrowEnds'), true, 7, 6);
|
||||||
|
|
||||||
animation.add('purpleholdend', [4]);
|
animation.add('purpleholdend', [4]);
|
||||||
animation.add('greenholdend', [6]);
|
animation.add('greenholdend', [6]);
|
||||||
animation.add('redholdend', [7]);
|
animation.add('redholdend', [7]);
|
||||||
animation.add('blueholdend', [5]);
|
animation.add('blueholdend', [5]);
|
||||||
|
|
||||||
|
animation.add('purplehold', [0]);
|
||||||
|
animation.add('greenhold', [2]);
|
||||||
|
animation.add('redhold', [3]);
|
||||||
|
animation.add('bluehold', [1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
setGraphicSize(Std.int(width * PlayState.daPixelZoom));
|
setGraphicSize(Std.int(width * PlayState.daPixelZoom));
|
||||||
@ -89,17 +89,17 @@ class Note extends FlxSprite
|
|||||||
animation.addByPrefix('redScroll', 'red0');
|
animation.addByPrefix('redScroll', 'red0');
|
||||||
animation.addByPrefix('blueScroll', 'blue0');
|
animation.addByPrefix('blueScroll', 'blue0');
|
||||||
animation.addByPrefix('purpleScroll', 'purple0');
|
animation.addByPrefix('purpleScroll', 'purple0');
|
||||||
|
|
||||||
|
animation.addByPrefix('purpleholdend', 'pruple end hold');
|
||||||
|
animation.addByPrefix('greenholdend', 'green hold end');
|
||||||
|
animation.addByPrefix('redholdend', 'red hold end');
|
||||||
|
animation.addByPrefix('blueholdend', 'blue hold end');
|
||||||
|
|
||||||
animation.addByPrefix('purplehold', 'purple hold piece');
|
animation.addByPrefix('purplehold', 'purple hold piece');
|
||||||
animation.addByPrefix('greenhold', 'green hold piece');
|
animation.addByPrefix('greenhold', 'green hold piece');
|
||||||
animation.addByPrefix('redhold', 'red hold piece');
|
animation.addByPrefix('redhold', 'red hold piece');
|
||||||
animation.addByPrefix('bluehold', 'blue hold piece');
|
animation.addByPrefix('bluehold', 'blue hold piece');
|
||||||
|
|
||||||
animation.addByPrefix('purpleholdend', 'pruple end hold');
|
|
||||||
animation.addByPrefix('greenholdend', 'green hold end');
|
|
||||||
animation.addByPrefix('redholdend', 'red hold end');
|
|
||||||
animation.addByPrefix('blueholdend', 'blue hold end');
|
|
||||||
|
|
||||||
setGraphicSize(Std.int(width * 0.7));
|
setGraphicSize(Std.int(width * 0.7));
|
||||||
updateHitbox();
|
updateHitbox();
|
||||||
antialiasing = true;
|
antialiasing = true;
|
||||||
@ -127,87 +127,71 @@ class Note extends FlxSprite
|
|||||||
if (FlxG.save.data.downscroll && sustainNote)
|
if (FlxG.save.data.downscroll && sustainNote)
|
||||||
flipY = true;
|
flipY = true;
|
||||||
|
|
||||||
|
|
||||||
if (isSustainNote && prevNote != null)
|
if (isSustainNote && prevNote != null)
|
||||||
{
|
|
||||||
noteScore * 0.2;
|
|
||||||
alpha = 0.6;
|
|
||||||
|
|
||||||
x += width / 2;
|
|
||||||
|
|
||||||
switch (noteData)
|
|
||||||
{
|
{
|
||||||
case 2:
|
noteScore * 0.2;
|
||||||
animation.play('greenholdend');
|
alpha = 0.6;
|
||||||
case 3:
|
|
||||||
animation.play('redholdend');
|
x += width / 2;
|
||||||
case 1:
|
|
||||||
animation.play('blueholdend');
|
switch (noteData)
|
||||||
case 0:
|
|
||||||
animation.play('purpleholdend');
|
|
||||||
}
|
|
||||||
|
|
||||||
updateHitbox();
|
|
||||||
|
|
||||||
x -= width / 2;
|
|
||||||
|
|
||||||
if (PlayState.curStage.startsWith('school'))
|
|
||||||
x += 30;
|
|
||||||
|
|
||||||
if (prevNote.isSustainNote)
|
|
||||||
{
|
|
||||||
switch (prevNote.noteData)
|
|
||||||
{
|
{
|
||||||
case 0:
|
|
||||||
prevNote.animation.play('purplehold');
|
|
||||||
case 1:
|
|
||||||
prevNote.animation.play('bluehold');
|
|
||||||
case 2:
|
case 2:
|
||||||
prevNote.animation.play('greenhold');
|
animation.play('greenholdend');
|
||||||
case 3:
|
case 3:
|
||||||
prevNote.animation.play('redhold');
|
animation.play('redholdend');
|
||||||
|
case 1:
|
||||||
|
animation.play('blueholdend');
|
||||||
|
case 0:
|
||||||
|
animation.play('purpleholdend');
|
||||||
|
}
|
||||||
|
|
||||||
|
updateHitbox();
|
||||||
|
|
||||||
|
x -= width / 2;
|
||||||
|
|
||||||
|
if (PlayState.curStage.startsWith('school'))
|
||||||
|
x += 30;
|
||||||
|
|
||||||
|
if (prevNote.isSustainNote)
|
||||||
|
{
|
||||||
|
switch (prevNote.noteData)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
prevNote.animation.play('purplehold');
|
||||||
|
case 1:
|
||||||
|
prevNote.animation.play('bluehold');
|
||||||
|
case 2:
|
||||||
|
prevNote.animation.play('greenhold');
|
||||||
|
case 3:
|
||||||
|
prevNote.animation.play('redhold');
|
||||||
|
}
|
||||||
|
|
||||||
|
prevNote.scale.y *= Conductor.stepCrochet / 100 * 1.5 * PlayState.SONG.speed;
|
||||||
|
prevNote.updateHitbox();
|
||||||
|
// prevNote.setGraphicSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
prevNote.scale.y *= Conductor.stepCrochet / 100 * 1.5 * PlayState.SONG.speed;
|
|
||||||
prevNote.updateHitbox();
|
|
||||||
// prevNote.setGraphicSize();
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var oneTime:Bool = false;
|
||||||
|
|
||||||
override function update(elapsed:Float)
|
override function update(elapsed:Float)
|
||||||
{
|
{
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
|
|
||||||
if (mustPress)
|
if (mustPress)
|
||||||
{
|
{
|
||||||
if (strumTime > Conductor.songPosition - Conductor.safeZoneOffset
|
if ((strumTime > Conductor.songPosition - Conductor.safeZoneOffset
|
||||||
&& strumTime < Conductor.songPosition + Conductor.safeZoneOffset)
|
&& strumTime < Conductor.songPosition + Conductor.safeZoneOffset))
|
||||||
|
{
|
||||||
canBeHit = true;
|
canBeHit = true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
canBeHit = false;
|
canBeHit = false;
|
||||||
|
|
||||||
var noteDiff:Float = Math.abs(strumTime - Conductor.songPosition);
|
if (strumTime < Conductor.songPosition - Conductor.safeZoneOffset && !wasGoodHit)
|
||||||
|
|
||||||
if (canBeHit)
|
|
||||||
{
|
|
||||||
if (noteDiff > Conductor.safeZoneOffset * 0.95)
|
|
||||||
rating = "shit";
|
|
||||||
else if (noteDiff < Conductor.safeZoneOffset * -0.95)
|
|
||||||
rating = "shit";
|
|
||||||
else if (noteDiff > Conductor.safeZoneOffset * 0.70)
|
|
||||||
rating = "bad";
|
|
||||||
else if (noteDiff < Conductor.safeZoneOffset * -0.75)
|
|
||||||
rating = "bad";
|
|
||||||
else if (noteDiff > Conductor.safeZoneOffset * 0.45)
|
|
||||||
rating = "good";
|
|
||||||
else if (noteDiff < Conductor.safeZoneOffset * -0.45)
|
|
||||||
rating = "good";
|
|
||||||
else
|
|
||||||
rating = "sick";
|
|
||||||
FlxG.watch.addQuick("Note " + this.ID,rating);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strumTime < Conductor.songPosition - (Conductor.safeZoneOffset * 0.80) && !wasGoodHit)
|
|
||||||
{
|
{
|
||||||
tooLate = true;
|
tooLate = true;
|
||||||
rating = "shit";
|
rating = "shit";
|
||||||
|
@ -1,23 +1,60 @@
|
|||||||
package;
|
package;
|
||||||
|
|
||||||
|
import flixel.util.FlxColor;
|
||||||
import Controls.KeyboardScheme;
|
import Controls.KeyboardScheme;
|
||||||
import flixel.FlxG;
|
import flixel.FlxG;
|
||||||
import openfl.display.FPS;
|
import openfl.display.FPS;
|
||||||
import openfl.Lib;
|
import openfl.Lib;
|
||||||
|
|
||||||
|
class OptionCatagory
|
||||||
|
{
|
||||||
|
private var _options:Array<Option> = new Array<Option>();
|
||||||
|
public final function getOptions():Array<Option>
|
||||||
|
{
|
||||||
|
return _options;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final function addOption(opt:Option)
|
||||||
|
{
|
||||||
|
_options.push(opt);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public final function removeOption(opt:Option)
|
||||||
|
{
|
||||||
|
_options.remove(opt);
|
||||||
|
}
|
||||||
|
|
||||||
|
private var _name:String = "New Catagory";
|
||||||
|
public final function getName() {
|
||||||
|
return _name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function new (catName:String, options:Array<Option>)
|
||||||
|
{
|
||||||
|
_name = catName;
|
||||||
|
_options = options;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class Option
|
class Option
|
||||||
{
|
{
|
||||||
public function new()
|
public function new()
|
||||||
{
|
{
|
||||||
display = updateDisplay();
|
display = updateDisplay();
|
||||||
}
|
}
|
||||||
|
private var description:String = "";
|
||||||
private var display:String;
|
private var display:String;
|
||||||
public final function getDisplay():String
|
public final function getDisplay():String
|
||||||
{
|
{
|
||||||
return display;
|
return display;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final function getDescription():String
|
||||||
|
{
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
// Returns whether the label is to be updated.
|
// Returns whether the label is to be updated.
|
||||||
public function press():Bool { return throw "stub!"; }
|
public function press():Bool { return throw "stub!"; }
|
||||||
private function updateDisplay():String { return throw "stub!"; }
|
private function updateDisplay():String { return throw "stub!"; }
|
||||||
@ -54,6 +91,12 @@ class DFJKOption extends Option
|
|||||||
|
|
||||||
class DownscrollOption extends Option
|
class DownscrollOption extends Option
|
||||||
{
|
{
|
||||||
|
public function new(desc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
|
|
||||||
public override function press():Bool
|
public override function press():Bool
|
||||||
{
|
{
|
||||||
FlxG.save.data.downscroll = !FlxG.save.data.downscroll;
|
FlxG.save.data.downscroll = !FlxG.save.data.downscroll;
|
||||||
@ -69,6 +112,11 @@ class DownscrollOption extends Option
|
|||||||
|
|
||||||
class AccuracyOption extends Option
|
class AccuracyOption extends Option
|
||||||
{
|
{
|
||||||
|
public function new(desc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
public override function press():Bool
|
public override function press():Bool
|
||||||
{
|
{
|
||||||
FlxG.save.data.accuracyDisplay = !FlxG.save.data.accuracyDisplay;
|
FlxG.save.data.accuracyDisplay = !FlxG.save.data.accuracyDisplay;
|
||||||
@ -84,6 +132,11 @@ class AccuracyOption extends Option
|
|||||||
|
|
||||||
class SongPositionOption extends Option
|
class SongPositionOption extends Option
|
||||||
{
|
{
|
||||||
|
public function new(desc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
public override function press():Bool
|
public override function press():Bool
|
||||||
{
|
{
|
||||||
FlxG.save.data.songPosition = !FlxG.save.data.songPosition;
|
FlxG.save.data.songPosition = !FlxG.save.data.songPosition;
|
||||||
@ -99,6 +152,12 @@ class SongPositionOption extends Option
|
|||||||
|
|
||||||
class EtternaModeOption extends Option
|
class EtternaModeOption extends Option
|
||||||
{
|
{
|
||||||
|
public function new(desc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
|
|
||||||
public override function press():Bool
|
public override function press():Bool
|
||||||
{
|
{
|
||||||
FlxG.save.data.etternaMode = !FlxG.save.data.etternaMode;
|
FlxG.save.data.etternaMode = !FlxG.save.data.etternaMode;
|
||||||
@ -114,6 +173,12 @@ class EtternaModeOption extends Option
|
|||||||
|
|
||||||
class FPSOption extends Option
|
class FPSOption extends Option
|
||||||
{
|
{
|
||||||
|
public function new(desc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
|
|
||||||
public override function press():Bool
|
public override function press():Bool
|
||||||
{
|
{
|
||||||
FlxG.save.data.fps = !FlxG.save.data.fps;
|
FlxG.save.data.fps = !FlxG.save.data.fps;
|
||||||
@ -128,8 +193,76 @@ class FPSOption extends Option
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class FPSCapOption extends Option
|
||||||
|
{
|
||||||
|
public function new(desc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override function press():Bool
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private override function updateDisplay():String
|
||||||
|
{
|
||||||
|
return "FPS Cap";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ScrollSpeedOption extends Option
|
||||||
|
{
|
||||||
|
public function new(desc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override function press():Bool
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private override function updateDisplay():String
|
||||||
|
{
|
||||||
|
return "Scroll Speed";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class RainbowFPSOption extends Option
|
||||||
|
{
|
||||||
|
public function new(desc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override function press():Bool
|
||||||
|
{
|
||||||
|
FlxG.save.data.fpsRain = !FlxG.save.data.fpsRain;
|
||||||
|
(cast (Lib.current.getChildAt(0), Main)).changeFPSColor(FlxColor.WHITE);
|
||||||
|
display = updateDisplay();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private override function updateDisplay():String
|
||||||
|
{
|
||||||
|
return "FPS Rainbow " + (!FlxG.save.data.fpsRain ? "off" : "on");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class ReplayOption extends Option
|
class ReplayOption extends Option
|
||||||
{
|
{
|
||||||
|
public function new(desc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
|
|
||||||
public override function press():Bool
|
public override function press():Bool
|
||||||
{
|
{
|
||||||
trace("switch");
|
trace("switch");
|
||||||
@ -145,6 +278,12 @@ class ReplayOption extends Option
|
|||||||
|
|
||||||
class CustomizeGameplay extends Option
|
class CustomizeGameplay extends Option
|
||||||
{
|
{
|
||||||
|
public function new(desc:String)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
|
|
||||||
public override function press():Bool
|
public override function press():Bool
|
||||||
{
|
{
|
||||||
trace("switch");
|
trace("switch");
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package;
|
package;
|
||||||
|
|
||||||
|
import openfl.Lib;
|
||||||
import Options;
|
import Options;
|
||||||
import Controls.Control;
|
import Controls.Control;
|
||||||
import flash.text.TextField;
|
import flash.text.TextField;
|
||||||
@ -18,21 +19,34 @@ class OptionsMenu extends MusicBeatState
|
|||||||
var selector:FlxText;
|
var selector:FlxText;
|
||||||
var curSelected:Int = 0;
|
var curSelected:Int = 0;
|
||||||
|
|
||||||
var options:Array<Option> = [
|
var options:Array<OptionCatagory> = [
|
||||||
new DFJKOption(controls),
|
new OptionCatagory("Gameplay", [
|
||||||
new DownscrollOption(),
|
new DFJKOption(controls),
|
||||||
new AccuracyOption(),
|
new FPSCapOption("Cap your FPS (Left for -10, Right for -10)"),
|
||||||
new SongPositionOption(),
|
new CustomizeGameplay("Drag'n'Drop Gameplay Modules around to your preference"),
|
||||||
#if !mobile
|
new ScrollSpeedOption("Change your scroll speed (Left for -0.1, right for +0.1. If its at 1, it will be chart dependent)")
|
||||||
new FPSOption(),
|
]),
|
||||||
#end
|
new OptionCatagory("Appearence", [
|
||||||
new EtternaModeOption(),
|
new SongPositionOption("Show the songs current position (as a bar)"),
|
||||||
new CustomizeGameplay(),
|
new DownscrollOption("Change the layout of the strumline."),
|
||||||
new ReplayOption()
|
new RainbowFPSOption("Make the FPS Counter Rainbow (Only works with the FPS Counter toggeled on)"),
|
||||||
|
new AccuracyOption("Display accuracy information.")
|
||||||
|
]),
|
||||||
|
new OptionCatagory("Misc", [
|
||||||
|
new EtternaModeOption("Harder Hit Windows and a different scoring system."),
|
||||||
|
#if !mobile
|
||||||
|
new FPSOption("Toggle the FPS Counter"),
|
||||||
|
#end
|
||||||
|
new ReplayOption("View replays")
|
||||||
|
])
|
||||||
];
|
];
|
||||||
|
|
||||||
|
private var currentDescription:String = "";
|
||||||
private var grpControls:FlxTypedGroup<Alphabet>;
|
private var grpControls:FlxTypedGroup<Alphabet>;
|
||||||
var versionShit:FlxText;
|
var versionShit:FlxText;
|
||||||
|
|
||||||
|
var currentSelectedCat:OptionCatagory;
|
||||||
|
|
||||||
override function create()
|
override function create()
|
||||||
{
|
{
|
||||||
var menuBG:FlxSprite = new FlxSprite().loadGraphic(Paths.image("menuDesat"));
|
var menuBG:FlxSprite = new FlxSprite().loadGraphic(Paths.image("menuDesat"));
|
||||||
@ -49,15 +63,16 @@ class OptionsMenu extends MusicBeatState
|
|||||||
|
|
||||||
for (i in 0...options.length)
|
for (i in 0...options.length)
|
||||||
{
|
{
|
||||||
var controlLabel:Alphabet = new Alphabet(0, (70 * i) + 30, options[i].getDisplay(), true, false);
|
var controlLabel:Alphabet = new Alphabet(0, (70 * i) + 30, options[i].getName(), true, false);
|
||||||
controlLabel.isMenuItem = true;
|
controlLabel.isMenuItem = true;
|
||||||
controlLabel.targetY = i;
|
controlLabel.targetY = i;
|
||||||
grpControls.add(controlLabel);
|
grpControls.add(controlLabel);
|
||||||
// DONT PUT X IN THE FIRST PARAMETER OF new ALPHABET() !!
|
// DONT PUT X IN THE FIRST PARAMETER OF new ALPHABET() !!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
currentDescription = "none";
|
||||||
|
|
||||||
versionShit = new FlxText(5, FlxG.height - 18, 0, "Offset (Left, Right): " + FlxG.save.data.offset, 12);
|
versionShit = new FlxText(5, FlxG.height - 18, 0, "Offset (Left, Right): " + FlxG.save.data.offset + " - Description - " + currentDescription, 12);
|
||||||
versionShit.scrollFactor.set();
|
versionShit.scrollFactor.set();
|
||||||
versionShit.setFormat("VCR OSD Mono", 16, FlxColor.WHITE, LEFT, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK);
|
versionShit.setFormat("VCR OSD Mono", 16, FlxColor.WHITE, LEFT, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK);
|
||||||
add(versionShit);
|
add(versionShit);
|
||||||
@ -65,37 +80,118 @@ class OptionsMenu extends MusicBeatState
|
|||||||
super.create();
|
super.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var isCat:Bool = false;
|
||||||
|
|
||||||
override function update(elapsed:Float)
|
override function update(elapsed:Float)
|
||||||
{
|
{
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
|
|
||||||
if (controls.BACK)
|
if (controls.BACK && !isCat)
|
||||||
FlxG.switchState(new MainMenuState());
|
FlxG.switchState(new MainMenuState());
|
||||||
|
else if (controls.BACK)
|
||||||
|
{
|
||||||
|
isCat = false;
|
||||||
|
grpControls.clear();
|
||||||
|
for (i in 0...options.length)
|
||||||
|
{
|
||||||
|
var controlLabel:Alphabet = new Alphabet(0, (70 * i) + 30, options[i].getName(), true, false);
|
||||||
|
controlLabel.isMenuItem = true;
|
||||||
|
controlLabel.targetY = i;
|
||||||
|
grpControls.add(controlLabel);
|
||||||
|
// DONT PUT X IN THE FIRST PARAMETER OF new ALPHABET() !!
|
||||||
|
}
|
||||||
|
curSelected = 0;
|
||||||
|
}
|
||||||
if (controls.UP_P)
|
if (controls.UP_P)
|
||||||
changeSelection(-1);
|
changeSelection(-1);
|
||||||
if (controls.DOWN_P)
|
if (controls.DOWN_P)
|
||||||
changeSelection(1);
|
changeSelection(1);
|
||||||
|
|
||||||
if (controls.RIGHT_R)
|
if (isCat)
|
||||||
{
|
{
|
||||||
FlxG.save.data.offset++;
|
switch(currentSelectedCat.getOptions()[curSelected].getDisplay())
|
||||||
versionShit.text = "Offset (Left, Right): " + FlxG.save.data.offset;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (controls.LEFT_R)
|
|
||||||
{
|
{
|
||||||
FlxG.save.data.offset--;
|
case 'FPS Cap':
|
||||||
versionShit.text = "Offset (Left, Right): " + FlxG.save.data.offset;
|
var fps = (cast (Lib.current.getChildAt(0), Main)).getFPSCap();
|
||||||
|
|
||||||
|
if (FlxG.keys.pressed.RIGHT && fps < 285) // actual cap is 285
|
||||||
|
{
|
||||||
|
(cast (Lib.current.getChildAt(0), Main)).setFPSCap(fps + 10);
|
||||||
|
FlxG.save.data.fpsCap = fps + 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (FlxG.keys.pressed.LEFT && fps > 60)
|
||||||
|
{
|
||||||
|
(cast (Lib.current.getChildAt(0), Main)).setFPSCap(fps - 10);
|
||||||
|
FlxG.save.data.fpsCap = fps - 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
versionShit.text = "Current FPS Cap: " + fps + " - Description - " + currentDescription;
|
||||||
|
|
||||||
|
|
||||||
|
case 'Scroll Speed':
|
||||||
|
if (FlxG.keys.justPressed.RIGHT)
|
||||||
|
FlxG.save.data.scrollSpeed+=0.1;
|
||||||
|
|
||||||
|
if (FlxG.keys.justPressed.LEFT)
|
||||||
|
FlxG.save.data.scrollSpeed-=0.1;
|
||||||
|
|
||||||
|
// caps
|
||||||
|
|
||||||
|
if (FlxG.save.data.scrollSpeed < 0)
|
||||||
|
FlxG.save.data.scrollSpeed = 0.1;
|
||||||
|
|
||||||
|
if (FlxG.save.data.scrollSpeed > 10)
|
||||||
|
FlxG.save.data.scrollSpeed = 10;
|
||||||
|
|
||||||
|
versionShit.text = "Current Scroll Speed: " + FlxG.save.data.scrollSpeed + " - Description - " + currentDescription;
|
||||||
|
default:
|
||||||
|
if (FlxG.keys.pressed.RIGHT)
|
||||||
|
FlxG.save.data.offset++;
|
||||||
|
|
||||||
|
if (FlxG.keys.pressed.LEFT)
|
||||||
|
FlxG.save.data.offset--;
|
||||||
|
|
||||||
|
versionShit.text = "Offset (Left, Right): " + FlxG.save.data.offset + " - Description - " + currentDescription;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (FlxG.keys.pressed.RIGHT)
|
||||||
|
FlxG.save.data.offset++;
|
||||||
|
|
||||||
|
if (FlxG.keys.pressed.LEFT)
|
||||||
|
FlxG.save.data.offset--;
|
||||||
|
|
||||||
|
versionShit.text = "Offset (Left, Right): " + FlxG.save.data.offset + " - Description - " + currentDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (controls.ACCEPT)
|
if (controls.ACCEPT)
|
||||||
{
|
{
|
||||||
if (options[curSelected].press()) {
|
if (isCat)
|
||||||
grpControls.remove(grpControls.members[curSelected]);
|
{
|
||||||
var ctrl:Alphabet = new Alphabet(0, (70 * curSelected) + 30, options[curSelected].getDisplay(), true, false);
|
if (currentSelectedCat.getOptions()[curSelected].press()) {
|
||||||
ctrl.isMenuItem = true;
|
grpControls.remove(grpControls.members[curSelected]);
|
||||||
grpControls.add(ctrl);
|
var ctrl:Alphabet = new Alphabet(0, (70 * curSelected) + 30, currentSelectedCat.getOptions()[curSelected].getDisplay(), true, false);
|
||||||
|
ctrl.isMenuItem = true;
|
||||||
|
grpControls.add(ctrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
currentSelectedCat = options[curSelected];
|
||||||
|
isCat = true;
|
||||||
|
grpControls.clear();
|
||||||
|
for (i in 0...currentSelectedCat.getOptions().length)
|
||||||
|
{
|
||||||
|
var controlLabel:Alphabet = new Alphabet(0, (70 * i) + 30, currentSelectedCat.getOptions()[i].getDisplay(), true, false);
|
||||||
|
controlLabel.isMenuItem = true;
|
||||||
|
controlLabel.targetY = i;
|
||||||
|
grpControls.add(controlLabel);
|
||||||
|
// DONT PUT X IN THE FIRST PARAMETER OF new ALPHABET() !!
|
||||||
|
}
|
||||||
|
curSelected = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FlxG.save.flush();
|
FlxG.save.flush();
|
||||||
@ -118,6 +214,12 @@ class OptionsMenu extends MusicBeatState
|
|||||||
if (curSelected >= grpControls.length)
|
if (curSelected >= grpControls.length)
|
||||||
curSelected = 0;
|
curSelected = 0;
|
||||||
|
|
||||||
|
if (isCat)
|
||||||
|
currentDescription = currentSelectedCat.getOptions()[curSelected].getDescription();
|
||||||
|
else
|
||||||
|
currentDescription = "Please select a catagory";
|
||||||
|
versionShit.text = "Offset (Left, Right): " + FlxG.save.data.offset + " - Description - " + currentDescription;
|
||||||
|
|
||||||
// selector.y = (70 * curSelected) + 30;
|
// selector.y = (70 * curSelected) + 30;
|
||||||
|
|
||||||
var bullShit:Int = 0;
|
var bullShit:Int = 0;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package;
|
package;
|
||||||
|
|
||||||
|
import openfl.Lib;
|
||||||
import Section.SwagSection;
|
import Section.SwagSection;
|
||||||
import Song.SwagSong;
|
import Song.SwagSong;
|
||||||
import WiggleEffect.WiggleEffectType;
|
import WiggleEffect.WiggleEffectType;
|
||||||
@ -65,6 +66,8 @@ class PlayState extends MusicBeatState
|
|||||||
public static var rep:Replay;
|
public static var rep:Replay;
|
||||||
public static var loadRep:Bool = false;
|
public static var loadRep:Bool = false;
|
||||||
|
|
||||||
|
public static var noteBools:Array<Bool> = [false, false, false, false];
|
||||||
|
|
||||||
var halloweenLevel:Bool = false;
|
var halloweenLevel:Bool = false;
|
||||||
|
|
||||||
var songLength:Float = 0;
|
var songLength:Float = 0;
|
||||||
@ -275,345 +278,341 @@ class PlayState extends MusicBeatState
|
|||||||
dialogue = CoolUtil.coolTextFile(Paths.txt('thorns/thornsDialogue'));
|
dialogue = CoolUtil.coolTextFile(Paths.txt('thorns/thornsDialogue'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SONG.song.toLowerCase() == 'spookeez' || SONG.song.toLowerCase() == 'monster' || SONG.song.toLowerCase() == 'south')
|
switch(SONG.song.toLowerCase())
|
||||||
{
|
{
|
||||||
curStage = "spooky";
|
case 'spookeez' | 'monster' | 'south':
|
||||||
halloweenLevel = true;
|
|
||||||
|
|
||||||
var hallowTex = Paths.getSparrowAtlas('halloween_bg');
|
|
||||||
|
|
||||||
halloweenBG = new FlxSprite(-200, -100);
|
|
||||||
halloweenBG.frames = hallowTex;
|
|
||||||
halloweenBG.animation.addByPrefix('idle', 'halloweem bg0');
|
|
||||||
halloweenBG.animation.addByPrefix('lightning', 'halloweem bg lightning strike', 24, false);
|
|
||||||
halloweenBG.animation.play('idle');
|
|
||||||
halloweenBG.antialiasing = true;
|
|
||||||
add(halloweenBG);
|
|
||||||
|
|
||||||
isHalloween = true;
|
|
||||||
}
|
|
||||||
else if (SONG.song.toLowerCase() == 'pico' || SONG.song.toLowerCase() == 'blammed' || SONG.song.toLowerCase() == 'philly')
|
|
||||||
{
|
|
||||||
curStage = 'philly';
|
|
||||||
|
|
||||||
var bg:FlxSprite = new FlxSprite(-100).loadGraphic(Paths.image('philly/sky'));
|
|
||||||
bg.scrollFactor.set(0.1, 0.1);
|
|
||||||
add(bg);
|
|
||||||
|
|
||||||
var city:FlxSprite = new FlxSprite(-10).loadGraphic(Paths.image('philly/city'));
|
|
||||||
city.scrollFactor.set(0.3, 0.3);
|
|
||||||
city.setGraphicSize(Std.int(city.width * 0.85));
|
|
||||||
city.updateHitbox();
|
|
||||||
add(city);
|
|
||||||
|
|
||||||
phillyCityLights = new FlxTypedGroup<FlxSprite>();
|
|
||||||
add(phillyCityLights);
|
|
||||||
|
|
||||||
for (i in 0...5)
|
|
||||||
{
|
{
|
||||||
var light:FlxSprite = new FlxSprite(city.x).loadGraphic(Paths.image('philly/win' + i));
|
curStage = 'spooky';
|
||||||
light.scrollFactor.set(0.3, 0.3);
|
halloweenLevel = true;
|
||||||
light.visible = false;
|
|
||||||
light.setGraphicSize(Std.int(light.width * 0.85));
|
var hallowTex = Paths.getSparrowAtlas('halloween_bg');
|
||||||
light.updateHitbox();
|
|
||||||
light.antialiasing = true;
|
halloweenBG = new FlxSprite(-200, -100);
|
||||||
phillyCityLights.add(light);
|
halloweenBG.frames = hallowTex;
|
||||||
|
halloweenBG.animation.addByPrefix('idle', 'halloweem bg0');
|
||||||
|
halloweenBG.animation.addByPrefix('lightning', 'halloweem bg lightning strike', 24, false);
|
||||||
|
halloweenBG.animation.play('idle');
|
||||||
|
halloweenBG.antialiasing = true;
|
||||||
|
add(halloweenBG);
|
||||||
|
|
||||||
|
isHalloween = true;
|
||||||
}
|
}
|
||||||
|
case 'pico' | 'blammed' | 'philly':
|
||||||
|
{
|
||||||
|
curStage = 'philly';
|
||||||
|
|
||||||
var streetBehind:FlxSprite = new FlxSprite(-40, 50).loadGraphic(Paths.image('philly/behindTrain'));
|
var bg:FlxSprite = new FlxSprite(-100).loadGraphic(Paths.image('philly/sky'));
|
||||||
add(streetBehind);
|
bg.scrollFactor.set(0.1, 0.1);
|
||||||
|
add(bg);
|
||||||
|
|
||||||
phillyTrain = new FlxSprite(2000, 360).loadGraphic(Paths.image('philly/train'));
|
var city:FlxSprite = new FlxSprite(-10).loadGraphic(Paths.image('philly/city'));
|
||||||
add(phillyTrain);
|
city.scrollFactor.set(0.3, 0.3);
|
||||||
|
city.setGraphicSize(Std.int(city.width * 0.85));
|
||||||
|
city.updateHitbox();
|
||||||
|
add(city);
|
||||||
|
|
||||||
trainSound = new FlxSound().loadEmbedded(Paths.sound('train_passes'));
|
phillyCityLights = new FlxTypedGroup<FlxSprite>();
|
||||||
FlxG.sound.list.add(trainSound);
|
add(phillyCityLights);
|
||||||
|
|
||||||
// var cityLights:FlxSprite = new FlxSprite().loadGraphic(AssetPaths.win0.png);
|
for (i in 0...5)
|
||||||
|
{
|
||||||
|
var light:FlxSprite = new FlxSprite(city.x).loadGraphic(Paths.image('philly/win' + i));
|
||||||
|
light.scrollFactor.set(0.3, 0.3);
|
||||||
|
light.visible = false;
|
||||||
|
light.setGraphicSize(Std.int(light.width * 0.85));
|
||||||
|
light.updateHitbox();
|
||||||
|
light.antialiasing = true;
|
||||||
|
phillyCityLights.add(light);
|
||||||
|
}
|
||||||
|
|
||||||
var street:FlxSprite = new FlxSprite(-40, streetBehind.y).loadGraphic(Paths.image('philly/street'));
|
var streetBehind:FlxSprite = new FlxSprite(-40, 50).loadGraphic(Paths.image('philly/behindTrain'));
|
||||||
add(street);
|
add(streetBehind);
|
||||||
}
|
|
||||||
else if (SONG.song.toLowerCase() == 'milf' || SONG.song.toLowerCase() == 'satin-panties' || SONG.song.toLowerCase() == 'high')
|
|
||||||
{
|
|
||||||
curStage = 'limo';
|
|
||||||
defaultCamZoom = 0.90;
|
|
||||||
|
|
||||||
var skyBG:FlxSprite = new FlxSprite(-120, -50).loadGraphic(Paths.image('limo/limoSunset'));
|
phillyTrain = new FlxSprite(2000, 360).loadGraphic(Paths.image('philly/train'));
|
||||||
skyBG.scrollFactor.set(0.1, 0.1);
|
add(phillyTrain);
|
||||||
add(skyBG);
|
|
||||||
|
|
||||||
var bgLimo:FlxSprite = new FlxSprite(-200, 480);
|
trainSound = new FlxSound().loadEmbedded(Paths.sound('train_passes'));
|
||||||
bgLimo.frames = Paths.getSparrowAtlas('limo/bgLimo');
|
FlxG.sound.list.add(trainSound);
|
||||||
bgLimo.animation.addByPrefix('drive', "background limo pink", 24);
|
|
||||||
bgLimo.animation.play('drive');
|
|
||||||
bgLimo.scrollFactor.set(0.4, 0.4);
|
|
||||||
add(bgLimo);
|
|
||||||
|
|
||||||
grpLimoDancers = new FlxTypedGroup<BackgroundDancer>();
|
// var cityLights:FlxSprite = new FlxSprite().loadGraphic(AssetPaths.win0.png);
|
||||||
add(grpLimoDancers);
|
|
||||||
|
|
||||||
for (i in 0...5)
|
var street:FlxSprite = new FlxSprite(-40, streetBehind.y).loadGraphic(Paths.image('philly/street'));
|
||||||
|
add(street);
|
||||||
|
}
|
||||||
|
case 'milf' | 'satin-panties' | 'high':
|
||||||
{
|
{
|
||||||
var dancer:BackgroundDancer = new BackgroundDancer((370 * i) + 130, bgLimo.y - 400);
|
curStage = 'limo';
|
||||||
dancer.scrollFactor.set(0.4, 0.4);
|
defaultCamZoom = 0.90;
|
||||||
grpLimoDancers.add(dancer);
|
|
||||||
|
var skyBG:FlxSprite = new FlxSprite(-120, -50).loadGraphic(Paths.image('limo/limoSunset'));
|
||||||
|
skyBG.scrollFactor.set(0.1, 0.1);
|
||||||
|
add(skyBG);
|
||||||
|
|
||||||
|
var bgLimo:FlxSprite = new FlxSprite(-200, 480);
|
||||||
|
bgLimo.frames = Paths.getSparrowAtlas('limo/bgLimo');
|
||||||
|
bgLimo.animation.addByPrefix('drive', "background limo pink", 24);
|
||||||
|
bgLimo.animation.play('drive');
|
||||||
|
bgLimo.scrollFactor.set(0.4, 0.4);
|
||||||
|
add(bgLimo);
|
||||||
|
|
||||||
|
grpLimoDancers = new FlxTypedGroup<BackgroundDancer>();
|
||||||
|
add(grpLimoDancers);
|
||||||
|
|
||||||
|
for (i in 0...5)
|
||||||
|
{
|
||||||
|
var dancer:BackgroundDancer = new BackgroundDancer((370 * i) + 130, bgLimo.y - 400);
|
||||||
|
dancer.scrollFactor.set(0.4, 0.4);
|
||||||
|
grpLimoDancers.add(dancer);
|
||||||
|
}
|
||||||
|
|
||||||
|
var overlayShit:FlxSprite = new FlxSprite(-500, -600).loadGraphic(Paths.image('limo/limoOverlay'));
|
||||||
|
overlayShit.alpha = 0.5;
|
||||||
|
// add(overlayShit);
|
||||||
|
|
||||||
|
// var shaderBullshit = new BlendModeEffect(new OverlayShader(), FlxColor.RED);
|
||||||
|
|
||||||
|
// FlxG.camera.setFilters([new ShaderFilter(cast shaderBullshit.shader)]);
|
||||||
|
|
||||||
|
// overlayShit.shader = shaderBullshit;
|
||||||
|
|
||||||
|
var limoTex = Paths.getSparrowAtlas('limo/limoDrive');
|
||||||
|
|
||||||
|
limo = new FlxSprite(-120, 550);
|
||||||
|
limo.frames = limoTex;
|
||||||
|
limo.animation.addByPrefix('drive', "Limo stage", 24);
|
||||||
|
limo.animation.play('drive');
|
||||||
|
limo.antialiasing = true;
|
||||||
|
|
||||||
|
fastCar = new FlxSprite(-300, 160).loadGraphic(Paths.image('limo/fastCarLol'));
|
||||||
|
// add(limo);
|
||||||
}
|
}
|
||||||
|
case 'cocoa' | 'eggnog':
|
||||||
var overlayShit:FlxSprite = new FlxSprite(-500, -600).loadGraphic(Paths.image('limo/limoOverlay'));
|
|
||||||
overlayShit.alpha = 0.5;
|
|
||||||
// add(overlayShit);
|
|
||||||
|
|
||||||
// var shaderBullshit = new BlendModeEffect(new OverlayShader(), FlxColor.RED);
|
|
||||||
|
|
||||||
// FlxG.camera.setFilters([new ShaderFilter(cast shaderBullshit.shader)]);
|
|
||||||
|
|
||||||
// overlayShit.shader = shaderBullshit;
|
|
||||||
|
|
||||||
var limoTex = Paths.getSparrowAtlas('limo/limoDrive');
|
|
||||||
|
|
||||||
limo = new FlxSprite(-120, 550);
|
|
||||||
limo.frames = limoTex;
|
|
||||||
limo.animation.addByPrefix('drive', "Limo stage", 24);
|
|
||||||
limo.animation.play('drive');
|
|
||||||
limo.antialiasing = true;
|
|
||||||
|
|
||||||
fastCar = new FlxSprite(-300, 160).loadGraphic(Paths.image('limo/fastCarLol'));
|
|
||||||
// add(limo);
|
|
||||||
}
|
|
||||||
else if (SONG.song.toLowerCase() == 'cocoa' || SONG.song.toLowerCase() == 'eggnog')
|
|
||||||
{
|
|
||||||
curStage = 'mall';
|
|
||||||
|
|
||||||
defaultCamZoom = 0.80;
|
|
||||||
|
|
||||||
var bg:FlxSprite = new FlxSprite(-1000, -500).loadGraphic(Paths.image('christmas/bgWalls'));
|
|
||||||
bg.antialiasing = true;
|
|
||||||
bg.scrollFactor.set(0.2, 0.2);
|
|
||||||
bg.active = false;
|
|
||||||
bg.setGraphicSize(Std.int(bg.width * 0.8));
|
|
||||||
bg.updateHitbox();
|
|
||||||
add(bg);
|
|
||||||
|
|
||||||
upperBoppers = new FlxSprite(-240, -90);
|
|
||||||
upperBoppers.frames = Paths.getSparrowAtlas('christmas/upperBop');
|
|
||||||
upperBoppers.animation.addByPrefix('bop', "Upper Crowd Bob", 24, false);
|
|
||||||
upperBoppers.antialiasing = true;
|
|
||||||
upperBoppers.scrollFactor.set(0.33, 0.33);
|
|
||||||
upperBoppers.setGraphicSize(Std.int(upperBoppers.width * 0.85));
|
|
||||||
upperBoppers.updateHitbox();
|
|
||||||
add(upperBoppers);
|
|
||||||
|
|
||||||
var bgEscalator:FlxSprite = new FlxSprite(-1100, -600).loadGraphic(Paths.image('christmas/bgEscalator'));
|
|
||||||
bgEscalator.antialiasing = true;
|
|
||||||
bgEscalator.scrollFactor.set(0.3, 0.3);
|
|
||||||
bgEscalator.active = false;
|
|
||||||
bgEscalator.setGraphicSize(Std.int(bgEscalator.width * 0.9));
|
|
||||||
bgEscalator.updateHitbox();
|
|
||||||
add(bgEscalator);
|
|
||||||
|
|
||||||
var tree:FlxSprite = new FlxSprite(370, -250).loadGraphic(Paths.image('christmas/christmasTree'));
|
|
||||||
tree.antialiasing = true;
|
|
||||||
tree.scrollFactor.set(0.40, 0.40);
|
|
||||||
add(tree);
|
|
||||||
|
|
||||||
bottomBoppers = new FlxSprite(-300, 140);
|
|
||||||
bottomBoppers.frames = Paths.getSparrowAtlas('christmas/bottomBop');
|
|
||||||
bottomBoppers.animation.addByPrefix('bop', 'Bottom Level Boppers', 24, false);
|
|
||||||
bottomBoppers.antialiasing = true;
|
|
||||||
bottomBoppers.scrollFactor.set(0.9, 0.9);
|
|
||||||
bottomBoppers.setGraphicSize(Std.int(bottomBoppers.width * 1));
|
|
||||||
bottomBoppers.updateHitbox();
|
|
||||||
add(bottomBoppers);
|
|
||||||
|
|
||||||
var fgSnow:FlxSprite = new FlxSprite(-600, 700).loadGraphic(Paths.image('christmas/fgSnow'));
|
|
||||||
fgSnow.active = false;
|
|
||||||
fgSnow.antialiasing = true;
|
|
||||||
add(fgSnow);
|
|
||||||
|
|
||||||
santa = new FlxSprite(-840, 150);
|
|
||||||
santa.frames = Paths.getSparrowAtlas('christmas/santa');
|
|
||||||
santa.animation.addByPrefix('idle', 'santa idle in fear', 24, false);
|
|
||||||
santa.antialiasing = true;
|
|
||||||
add(santa);
|
|
||||||
}
|
|
||||||
else if (SONG.song.toLowerCase() == 'winter-horrorland')
|
|
||||||
{
|
|
||||||
curStage = 'mallEvil';
|
|
||||||
var bg:FlxSprite = new FlxSprite(-400, -500).loadGraphic(Paths.image('christmas/evilBG'));
|
|
||||||
bg.antialiasing = true;
|
|
||||||
bg.scrollFactor.set(0.2, 0.2);
|
|
||||||
bg.active = false;
|
|
||||||
bg.setGraphicSize(Std.int(bg.width * 0.8));
|
|
||||||
bg.updateHitbox();
|
|
||||||
add(bg);
|
|
||||||
|
|
||||||
var evilTree:FlxSprite = new FlxSprite(300, -300).loadGraphic(Paths.image('christmas/evilTree'));
|
|
||||||
evilTree.antialiasing = true;
|
|
||||||
evilTree.scrollFactor.set(0.2, 0.2);
|
|
||||||
add(evilTree);
|
|
||||||
|
|
||||||
var evilSnow:FlxSprite = new FlxSprite(-200, 700).loadGraphic(Paths.image("christmas/evilSnow"));
|
|
||||||
evilSnow.antialiasing = true;
|
|
||||||
add(evilSnow);
|
|
||||||
}
|
|
||||||
else if (SONG.song.toLowerCase() == 'senpai' || SONG.song.toLowerCase() == 'roses')
|
|
||||||
{
|
|
||||||
curStage = 'school';
|
|
||||||
|
|
||||||
// defaultCamZoom = 0.9;
|
|
||||||
|
|
||||||
var bgSky = new FlxSprite().loadGraphic(Paths.image('weeb/weebSky'));
|
|
||||||
bgSky.scrollFactor.set(0.1, 0.1);
|
|
||||||
add(bgSky);
|
|
||||||
|
|
||||||
var repositionShit = -200;
|
|
||||||
|
|
||||||
var bgSchool:FlxSprite = new FlxSprite(repositionShit, 0).loadGraphic(Paths.image('weeb/weebSchool'));
|
|
||||||
bgSchool.scrollFactor.set(0.6, 0.90);
|
|
||||||
add(bgSchool);
|
|
||||||
|
|
||||||
var bgStreet:FlxSprite = new FlxSprite(repositionShit).loadGraphic(Paths.image('weeb/weebStreet'));
|
|
||||||
bgStreet.scrollFactor.set(0.95, 0.95);
|
|
||||||
add(bgStreet);
|
|
||||||
|
|
||||||
var fgTrees:FlxSprite = new FlxSprite(repositionShit + 170, 130).loadGraphic(Paths.image('weeb/weebTreesBack'));
|
|
||||||
fgTrees.scrollFactor.set(0.9, 0.9);
|
|
||||||
add(fgTrees);
|
|
||||||
|
|
||||||
var bgTrees:FlxSprite = new FlxSprite(repositionShit - 380, -800);
|
|
||||||
var treetex = Paths.getPackerAtlas('weeb/weebTrees');
|
|
||||||
bgTrees.frames = treetex;
|
|
||||||
bgTrees.animation.add('treeLoop', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], 12);
|
|
||||||
bgTrees.animation.play('treeLoop');
|
|
||||||
bgTrees.scrollFactor.set(0.85, 0.85);
|
|
||||||
add(bgTrees);
|
|
||||||
|
|
||||||
var treeLeaves:FlxSprite = new FlxSprite(repositionShit, -40);
|
|
||||||
treeLeaves.frames = Paths.getSparrowAtlas('weeb/petals');
|
|
||||||
treeLeaves.animation.addByPrefix('leaves', 'PETALS ALL', 24, true);
|
|
||||||
treeLeaves.animation.play('leaves');
|
|
||||||
treeLeaves.scrollFactor.set(0.85, 0.85);
|
|
||||||
add(treeLeaves);
|
|
||||||
|
|
||||||
var widShit = Std.int(bgSky.width * 6);
|
|
||||||
|
|
||||||
bgSky.setGraphicSize(widShit);
|
|
||||||
bgSchool.setGraphicSize(widShit);
|
|
||||||
bgStreet.setGraphicSize(widShit);
|
|
||||||
bgTrees.setGraphicSize(Std.int(widShit * 1.4));
|
|
||||||
fgTrees.setGraphicSize(Std.int(widShit * 0.8));
|
|
||||||
treeLeaves.setGraphicSize(widShit);
|
|
||||||
|
|
||||||
fgTrees.updateHitbox();
|
|
||||||
bgSky.updateHitbox();
|
|
||||||
bgSchool.updateHitbox();
|
|
||||||
bgStreet.updateHitbox();
|
|
||||||
bgTrees.updateHitbox();
|
|
||||||
treeLeaves.updateHitbox();
|
|
||||||
|
|
||||||
bgGirls = new BackgroundGirls(-100, 190);
|
|
||||||
bgGirls.scrollFactor.set(0.9, 0.9);
|
|
||||||
|
|
||||||
if (SONG.song.toLowerCase() == 'roses')
|
|
||||||
{
|
{
|
||||||
bgGirls.getScared();
|
curStage = 'mall';
|
||||||
|
|
||||||
|
defaultCamZoom = 0.80;
|
||||||
|
|
||||||
|
var bg:FlxSprite = new FlxSprite(-1000, -500).loadGraphic(Paths.image('christmas/bgWalls'));
|
||||||
|
bg.antialiasing = true;
|
||||||
|
bg.scrollFactor.set(0.2, 0.2);
|
||||||
|
bg.active = false;
|
||||||
|
bg.setGraphicSize(Std.int(bg.width * 0.8));
|
||||||
|
bg.updateHitbox();
|
||||||
|
add(bg);
|
||||||
|
|
||||||
|
upperBoppers = new FlxSprite(-240, -90);
|
||||||
|
upperBoppers.frames = Paths.getSparrowAtlas('christmas/upperBop');
|
||||||
|
upperBoppers.animation.addByPrefix('bop', "Upper Crowd Bob", 24, false);
|
||||||
|
upperBoppers.antialiasing = true;
|
||||||
|
upperBoppers.scrollFactor.set(0.33, 0.33);
|
||||||
|
upperBoppers.setGraphicSize(Std.int(upperBoppers.width * 0.85));
|
||||||
|
upperBoppers.updateHitbox();
|
||||||
|
add(upperBoppers);
|
||||||
|
|
||||||
|
var bgEscalator:FlxSprite = new FlxSprite(-1100, -600).loadGraphic(Paths.image('christmas/bgEscalator'));
|
||||||
|
bgEscalator.antialiasing = true;
|
||||||
|
bgEscalator.scrollFactor.set(0.3, 0.3);
|
||||||
|
bgEscalator.active = false;
|
||||||
|
bgEscalator.setGraphicSize(Std.int(bgEscalator.width * 0.9));
|
||||||
|
bgEscalator.updateHitbox();
|
||||||
|
add(bgEscalator);
|
||||||
|
|
||||||
|
var tree:FlxSprite = new FlxSprite(370, -250).loadGraphic(Paths.image('christmas/christmasTree'));
|
||||||
|
tree.antialiasing = true;
|
||||||
|
tree.scrollFactor.set(0.40, 0.40);
|
||||||
|
add(tree);
|
||||||
|
|
||||||
|
bottomBoppers = new FlxSprite(-300, 140);
|
||||||
|
bottomBoppers.frames = Paths.getSparrowAtlas('christmas/bottomBop');
|
||||||
|
bottomBoppers.animation.addByPrefix('bop', 'Bottom Level Boppers', 24, false);
|
||||||
|
bottomBoppers.antialiasing = true;
|
||||||
|
bottomBoppers.scrollFactor.set(0.9, 0.9);
|
||||||
|
bottomBoppers.setGraphicSize(Std.int(bottomBoppers.width * 1));
|
||||||
|
bottomBoppers.updateHitbox();
|
||||||
|
add(bottomBoppers);
|
||||||
|
|
||||||
|
var fgSnow:FlxSprite = new FlxSprite(-600, 700).loadGraphic(Paths.image('christmas/fgSnow'));
|
||||||
|
fgSnow.active = false;
|
||||||
|
fgSnow.antialiasing = true;
|
||||||
|
add(fgSnow);
|
||||||
|
|
||||||
|
santa = new FlxSprite(-840, 150);
|
||||||
|
santa.frames = Paths.getSparrowAtlas('christmas/santa');
|
||||||
|
santa.animation.addByPrefix('idle', 'santa idle in fear', 24, false);
|
||||||
|
santa.antialiasing = true;
|
||||||
|
add(santa);
|
||||||
}
|
}
|
||||||
|
case 'winter-horrorland':
|
||||||
|
{
|
||||||
|
curStage = 'mallEvil';
|
||||||
|
var bg:FlxSprite = new FlxSprite(-400, -500).loadGraphic(Paths.image('christmas/evilBG'));
|
||||||
|
bg.antialiasing = true;
|
||||||
|
bg.scrollFactor.set(0.2, 0.2);
|
||||||
|
bg.active = false;
|
||||||
|
bg.setGraphicSize(Std.int(bg.width * 0.8));
|
||||||
|
bg.updateHitbox();
|
||||||
|
add(bg);
|
||||||
|
|
||||||
bgGirls.setGraphicSize(Std.int(bgGirls.width * daPixelZoom));
|
var evilTree:FlxSprite = new FlxSprite(300, -300).loadGraphic(Paths.image('christmas/evilTree'));
|
||||||
bgGirls.updateHitbox();
|
evilTree.antialiasing = true;
|
||||||
add(bgGirls);
|
evilTree.scrollFactor.set(0.2, 0.2);
|
||||||
|
add(evilTree);
|
||||||
|
|
||||||
|
var evilSnow:FlxSprite = new FlxSprite(-200, 700).loadGraphic(Paths.image("christmas/evilSnow"));
|
||||||
|
evilSnow.antialiasing = true;
|
||||||
|
add(evilSnow);
|
||||||
|
}
|
||||||
|
case 'senpai' | 'roses':
|
||||||
|
{
|
||||||
|
curStage = 'school';
|
||||||
|
|
||||||
|
// defaultCamZoom = 0.9;
|
||||||
|
|
||||||
|
var bgSky = new FlxSprite().loadGraphic(Paths.image('weeb/weebSky'));
|
||||||
|
bgSky.scrollFactor.set(0.1, 0.1);
|
||||||
|
add(bgSky);
|
||||||
|
|
||||||
|
var repositionShit = -200;
|
||||||
|
|
||||||
|
var bgSchool:FlxSprite = new FlxSprite(repositionShit, 0).loadGraphic(Paths.image('weeb/weebSchool'));
|
||||||
|
bgSchool.scrollFactor.set(0.6, 0.90);
|
||||||
|
add(bgSchool);
|
||||||
|
|
||||||
|
var bgStreet:FlxSprite = new FlxSprite(repositionShit).loadGraphic(Paths.image('weeb/weebStreet'));
|
||||||
|
bgStreet.scrollFactor.set(0.95, 0.95);
|
||||||
|
add(bgStreet);
|
||||||
|
|
||||||
|
var fgTrees:FlxSprite = new FlxSprite(repositionShit + 170, 130).loadGraphic(Paths.image('weeb/weebTreesBack'));
|
||||||
|
fgTrees.scrollFactor.set(0.9, 0.9);
|
||||||
|
add(fgTrees);
|
||||||
|
|
||||||
|
var bgTrees:FlxSprite = new FlxSprite(repositionShit - 380, -800);
|
||||||
|
var treetex = Paths.getPackerAtlas('weeb/weebTrees');
|
||||||
|
bgTrees.frames = treetex;
|
||||||
|
bgTrees.animation.add('treeLoop', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], 12);
|
||||||
|
bgTrees.animation.play('treeLoop');
|
||||||
|
bgTrees.scrollFactor.set(0.85, 0.85);
|
||||||
|
add(bgTrees);
|
||||||
|
|
||||||
|
var treeLeaves:FlxSprite = new FlxSprite(repositionShit, -40);
|
||||||
|
treeLeaves.frames = Paths.getSparrowAtlas('weeb/petals');
|
||||||
|
treeLeaves.animation.addByPrefix('leaves', 'PETALS ALL', 24, true);
|
||||||
|
treeLeaves.animation.play('leaves');
|
||||||
|
treeLeaves.scrollFactor.set(0.85, 0.85);
|
||||||
|
add(treeLeaves);
|
||||||
|
|
||||||
|
var widShit = Std.int(bgSky.width * 6);
|
||||||
|
|
||||||
|
bgSky.setGraphicSize(widShit);
|
||||||
|
bgSchool.setGraphicSize(widShit);
|
||||||
|
bgStreet.setGraphicSize(widShit);
|
||||||
|
bgTrees.setGraphicSize(Std.int(widShit * 1.4));
|
||||||
|
fgTrees.setGraphicSize(Std.int(widShit * 0.8));
|
||||||
|
treeLeaves.setGraphicSize(widShit);
|
||||||
|
|
||||||
|
fgTrees.updateHitbox();
|
||||||
|
bgSky.updateHitbox();
|
||||||
|
bgSchool.updateHitbox();
|
||||||
|
bgStreet.updateHitbox();
|
||||||
|
bgTrees.updateHitbox();
|
||||||
|
treeLeaves.updateHitbox();
|
||||||
|
|
||||||
|
bgGirls = new BackgroundGirls(-100, 190);
|
||||||
|
bgGirls.scrollFactor.set(0.9, 0.9);
|
||||||
|
|
||||||
|
if (SONG.song.toLowerCase() == 'roses')
|
||||||
|
{
|
||||||
|
bgGirls.getScared();
|
||||||
|
}
|
||||||
|
|
||||||
|
bgGirls.setGraphicSize(Std.int(bgGirls.width * daPixelZoom));
|
||||||
|
bgGirls.updateHitbox();
|
||||||
|
add(bgGirls);
|
||||||
|
}
|
||||||
|
case 'thorns':
|
||||||
|
{
|
||||||
|
curStage = 'schoolEvil';
|
||||||
|
|
||||||
|
var waveEffectBG = new FlxWaveEffect(FlxWaveMode.ALL, 2, -1, 3, 2);
|
||||||
|
var waveEffectFG = new FlxWaveEffect(FlxWaveMode.ALL, 2, -1, 5, 2);
|
||||||
|
|
||||||
|
var posX = 400;
|
||||||
|
var posY = 200;
|
||||||
|
|
||||||
|
var bg:FlxSprite = new FlxSprite(posX, posY);
|
||||||
|
bg.frames = Paths.getSparrowAtlas('weeb/animatedEvilSchool');
|
||||||
|
bg.animation.addByPrefix('idle', 'background 2', 24);
|
||||||
|
bg.animation.play('idle');
|
||||||
|
bg.scrollFactor.set(0.8, 0.9);
|
||||||
|
bg.scale.set(6, 6);
|
||||||
|
add(bg);
|
||||||
|
|
||||||
|
/*
|
||||||
|
var bg:FlxSprite = new FlxSprite(posX, posY).loadGraphic(Paths.image('weeb/evilSchoolBG'));
|
||||||
|
bg.scale.set(6, 6);
|
||||||
|
// bg.setGraphicSize(Std.int(bg.width * 6));
|
||||||
|
// bg.updateHitbox();
|
||||||
|
add(bg);
|
||||||
|
var fg:FlxSprite = new FlxSprite(posX, posY).loadGraphic(Paths.image('weeb/evilSchoolFG'));
|
||||||
|
fg.scale.set(6, 6);
|
||||||
|
// fg.setGraphicSize(Std.int(fg.width * 6));
|
||||||
|
// fg.updateHitbox();
|
||||||
|
add(fg);
|
||||||
|
wiggleShit.effectType = WiggleEffectType.DREAMY;
|
||||||
|
wiggleShit.waveAmplitude = 0.01;
|
||||||
|
wiggleShit.waveFrequency = 60;
|
||||||
|
wiggleShit.waveSpeed = 0.8;
|
||||||
|
*/
|
||||||
|
|
||||||
|
// bg.shader = wiggleShit.shader;
|
||||||
|
// fg.shader = wiggleShit.shader;
|
||||||
|
|
||||||
|
/*
|
||||||
|
var waveSprite = new FlxEffectSprite(bg, [waveEffectBG]);
|
||||||
|
var waveSpriteFG = new FlxEffectSprite(fg, [waveEffectFG]);
|
||||||
|
// Using scale since setGraphicSize() doesnt work???
|
||||||
|
waveSprite.scale.set(6, 6);
|
||||||
|
waveSpriteFG.scale.set(6, 6);
|
||||||
|
waveSprite.setPosition(posX, posY);
|
||||||
|
waveSpriteFG.setPosition(posX, posY);
|
||||||
|
waveSprite.scrollFactor.set(0.7, 0.8);
|
||||||
|
waveSpriteFG.scrollFactor.set(0.9, 0.8);
|
||||||
|
// waveSprite.setGraphicSize(Std.int(waveSprite.width * 6));
|
||||||
|
// waveSprite.updateHitbox();
|
||||||
|
// waveSpriteFG.setGraphicSize(Std.int(fg.width * 6));
|
||||||
|
// waveSpriteFG.updateHitbox();
|
||||||
|
add(waveSprite);
|
||||||
|
add(waveSpriteFG);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
defaultCamZoom = 0.9;
|
||||||
|
curStage = 'stage';
|
||||||
|
var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(Paths.image('stageback'));
|
||||||
|
bg.antialiasing = true;
|
||||||
|
bg.scrollFactor.set(0.9, 0.9);
|
||||||
|
bg.active = false;
|
||||||
|
add(bg);
|
||||||
|
|
||||||
|
var stageFront:FlxSprite = new FlxSprite(-650, 600).loadGraphic(Paths.image('stagefront'));
|
||||||
|
stageFront.setGraphicSize(Std.int(stageFront.width * 1.1));
|
||||||
|
stageFront.updateHitbox();
|
||||||
|
stageFront.antialiasing = true;
|
||||||
|
stageFront.scrollFactor.set(0.9, 0.9);
|
||||||
|
stageFront.active = false;
|
||||||
|
add(stageFront);
|
||||||
|
|
||||||
|
var stageCurtains:FlxSprite = new FlxSprite(-500, -300).loadGraphic(Paths.image('stagecurtains'));
|
||||||
|
stageCurtains.setGraphicSize(Std.int(stageCurtains.width * 0.9));
|
||||||
|
stageCurtains.updateHitbox();
|
||||||
|
stageCurtains.antialiasing = true;
|
||||||
|
stageCurtains.scrollFactor.set(1.3, 1.3);
|
||||||
|
stageCurtains.active = false;
|
||||||
|
|
||||||
|
add(stageCurtains);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (SONG.song.toLowerCase() == 'thorns')
|
|
||||||
{
|
|
||||||
curStage = 'schoolEvil';
|
|
||||||
|
|
||||||
var waveEffectBG = new FlxWaveEffect(FlxWaveMode.ALL, 2, -1, 3, 2);
|
|
||||||
var waveEffectFG = new FlxWaveEffect(FlxWaveMode.ALL, 2, -1, 5, 2);
|
|
||||||
|
|
||||||
var posX = 400;
|
|
||||||
var posY = 200;
|
|
||||||
|
|
||||||
var bg:FlxSprite = new FlxSprite(posX, posY);
|
|
||||||
bg.frames = Paths.getSparrowAtlas('weeb/animatedEvilSchool');
|
|
||||||
bg.animation.addByPrefix('idle', 'background 2', 24);
|
|
||||||
bg.animation.play('idle');
|
|
||||||
bg.scrollFactor.set(0.8, 0.9);
|
|
||||||
bg.scale.set(6, 6);
|
|
||||||
add(bg);
|
|
||||||
|
|
||||||
/*
|
|
||||||
var bg:FlxSprite = new FlxSprite(posX, posY).loadGraphic(Paths.image('weeb/evilSchoolBG'));
|
|
||||||
bg.scale.set(6, 6);
|
|
||||||
// bg.setGraphicSize(Std.int(bg.width * 6));
|
|
||||||
// bg.updateHitbox();
|
|
||||||
add(bg);
|
|
||||||
|
|
||||||
var fg:FlxSprite = new FlxSprite(posX, posY).loadGraphic(Paths.image('weeb/evilSchoolFG'));
|
|
||||||
fg.scale.set(6, 6);
|
|
||||||
// fg.setGraphicSize(Std.int(fg.width * 6));
|
|
||||||
// fg.updateHitbox();
|
|
||||||
add(fg);
|
|
||||||
|
|
||||||
wiggleShit.effectType = WiggleEffectType.DREAMY;
|
|
||||||
wiggleShit.waveAmplitude = 0.01;
|
|
||||||
wiggleShit.waveFrequency = 60;
|
|
||||||
wiggleShit.waveSpeed = 0.8;
|
|
||||||
*/
|
|
||||||
|
|
||||||
// bg.shader = wiggleShit.shader;
|
|
||||||
// fg.shader = wiggleShit.shader;
|
|
||||||
|
|
||||||
/*
|
|
||||||
var waveSprite = new FlxEffectSprite(bg, [waveEffectBG]);
|
|
||||||
var waveSpriteFG = new FlxEffectSprite(fg, [waveEffectFG]);
|
|
||||||
|
|
||||||
// Using scale since setGraphicSize() doesnt work???
|
|
||||||
waveSprite.scale.set(6, 6);
|
|
||||||
waveSpriteFG.scale.set(6, 6);
|
|
||||||
waveSprite.setPosition(posX, posY);
|
|
||||||
waveSpriteFG.setPosition(posX, posY);
|
|
||||||
|
|
||||||
waveSprite.scrollFactor.set(0.7, 0.8);
|
|
||||||
waveSpriteFG.scrollFactor.set(0.9, 0.8);
|
|
||||||
|
|
||||||
// waveSprite.setGraphicSize(Std.int(waveSprite.width * 6));
|
|
||||||
// waveSprite.updateHitbox();
|
|
||||||
// waveSpriteFG.setGraphicSize(Std.int(fg.width * 6));
|
|
||||||
// waveSpriteFG.updateHitbox();
|
|
||||||
|
|
||||||
add(waveSprite);
|
|
||||||
add(waveSpriteFG);
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
defaultCamZoom = 0.9;
|
|
||||||
curStage = 'stage';
|
|
||||||
var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(Paths.image('stageback'));
|
|
||||||
bg.antialiasing = true;
|
|
||||||
bg.scrollFactor.set(0.9, 0.9);
|
|
||||||
bg.active = false;
|
|
||||||
add(bg);
|
|
||||||
|
|
||||||
var stageFront:FlxSprite = new FlxSprite(-650, 600).loadGraphic(Paths.image('stagefront'));
|
|
||||||
stageFront.setGraphicSize(Std.int(stageFront.width * 1.1));
|
|
||||||
stageFront.updateHitbox();
|
|
||||||
stageFront.antialiasing = true;
|
|
||||||
stageFront.scrollFactor.set(0.9, 0.9);
|
|
||||||
stageFront.active = false;
|
|
||||||
add(stageFront);
|
|
||||||
|
|
||||||
var stageCurtains:FlxSprite = new FlxSprite(-500, -300).loadGraphic(Paths.image('stagecurtains'));
|
|
||||||
stageCurtains.setGraphicSize(Std.int(stageCurtains.width * 0.9));
|
|
||||||
stageCurtains.updateHitbox();
|
|
||||||
stageCurtains.antialiasing = true;
|
|
||||||
stageCurtains.scrollFactor.set(1.3, 1.3);
|
|
||||||
stageCurtains.active = false;
|
|
||||||
|
|
||||||
add(stageCurtains);
|
|
||||||
}
|
|
||||||
|
|
||||||
var gfVersion:String = 'gf';
|
var gfVersion:String = 'gf';
|
||||||
|
|
||||||
switch (curStage)
|
switch (curStage)
|
||||||
@ -763,7 +762,7 @@ class PlayState extends MusicBeatState
|
|||||||
|
|
||||||
add(camFollow);
|
add(camFollow);
|
||||||
|
|
||||||
FlxG.camera.follow(camFollow, LOCKON, 0.01);
|
FlxG.camera.follow(camFollow, LOCKON, 0.04 * (30 / (cast (Lib.current.getChildAt(0), Main)).getFPS()));
|
||||||
// FlxG.camera.setScrollBounds(0, FlxG.width, 0, FlxG.height);
|
// FlxG.camera.setScrollBounds(0, FlxG.width, 0, FlxG.height);
|
||||||
FlxG.camera.zoom = defaultCamZoom;
|
FlxG.camera.zoom = defaultCamZoom;
|
||||||
FlxG.camera.focusOn(camFollow.getPosition());
|
FlxG.camera.focusOn(camFollow.getPosition());
|
||||||
@ -1477,7 +1476,7 @@ class PlayState extends MusicBeatState
|
|||||||
ranking = "(MFC)";
|
ranking = "(MFC)";
|
||||||
else if (misses == 0 && bads == 0 && shits == 0 && goods >= 1) // Good Full Combo (Nothing but Goods & Sicks)
|
else if (misses == 0 && bads == 0 && shits == 0 && goods >= 1) // Good Full Combo (Nothing but Goods & Sicks)
|
||||||
ranking = "(GFC)";
|
ranking = "(GFC)";
|
||||||
else if ((shits < 10 && shits != 0 || bads < 10 && bads != 0) && misses == 0) // Single Digit Combo Breaks
|
else if ((shits < 10 && shits != 0) && misses == 0) // Single Digit Combo Breaks
|
||||||
ranking = "(SDCB)";
|
ranking = "(SDCB)";
|
||||||
else if (misses == 0 && (shits >= 10)) // Regular FC
|
else if (misses == 0 && (shits >= 10)) // Regular FC
|
||||||
ranking = "(FC)";
|
ranking = "(FC)";
|
||||||
@ -1882,9 +1881,9 @@ class PlayState extends MusicBeatState
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (FlxG.save.data.downscroll)
|
if (FlxG.save.data.downscroll)
|
||||||
daNote.y = (strumLine.y - (Conductor.songPosition - daNote.strumTime) * (-0.45 * FlxMath.roundDecimal(SONG.speed, 2)));
|
daNote.y = (strumLine.y - (Conductor.songPosition - daNote.strumTime) * (-0.45 * FlxMath.roundDecimal(FlxG.save.data.scrollSpeed == 1 ? SONG.speed : FlxG.save.data.scrollSpeed, 2)));
|
||||||
else
|
else
|
||||||
daNote.y = (strumLine.y - (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(SONG.speed, 2)));
|
daNote.y = (strumLine.y - (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(FlxG.save.data.scrollSpeed == 1 ? SONG.speed : FlxG.save.data.scrollSpeed, 2)));
|
||||||
//trace(daNote.y);
|
//trace(daNote.y);
|
||||||
// WIP interpolation shit? Need to fix the pause issue
|
// WIP interpolation shit? Need to fix the pause issue
|
||||||
// daNote.y = (strumLine.y - (songTime - daNote.strumTime) * (0.45 * PlayState.SONG.speed));
|
// daNote.y = (strumLine.y - (songTime - daNote.strumTime) * (0.45 * PlayState.SONG.speed));
|
||||||
@ -2381,6 +2380,7 @@ class PlayState extends MusicBeatState
|
|||||||
{
|
{
|
||||||
for (coolNote in possibleNotes)
|
for (coolNote in possibleNotes)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (controlArray[coolNote.noteData])
|
if (controlArray[coolNote.noteData])
|
||||||
goodNoteHit(coolNote);
|
goodNoteHit(coolNote);
|
||||||
else
|
else
|
||||||
@ -2398,6 +2398,17 @@ class PlayState extends MusicBeatState
|
|||||||
{
|
{
|
||||||
if (loadRep)
|
if (loadRep)
|
||||||
{
|
{
|
||||||
|
var noteDiff:Float = Math.abs(daNote.strumTime - Conductor.songPosition);
|
||||||
|
|
||||||
|
if (noteDiff > Conductor.safeZoneOffset * 0.70 || noteDiff < Conductor.safeZoneOffset * -0.70)
|
||||||
|
daNote.rating = "shit";
|
||||||
|
else if (noteDiff > Conductor.safeZoneOffset * 0.50 || noteDiff < Conductor.safeZoneOffset * -0.50)
|
||||||
|
daNote.rating = "bad";
|
||||||
|
else if (noteDiff > Conductor.safeZoneOffset * 0.45 || noteDiff < Conductor.safeZoneOffset * -0.45)
|
||||||
|
daNote.rating = "good";
|
||||||
|
else if (noteDiff < Conductor.safeZoneOffset * 0.44 && noteDiff > Conductor.safeZoneOffset * -0.44)
|
||||||
|
daNote.rating = "sick";
|
||||||
|
|
||||||
if (NearlyEquals(daNote.strumTime,rep.replay.keyPresses[repPresses].time, 30))
|
if (NearlyEquals(daNote.strumTime,rep.replay.keyPresses[repPresses].time, 30))
|
||||||
{
|
{
|
||||||
goodNoteHit(daNote);
|
goodNoteHit(daNote);
|
||||||
@ -2417,6 +2428,16 @@ class PlayState extends MusicBeatState
|
|||||||
{
|
{
|
||||||
if (NearlyEquals(coolNote.strumTime,rep.replay.keyPresses[repPresses].time, 30))
|
if (NearlyEquals(coolNote.strumTime,rep.replay.keyPresses[repPresses].time, 30))
|
||||||
{
|
{
|
||||||
|
var noteDiff:Float = Math.abs(coolNote.strumTime - Conductor.songPosition);
|
||||||
|
|
||||||
|
if (noteDiff > Conductor.safeZoneOffset * 0.70 || noteDiff < Conductor.safeZoneOffset * -0.70)
|
||||||
|
coolNote.rating = "shit";
|
||||||
|
else if (noteDiff > Conductor.safeZoneOffset * 0.50 || noteDiff < Conductor.safeZoneOffset * -0.50)
|
||||||
|
coolNote.rating = "bad";
|
||||||
|
else if (noteDiff > Conductor.safeZoneOffset * 0.45 || noteDiff < Conductor.safeZoneOffset * -0.45)
|
||||||
|
coolNote.rating = "good";
|
||||||
|
else if (noteDiff < Conductor.safeZoneOffset * 0.44 && noteDiff > Conductor.safeZoneOffset * -0.44)
|
||||||
|
coolNote.rating = "sick";
|
||||||
goodNoteHit(coolNote);
|
goodNoteHit(coolNote);
|
||||||
trace('force note hit');
|
trace('force note hit');
|
||||||
}
|
}
|
||||||
@ -2434,6 +2455,17 @@ class PlayState extends MusicBeatState
|
|||||||
{
|
{
|
||||||
if (NearlyEquals(daNote.strumTime,rep.replay.keyPresses[repPresses].time, 30))
|
if (NearlyEquals(daNote.strumTime,rep.replay.keyPresses[repPresses].time, 30))
|
||||||
{
|
{
|
||||||
|
var noteDiff:Float = Math.abs(daNote.strumTime - Conductor.songPosition);
|
||||||
|
|
||||||
|
if (noteDiff > Conductor.safeZoneOffset * 0.70 || noteDiff < Conductor.safeZoneOffset * -0.70)
|
||||||
|
daNote.rating = "shit";
|
||||||
|
else if (noteDiff > Conductor.safeZoneOffset * 0.50 || noteDiff < Conductor.safeZoneOffset * -0.50)
|
||||||
|
daNote.rating = "bad";
|
||||||
|
else if (noteDiff > Conductor.safeZoneOffset * 0.45 || noteDiff < Conductor.safeZoneOffset * -0.45)
|
||||||
|
daNote.rating = "good";
|
||||||
|
else if (noteDiff < Conductor.safeZoneOffset * 0.44 && noteDiff > Conductor.safeZoneOffset * -0.44)
|
||||||
|
daNote.rating = "sick";
|
||||||
|
|
||||||
goodNoteHit(daNote);
|
goodNoteHit(daNote);
|
||||||
trace('force note hit');
|
trace('force note hit');
|
||||||
}
|
}
|
||||||
@ -2714,6 +2746,17 @@ class PlayState extends MusicBeatState
|
|||||||
|
|
||||||
function noteCheck(controlArray:Array<Bool>, note:Note):Void // sorry lol
|
function noteCheck(controlArray:Array<Bool>, note:Note):Void // sorry lol
|
||||||
{
|
{
|
||||||
|
var noteDiff:Float = Math.abs(note.strumTime - Conductor.songPosition);
|
||||||
|
|
||||||
|
if (noteDiff > Conductor.safeZoneOffset * 0.70 || noteDiff < Conductor.safeZoneOffset * -0.70)
|
||||||
|
note.rating = "shit";
|
||||||
|
else if (noteDiff > Conductor.safeZoneOffset * 0.50 || noteDiff < Conductor.safeZoneOffset * -0.50)
|
||||||
|
note.rating = "bad";
|
||||||
|
else if (noteDiff > Conductor.safeZoneOffset * 0.45 || noteDiff < Conductor.safeZoneOffset * -0.45)
|
||||||
|
note.rating = "good";
|
||||||
|
else if (noteDiff < Conductor.safeZoneOffset * 0.44 && noteDiff > Conductor.safeZoneOffset * -0.44)
|
||||||
|
note.rating = "sick";
|
||||||
|
|
||||||
if (loadRep)
|
if (loadRep)
|
||||||
{
|
{
|
||||||
if (controlArray[note.noteData])
|
if (controlArray[note.noteData])
|
||||||
@ -2738,6 +2781,7 @@ class PlayState extends MusicBeatState
|
|||||||
if (mashing <= getKeyPresses(note) && mashViolations < 2)
|
if (mashing <= getKeyPresses(note) && mashViolations < 2)
|
||||||
{
|
{
|
||||||
mashViolations++;
|
mashViolations++;
|
||||||
|
|
||||||
goodNoteHit(note, (mashing <= getKeyPresses(note)));
|
goodNoteHit(note, (mashing <= getKeyPresses(note)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2759,6 +2803,17 @@ class PlayState extends MusicBeatState
|
|||||||
function goodNoteHit(note:Note, resetMashViolation = true):Void
|
function goodNoteHit(note:Note, resetMashViolation = true):Void
|
||||||
{
|
{
|
||||||
|
|
||||||
|
var noteDiff:Float = Math.abs(note.strumTime - Conductor.songPosition);
|
||||||
|
|
||||||
|
if (noteDiff > Conductor.safeZoneOffset * 0.70 || noteDiff < Conductor.safeZoneOffset * -0.70)
|
||||||
|
note.rating = "shit";
|
||||||
|
else if (noteDiff > Conductor.safeZoneOffset * 0.50 || noteDiff < Conductor.safeZoneOffset * -0.50)
|
||||||
|
note.rating = "bad";
|
||||||
|
else if (noteDiff > Conductor.safeZoneOffset * 0.45 || noteDiff < Conductor.safeZoneOffset * -0.45)
|
||||||
|
note.rating = "good";
|
||||||
|
else if (noteDiff < Conductor.safeZoneOffset * 0.44 && noteDiff > Conductor.safeZoneOffset * -0.44)
|
||||||
|
note.rating = "sick";
|
||||||
|
|
||||||
if (resetMashViolation)
|
if (resetMashViolation)
|
||||||
mashViolations--;
|
mashViolations--;
|
||||||
|
|
||||||
@ -2982,12 +3037,13 @@ class PlayState extends MusicBeatState
|
|||||||
if (curBeat % 8 == 7 && curSong == 'Bopeebo')
|
if (curBeat % 8 == 7 && curSong == 'Bopeebo')
|
||||||
{
|
{
|
||||||
boyfriend.playAnim('hey', true);
|
boyfriend.playAnim('hey', true);
|
||||||
|
}
|
||||||
|
|
||||||
if (SONG.song == 'Tutorial' && dad.curCharacter == 'gf')
|
if (curBeat % 16 == 15 && SONG.song == 'Tutorial' && dad.curCharacter == 'gf' && curBeat > 16 && curBeat < 48)
|
||||||
{
|
{
|
||||||
|
boyfriend.playAnim('hey', true);
|
||||||
dad.playAnim('cheer', true);
|
dad.playAnim('cheer', true);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
switch (curStage)
|
switch (curStage)
|
||||||
{
|
{
|
||||||
|
@ -300,7 +300,7 @@ class TitleState extends MusicBeatState
|
|||||||
|
|
||||||
http.onData = function (data:String) {
|
http.onData = function (data:String) {
|
||||||
|
|
||||||
if (!MainMenuState.kadeEngineVer.contains(data.trim()) && !OutdatedSubState.leftState)
|
if (!MainMenuState.kadeEngineVer.contains(data.trim()) && !OutdatedSubState.leftState && MainMenuState.nightly == "")
|
||||||
{
|
{
|
||||||
trace('outdated lmao! ' + data.trim() + ' != ' + MainMenuState.kadeEngineVer);
|
trace('outdated lmao! ' + data.trim() + ' != ' + MainMenuState.kadeEngineVer);
|
||||||
OutdatedSubState.needVer = data;
|
OutdatedSubState.needVer = data;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user