mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2025-02-17 04:11:23 -05:00
THORNS AND EVIL MAN
This commit is contained in:
parent
f306e603be
commit
c66eb94ccf
6 changed files with 361 additions and 17 deletions
|
@ -422,6 +422,27 @@ class Character extends FlxSprite
|
||||||
|
|
||||||
antialiasing = false;
|
antialiasing = false;
|
||||||
|
|
||||||
|
case 'spirit':
|
||||||
|
frames = FlxAtlasFrames.fromSpriteSheetPacker('assets/images/weeb/spirit.png', 'assets/images/weeb/spirit.txt');
|
||||||
|
animation.addByPrefix('idle', "idle spirit_", 24, false);
|
||||||
|
animation.addByPrefix('singUP', "up_", 24, false);
|
||||||
|
animation.addByPrefix('singRIGHT', "right_", 24, false);
|
||||||
|
animation.addByPrefix('singLEFT', "left_", 24, false);
|
||||||
|
animation.addByPrefix('singDOWN', "spirit down_", 24, false);
|
||||||
|
|
||||||
|
addOffset('idle', -220, -280);
|
||||||
|
addOffset('singUP', -220, -240);
|
||||||
|
addOffset("singRIGHT", -220, -280);
|
||||||
|
addOffset("singLEFT", -200, -280);
|
||||||
|
addOffset("singDOWN", 170, 110);
|
||||||
|
|
||||||
|
setGraphicSize(Std.int(width * 6));
|
||||||
|
updateHitbox();
|
||||||
|
|
||||||
|
playAnim('idle');
|
||||||
|
|
||||||
|
antialiasing = false;
|
||||||
|
|
||||||
case 'parents-christmas':
|
case 'parents-christmas':
|
||||||
frames = FlxAtlasFrames.fromSparrow('assets/images/christmas/mom_dad_christmas_assets.png',
|
frames = FlxAtlasFrames.fromSparrow('assets/images/christmas/mom_dad_christmas_assets.png',
|
||||||
'assets/images/christmas/mom_dad_christmas_assets.xml');
|
'assets/images/christmas/mom_dad_christmas_assets.xml');
|
||||||
|
|
|
@ -31,12 +31,16 @@ class DialogueBox extends FlxSpriteGroup
|
||||||
var portraitRight:FlxSprite;
|
var portraitRight:FlxSprite;
|
||||||
|
|
||||||
var handSelect:FlxSprite;
|
var handSelect:FlxSprite;
|
||||||
|
var bgFade:FlxSprite;
|
||||||
|
|
||||||
public function new(talkingRight:Bool = true, ?dialogueList:Array<String>)
|
public function new(talkingRight:Bool = true, ?dialogueList:Array<String>)
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
|
|
||||||
var bgFade:FlxSprite = new FlxSprite(-200, -200).makeGraphic(Std.int(FlxG.width * 1.3), Std.int(FlxG.height * 1.3), 0xFFB3DFd8);
|
FlxG.sound.playMusic('assets/music/Lunchbox' + TitleState.soundExt, 0);
|
||||||
|
FlxG.sound.music.fadeIn(1, 0, 0.8);
|
||||||
|
|
||||||
|
bgFade = new FlxSprite(-200, -200).makeGraphic(Std.int(FlxG.width * 1.3), Std.int(FlxG.height * 1.3), 0xFFB3DFd8);
|
||||||
bgFade.scrollFactor.set();
|
bgFade.scrollFactor.set();
|
||||||
bgFade.alpha = 0;
|
bgFade.alpha = 0;
|
||||||
add(bgFade);
|
add(bgFade);
|
||||||
|
@ -130,10 +134,31 @@ class DialogueBox extends FlxSpriteGroup
|
||||||
{
|
{
|
||||||
remove(dialogue);
|
remove(dialogue);
|
||||||
|
|
||||||
|
FlxG.sound.play('assets/sounds/clickText' + TitleState.soundExt, 0.8);
|
||||||
|
|
||||||
if (dialogueList[1] == null)
|
if (dialogueList[1] == null)
|
||||||
{
|
{
|
||||||
finishThing();
|
if (!isEnding)
|
||||||
kill();
|
{
|
||||||
|
isEnding = true;
|
||||||
|
FlxG.sound.music.fadeOut(2.2, 0);
|
||||||
|
|
||||||
|
new FlxTimer().start(0.2, function(tmr:FlxTimer)
|
||||||
|
{
|
||||||
|
box.alpha -= 1 / 5;
|
||||||
|
bgFade.alpha -= 1 / 5 * 0.7;
|
||||||
|
portraitLeft.visible = false;
|
||||||
|
portraitRight.visible = false;
|
||||||
|
swagDialogue.alpha -= 1 / 5;
|
||||||
|
dropText.alpha = swagDialogue.alpha;
|
||||||
|
}, 5);
|
||||||
|
|
||||||
|
new FlxTimer().start(1.2, function(tmr:FlxTimer)
|
||||||
|
{
|
||||||
|
finishThing();
|
||||||
|
kill();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -145,6 +170,8 @@ class DialogueBox extends FlxSpriteGroup
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var isEnding:Bool = false;
|
||||||
|
|
||||||
function startDialogue():Void
|
function startDialogue():Void
|
||||||
{
|
{
|
||||||
cleanDialog();
|
cleanDialog();
|
||||||
|
@ -155,7 +182,7 @@ class DialogueBox extends FlxSpriteGroup
|
||||||
|
|
||||||
// swagDialogue.text = ;
|
// swagDialogue.text = ;
|
||||||
swagDialogue.resetText(dialogueList[0]);
|
swagDialogue.resetText(dialogueList[0]);
|
||||||
swagDialogue.start(0.02, true);
|
swagDialogue.start(0.04, true);
|
||||||
|
|
||||||
switch (curCharacter)
|
switch (curCharacter)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,6 +22,7 @@ class HealthIcon extends FlxSprite
|
||||||
animation.add('face', [10, 11], 0, false, isPlayer);
|
animation.add('face', [10, 11], 0, false, isPlayer);
|
||||||
animation.add('dad', [12, 13], 0, false, isPlayer);
|
animation.add('dad', [12, 13], 0, false, isPlayer);
|
||||||
animation.add('senpai', [22, 22], 0, false, isPlayer);
|
animation.add('senpai', [22, 22], 0, false, isPlayer);
|
||||||
|
animation.add('spirit', [23, 23], 0, false, isPlayer);
|
||||||
animation.add('bf-old', [14, 15], 0, false, isPlayer);
|
animation.add('bf-old', [14, 15], 0, false, isPlayer);
|
||||||
animation.add('gf', [16], 0, false, isPlayer);
|
animation.add('gf', [16], 0, false, isPlayer);
|
||||||
animation.add('parents-christmas', [17], 0, false, isPlayer);
|
animation.add('parents-christmas', [17], 0, false, isPlayer);
|
||||||
|
|
|
@ -6,6 +6,8 @@ import flixel.math.FlxMath;
|
||||||
import flixel.util.FlxColor;
|
import flixel.util.FlxColor;
|
||||||
import polymod.format.ParseRules.TargetSignatureElement;
|
import polymod.format.ParseRules.TargetSignatureElement;
|
||||||
|
|
||||||
|
using StringTools;
|
||||||
|
|
||||||
class Note extends FlxSprite
|
class Note extends FlxSprite
|
||||||
{
|
{
|
||||||
public var strumTime:Float = 0;
|
public var strumTime:Float = 0;
|
||||||
|
@ -75,6 +77,32 @@ class Note extends FlxSprite
|
||||||
setGraphicSize(Std.int(width * PlayState.daPixelZoom));
|
setGraphicSize(Std.int(width * PlayState.daPixelZoom));
|
||||||
updateHitbox();
|
updateHitbox();
|
||||||
|
|
||||||
|
case 'schoolEvil': // COPY PASTED CUZ I AM LAZY
|
||||||
|
loadGraphic('assets/images/weeb/pixelUI/arrows-pixels.png', true, 17, 17);
|
||||||
|
|
||||||
|
animation.add('greenScroll', [6]);
|
||||||
|
animation.add('redScroll', [7]);
|
||||||
|
animation.add('blueScroll', [5]);
|
||||||
|
animation.add('purpleScroll', [4]);
|
||||||
|
|
||||||
|
if (isSustainNote)
|
||||||
|
{
|
||||||
|
loadGraphic('assets/images/weeb/pixelUI/arrowEnds.png', true, 7, 6);
|
||||||
|
|
||||||
|
animation.add('purpleholdend', [4]);
|
||||||
|
animation.add('greenholdend', [6]);
|
||||||
|
animation.add('redholdend', [7]);
|
||||||
|
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));
|
||||||
|
updateHitbox();
|
||||||
|
|
||||||
default:
|
default:
|
||||||
frames = FlxAtlasFrames.fromSparrow('assets/images/NOTE_assets.png', 'assets/images/NOTE_assets.xml');
|
frames = FlxAtlasFrames.fromSparrow('assets/images/NOTE_assets.png', 'assets/images/NOTE_assets.xml');
|
||||||
|
|
||||||
|
@ -139,7 +167,7 @@ class Note extends FlxSprite
|
||||||
|
|
||||||
x -= width / 2;
|
x -= width / 2;
|
||||||
|
|
||||||
if (PlayState.curStage == 'school')
|
if (PlayState.curStage.startsWith('school'))
|
||||||
x += 30;
|
x += 30;
|
||||||
|
|
||||||
if (prevNote.isSustainNote)
|
if (prevNote.isSustainNote)
|
||||||
|
|
|
@ -2,6 +2,7 @@ package;
|
||||||
|
|
||||||
import Section.SwagSection;
|
import Section.SwagSection;
|
||||||
import Song.SwagSong;
|
import Song.SwagSong;
|
||||||
|
import WiggleEffect.WiggleEffectType;
|
||||||
import flixel.FlxBasic;
|
import flixel.FlxBasic;
|
||||||
import flixel.FlxCamera;
|
import flixel.FlxCamera;
|
||||||
import flixel.FlxG;
|
import flixel.FlxG;
|
||||||
|
@ -11,6 +12,10 @@ import flixel.FlxSprite;
|
||||||
import flixel.FlxState;
|
import flixel.FlxState;
|
||||||
import flixel.FlxSubState;
|
import flixel.FlxSubState;
|
||||||
import flixel.addons.display.FlxGridOverlay;
|
import flixel.addons.display.FlxGridOverlay;
|
||||||
|
import flixel.addons.effects.FlxTrail;
|
||||||
|
import flixel.addons.effects.FlxTrailArea;
|
||||||
|
import flixel.addons.effects.chainable.FlxEffectSprite;
|
||||||
|
import flixel.addons.effects.chainable.FlxWaveEffect;
|
||||||
import flixel.graphics.atlas.FlxAtlas;
|
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;
|
||||||
|
@ -30,6 +35,7 @@ import flixel.util.FlxTimer;
|
||||||
import haxe.Json;
|
import haxe.Json;
|
||||||
import lime.utils.Assets;
|
import lime.utils.Assets;
|
||||||
import openfl.display.BlendMode;
|
import openfl.display.BlendMode;
|
||||||
|
import openfl.display.StageQuality;
|
||||||
import openfl.filters.ShaderFilter;
|
import openfl.filters.ShaderFilter;
|
||||||
|
|
||||||
using StringTools;
|
using StringTools;
|
||||||
|
@ -97,6 +103,7 @@ class PlayState extends MusicBeatState
|
||||||
var santa:FlxSprite;
|
var santa:FlxSprite;
|
||||||
|
|
||||||
var bgGirls:BackgroundGirls;
|
var bgGirls:BackgroundGirls;
|
||||||
|
var wiggleShit:WiggleEffect = new WiggleEffect();
|
||||||
|
|
||||||
var talking:Bool = true;
|
var talking:Bool = true;
|
||||||
var songScore:Int = 0;
|
var songScore:Int = 0;
|
||||||
|
@ -335,7 +342,7 @@ class PlayState extends MusicBeatState
|
||||||
evilSnow.antialiasing = true;
|
evilSnow.antialiasing = true;
|
||||||
add(evilSnow);
|
add(evilSnow);
|
||||||
}
|
}
|
||||||
else if (SONG.song.toLowerCase() == 'senpai' || SONG.song.toLowerCase() == 'roses' || SONG.song.toLowerCase() == 'thorns')
|
else if (SONG.song.toLowerCase() == 'senpai' || SONG.song.toLowerCase() == 'roses')
|
||||||
{
|
{
|
||||||
curStage = 'school';
|
curStage = 'school';
|
||||||
|
|
||||||
|
@ -397,6 +404,68 @@ class PlayState extends MusicBeatState
|
||||||
bgGirls.updateHitbox();
|
bgGirls.updateHitbox();
|
||||||
add(bgGirls);
|
add(bgGirls);
|
||||||
}
|
}
|
||||||
|
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 = FlxAtlasFrames.fromSparrow('assets/images/weeb/animatedEvilSchool.png', 'assets/images/weeb/animatedEvilSchool.xml');
|
||||||
|
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('assets/images/weeb/evilSchoolBG.png');
|
||||||
|
bg.scale.set(6, 6);
|
||||||
|
// bg.setGraphicSize(Std.int(bg.width * 6));
|
||||||
|
// bg.updateHitbox();
|
||||||
|
add(bg);
|
||||||
|
|
||||||
|
var fg:FlxSprite = new FlxSprite(posX, posY).loadGraphic('assets/images/weeb/evilSchoolFG.png');
|
||||||
|
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
|
else
|
||||||
{
|
{
|
||||||
defaultCamZoom = 0.9;
|
defaultCamZoom = 0.9;
|
||||||
|
@ -439,6 +508,8 @@ class PlayState extends MusicBeatState
|
||||||
gfVersion = 'gf-christmas';
|
gfVersion = 'gf-christmas';
|
||||||
case 'school':
|
case 'school':
|
||||||
gfVersion = 'gf-pixel';
|
gfVersion = 'gf-pixel';
|
||||||
|
case 'schoolEvil':
|
||||||
|
gfVersion = 'gf-pixel';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (curStage == 'limo')
|
if (curStage == 'limo')
|
||||||
|
@ -446,14 +517,12 @@ class PlayState extends MusicBeatState
|
||||||
|
|
||||||
gf = new Character(400, 130, gfVersion);
|
gf = new Character(400, 130, gfVersion);
|
||||||
gf.scrollFactor.set(0.95, 0.95);
|
gf.scrollFactor.set(0.95, 0.95);
|
||||||
add(gf);
|
|
||||||
|
|
||||||
// Shitty layering but whatev it works LOL
|
// Shitty layering but whatev it works LOL
|
||||||
if (curStage == 'limo')
|
if (curStage == 'limo')
|
||||||
add(limo);
|
add(limo);
|
||||||
|
|
||||||
dad = new Character(100, 100, SONG.player2);
|
dad = new Character(100, 100, SONG.player2);
|
||||||
add(dad);
|
|
||||||
|
|
||||||
var camPos:FlxPoint = new FlxPoint(dad.getGraphicMidpoint().x, dad.getGraphicMidpoint().y);
|
var camPos:FlxPoint = new FlxPoint(dad.getGraphicMidpoint().x, dad.getGraphicMidpoint().y);
|
||||||
|
|
||||||
|
@ -485,10 +554,13 @@ class PlayState extends MusicBeatState
|
||||||
dad.x += 150;
|
dad.x += 150;
|
||||||
dad.y += 360;
|
dad.y += 360;
|
||||||
camPos.set(dad.getGraphicMidpoint().x + 300, dad.getGraphicMidpoint().y);
|
camPos.set(dad.getGraphicMidpoint().x + 300, dad.getGraphicMidpoint().y);
|
||||||
|
case 'spirit':
|
||||||
|
dad.x -= 150;
|
||||||
|
dad.y += 100;
|
||||||
|
camPos.set(dad.getGraphicMidpoint().x + 300, dad.getGraphicMidpoint().y);
|
||||||
}
|
}
|
||||||
|
|
||||||
boyfriend = new Boyfriend(770, 450, SONG.player1);
|
boyfriend = new Boyfriend(770, 450, SONG.player1);
|
||||||
add(boyfriend);
|
|
||||||
|
|
||||||
// REPOSITIONING PER STAGE
|
// REPOSITIONING PER STAGE
|
||||||
switch (curStage)
|
switch (curStage)
|
||||||
|
@ -507,12 +579,29 @@ class PlayState extends MusicBeatState
|
||||||
boyfriend.x += 320;
|
boyfriend.x += 320;
|
||||||
dad.y -= 80;
|
dad.y -= 80;
|
||||||
case 'school':
|
case 'school':
|
||||||
|
boyfriend.x += 200;
|
||||||
|
boyfriend.y += 220;
|
||||||
|
gf.x += 180;
|
||||||
|
gf.y += 300;
|
||||||
|
case 'schoolEvil':
|
||||||
|
// trailArea.scrollFactor.set();
|
||||||
|
|
||||||
|
var evilTrail = new FlxTrail(dad, null, 4, 24, 0.3, 0.069);
|
||||||
|
// evilTrail.changeValuesEnabled(false, false, false, false);
|
||||||
|
// evilTrail.changeGraphic()
|
||||||
|
add(evilTrail);
|
||||||
|
// evilTrail.scrollFactor.set(1.1, 1.1);
|
||||||
|
|
||||||
boyfriend.x += 200;
|
boyfriend.x += 200;
|
||||||
boyfriend.y += 220;
|
boyfriend.y += 220;
|
||||||
gf.x += 180;
|
gf.x += 180;
|
||||||
gf.y += 300;
|
gf.y += 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add(gf);
|
||||||
|
add(dad);
|
||||||
|
add(boyfriend);
|
||||||
|
|
||||||
var doof:DialogueBox = new DialogueBox(false, dialogue);
|
var doof:DialogueBox = new DialogueBox(false, dialogue);
|
||||||
// doof.x += 70;
|
// doof.x += 70;
|
||||||
// doof.y = FlxG.height * 0.5;
|
// doof.y = FlxG.height * 0.5;
|
||||||
|
@ -702,6 +791,11 @@ class PlayState extends MusicBeatState
|
||||||
'weeb/pixelUI/set-pixel.png',
|
'weeb/pixelUI/set-pixel.png',
|
||||||
'weeb/pixelUI/date-pixel.png'
|
'weeb/pixelUI/date-pixel.png'
|
||||||
]);
|
]);
|
||||||
|
introAssets.set('schoolEvil', [
|
||||||
|
'weeb/pixelUI/ready-pixel.png',
|
||||||
|
'weeb/pixelUI/set-pixel.png',
|
||||||
|
'weeb/pixelUI/date-pixel.png'
|
||||||
|
]);
|
||||||
|
|
||||||
var introAlts:Array<String> = introAssets.get('default');
|
var introAlts:Array<String> = introAssets.get('default');
|
||||||
var altSuffix:String = "";
|
var altSuffix:String = "";
|
||||||
|
@ -725,7 +819,7 @@ class PlayState extends MusicBeatState
|
||||||
ready.scrollFactor.set();
|
ready.scrollFactor.set();
|
||||||
ready.updateHitbox();
|
ready.updateHitbox();
|
||||||
|
|
||||||
if (curStage == 'school')
|
if (curStage.startsWith('school'))
|
||||||
ready.setGraphicSize(Std.int(ready.width * daPixelZoom));
|
ready.setGraphicSize(Std.int(ready.width * daPixelZoom));
|
||||||
|
|
||||||
ready.screenCenter();
|
ready.screenCenter();
|
||||||
|
@ -742,7 +836,7 @@ class PlayState extends MusicBeatState
|
||||||
var set:FlxSprite = new FlxSprite().loadGraphic('assets/images/' + introAlts[1]);
|
var set:FlxSprite = new FlxSprite().loadGraphic('assets/images/' + introAlts[1]);
|
||||||
set.scrollFactor.set();
|
set.scrollFactor.set();
|
||||||
|
|
||||||
if (curStage == 'school')
|
if (curStage.startsWith('school'))
|
||||||
set.setGraphicSize(Std.int(set.width * daPixelZoom));
|
set.setGraphicSize(Std.int(set.width * daPixelZoom));
|
||||||
|
|
||||||
set.screenCenter();
|
set.screenCenter();
|
||||||
|
@ -759,7 +853,7 @@ class PlayState extends MusicBeatState
|
||||||
var go:FlxSprite = new FlxSprite().loadGraphic('assets/images/' + introAlts[2]);
|
var go:FlxSprite = new FlxSprite().loadGraphic('assets/images/' + introAlts[2]);
|
||||||
go.scrollFactor.set();
|
go.scrollFactor.set();
|
||||||
|
|
||||||
if (curStage == 'school')
|
if (curStage.startsWith('school'))
|
||||||
go.setGraphicSize(Std.int(go.width * daPixelZoom));
|
go.setGraphicSize(Std.int(go.width * daPixelZoom));
|
||||||
|
|
||||||
go.updateHitbox();
|
go.updateHitbox();
|
||||||
|
@ -945,6 +1039,43 @@ class PlayState extends MusicBeatState
|
||||||
babyArrow.animation.add('confirm', [12, 16], 24, false);
|
babyArrow.animation.add('confirm', [12, 16], 24, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case 'schoolEvil':
|
||||||
|
// ALL THIS IS COPY PASTED CUZ IM LAZY
|
||||||
|
|
||||||
|
babyArrow.loadGraphic('assets/images/weeb/pixelUI/arrows-pixels.png', true, 17, 17);
|
||||||
|
babyArrow.animation.add('green', [6]);
|
||||||
|
babyArrow.animation.add('red', [7]);
|
||||||
|
babyArrow.animation.add('blue', [5]);
|
||||||
|
babyArrow.animation.add('purplel', [4]);
|
||||||
|
|
||||||
|
babyArrow.setGraphicSize(Std.int(babyArrow.width * daPixelZoom));
|
||||||
|
babyArrow.updateHitbox();
|
||||||
|
babyArrow.antialiasing = false;
|
||||||
|
|
||||||
|
switch (Math.abs(i))
|
||||||
|
{
|
||||||
|
case 2:
|
||||||
|
babyArrow.x += Note.swagWidth * 2;
|
||||||
|
babyArrow.animation.add('static', [2]);
|
||||||
|
babyArrow.animation.add('pressed', [6, 10], 12, false);
|
||||||
|
babyArrow.animation.add('confirm', [14, 18], 12, false);
|
||||||
|
case 3:
|
||||||
|
babyArrow.x += Note.swagWidth * 3;
|
||||||
|
babyArrow.animation.add('static', [3]);
|
||||||
|
babyArrow.animation.add('pressed', [7, 11], 12, false);
|
||||||
|
babyArrow.animation.add('confirm', [15, 19], 24, false);
|
||||||
|
case 1:
|
||||||
|
babyArrow.x += Note.swagWidth * 1;
|
||||||
|
babyArrow.animation.add('static', [1]);
|
||||||
|
babyArrow.animation.add('pressed', [5, 9], 12, false);
|
||||||
|
babyArrow.animation.add('confirm', [13, 17], 24, false);
|
||||||
|
case 0:
|
||||||
|
babyArrow.x += Note.swagWidth * 0;
|
||||||
|
babyArrow.animation.add('static', [0]);
|
||||||
|
babyArrow.animation.add('pressed', [4, 8], 12, false);
|
||||||
|
babyArrow.animation.add('confirm', [12, 16], 24, false);
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
babyArrow.frames = FlxAtlasFrames.fromSparrow('assets/images/NOTE_assets.png', 'assets/images/NOTE_assets.xml');
|
babyArrow.frames = FlxAtlasFrames.fromSparrow('assets/images/NOTE_assets.png', 'assets/images/NOTE_assets.xml');
|
||||||
babyArrow.animation.addByPrefix('green', 'arrowUP');
|
babyArrow.animation.addByPrefix('green', 'arrowUP');
|
||||||
|
@ -1082,7 +1213,6 @@ class PlayState extends MusicBeatState
|
||||||
trainFrameTiming = 0;
|
trainFrameTiming = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// phillyCityLights.members[curLight].alpha -= (Conductor.crochet / 1000) * FlxG.elapsed;
|
// phillyCityLights.members[curLight].alpha -= (Conductor.crochet / 1000) * FlxG.elapsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1214,6 +1344,9 @@ class PlayState extends MusicBeatState
|
||||||
case 'school':
|
case 'school':
|
||||||
camFollow.x = boyfriend.getMidpoint().x - 200;
|
camFollow.x = boyfriend.getMidpoint().x - 200;
|
||||||
camFollow.y = boyfriend.getMidpoint().y - 200;
|
camFollow.y = boyfriend.getMidpoint().y - 200;
|
||||||
|
case 'schoolEvil':
|
||||||
|
camFollow.x = boyfriend.getMidpoint().x - 200;
|
||||||
|
camFollow.y = boyfriend.getMidpoint().y - 200;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SONG.song.toLowerCase() == 'tutorial')
|
if (SONG.song.toLowerCase() == 'tutorial')
|
||||||
|
@ -1507,7 +1640,7 @@ class PlayState extends MusicBeatState
|
||||||
var pixelShitPart1:String = "";
|
var pixelShitPart1:String = "";
|
||||||
var pixelShitPart2:String = '';
|
var pixelShitPart2:String = '';
|
||||||
|
|
||||||
if (curStage == 'school')
|
if (curStage.startsWith('school'))
|
||||||
{
|
{
|
||||||
pixelShitPart1 = 'weeb/pixelUI/';
|
pixelShitPart1 = 'weeb/pixelUI/';
|
||||||
pixelShitPart2 = '-pixel';
|
pixelShitPart2 = '-pixel';
|
||||||
|
@ -1530,7 +1663,7 @@ class PlayState extends MusicBeatState
|
||||||
comboSpr.velocity.x += FlxG.random.int(1, 10);
|
comboSpr.velocity.x += FlxG.random.int(1, 10);
|
||||||
add(rating);
|
add(rating);
|
||||||
|
|
||||||
if (curStage != 'school')
|
if (!curStage.startsWith('school'))
|
||||||
{
|
{
|
||||||
rating.setGraphicSize(Std.int(rating.width * 0.7));
|
rating.setGraphicSize(Std.int(rating.width * 0.7));
|
||||||
rating.antialiasing = true;
|
rating.antialiasing = true;
|
||||||
|
@ -1560,7 +1693,7 @@ class PlayState extends MusicBeatState
|
||||||
numScore.x = coolText.x + (43 * daLoop) - 90;
|
numScore.x = coolText.x + (43 * daLoop) - 90;
|
||||||
numScore.y += 80;
|
numScore.y += 80;
|
||||||
|
|
||||||
if (curStage != 'school')
|
if (!curStage.startsWith('school'))
|
||||||
{
|
{
|
||||||
numScore.antialiasing = true;
|
numScore.antialiasing = true;
|
||||||
numScore.setGraphicSize(Std.int(numScore.width * 0.5));
|
numScore.setGraphicSize(Std.int(numScore.width * 0.5));
|
||||||
|
@ -1795,7 +1928,7 @@ class PlayState extends MusicBeatState
|
||||||
spr.animation.play('static');
|
spr.animation.play('static');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (spr.animation.curAnim.name == 'confirm' && curStage != 'school')
|
if (spr.animation.curAnim.name == 'confirm' && !curStage.startsWith('school'))
|
||||||
{
|
{
|
||||||
spr.centerOffsets();
|
spr.centerOffsets();
|
||||||
spr.offset.x -= 13;
|
spr.offset.x -= 13;
|
||||||
|
@ -2029,6 +2162,7 @@ class PlayState extends MusicBeatState
|
||||||
|
|
||||||
override function beatHit()
|
override function beatHit()
|
||||||
{
|
{
|
||||||
|
wiggleShit.update(Conductor.crochet);
|
||||||
super.beatHit();
|
super.beatHit();
|
||||||
|
|
||||||
if (generatedMusic)
|
if (generatedMusic)
|
||||||
|
|
133
source/WiggleEffect.hx
Normal file
133
source/WiggleEffect.hx
Normal file
|
@ -0,0 +1,133 @@
|
||||||
|
package;
|
||||||
|
|
||||||
|
// STOLEN FROM HAXEFLIXEL DEMO LOL
|
||||||
|
import flixel.system.FlxAssets.FlxShader;
|
||||||
|
|
||||||
|
enum WiggleEffectType
|
||||||
|
{
|
||||||
|
DREAMY;
|
||||||
|
WAVY;
|
||||||
|
HEAT_WAVE_HORIZONTAL;
|
||||||
|
HEAT_WAVE_VERTICAL;
|
||||||
|
FLAG;
|
||||||
|
}
|
||||||
|
|
||||||
|
class WiggleEffect
|
||||||
|
{
|
||||||
|
public var shader(default, null):WiggleShader = new WiggleShader();
|
||||||
|
public var effectType(default, set):WiggleEffectType = DREAMY;
|
||||||
|
public var waveSpeed(default, set):Float = 0;
|
||||||
|
public var waveFrequency(default, set):Float = 0;
|
||||||
|
public var waveAmplitude(default, set):Float = 0;
|
||||||
|
|
||||||
|
public function new():Void
|
||||||
|
{
|
||||||
|
shader.uTime.value = [0];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(elapsed:Float):Void
|
||||||
|
{
|
||||||
|
shader.uTime.value[0] += elapsed;
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_effectType(v:WiggleEffectType):WiggleEffectType
|
||||||
|
{
|
||||||
|
effectType = v;
|
||||||
|
shader.effectType.value = [WiggleEffectType.getConstructors().indexOf(Std.string(v))];
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_waveSpeed(v:Float):Float
|
||||||
|
{
|
||||||
|
waveSpeed = v;
|
||||||
|
shader.uSpeed.value = [waveSpeed];
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_waveFrequency(v:Float):Float
|
||||||
|
{
|
||||||
|
waveFrequency = v;
|
||||||
|
shader.uFrequency.value = [waveFrequency];
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_waveAmplitude(v:Float):Float
|
||||||
|
{
|
||||||
|
waveAmplitude = v;
|
||||||
|
shader.uWaveAmplitude.value = [waveAmplitude];
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class WiggleShader extends FlxShader
|
||||||
|
{
|
||||||
|
@:glFragmentSource('
|
||||||
|
#pragma header
|
||||||
|
//uniform float tx, ty; // x,y waves phase
|
||||||
|
uniform float uTime;
|
||||||
|
|
||||||
|
const int EFFECT_TYPE_DREAMY = 0;
|
||||||
|
const int EFFECT_TYPE_WAVY = 1;
|
||||||
|
const int EFFECT_TYPE_HEAT_WAVE_HORIZONTAL = 2;
|
||||||
|
const int EFFECT_TYPE_HEAT_WAVE_VERTICAL = 3;
|
||||||
|
const int EFFECT_TYPE_FLAG = 4;
|
||||||
|
|
||||||
|
uniform int effectType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* How fast the waves move over time
|
||||||
|
*/
|
||||||
|
uniform float uSpeed;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Number of waves over time
|
||||||
|
*/
|
||||||
|
uniform float uFrequency;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* How much the pixels are going to stretch over the waves
|
||||||
|
*/
|
||||||
|
uniform float uWaveAmplitude;
|
||||||
|
|
||||||
|
vec2 sineWave(vec2 pt)
|
||||||
|
{
|
||||||
|
float x = 0.0;
|
||||||
|
float y = 0.0;
|
||||||
|
|
||||||
|
if (effectType == EFFECT_TYPE_DREAMY)
|
||||||
|
{
|
||||||
|
float offsetX = sin(pt.y * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||||
|
pt.x += offsetX; // * (pt.y - 1.0); // <- Uncomment to stop bottom part of the screen from moving
|
||||||
|
}
|
||||||
|
else if (effectType == EFFECT_TYPE_WAVY)
|
||||||
|
{
|
||||||
|
float offsetY = sin(pt.x * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||||
|
pt.y += offsetY; // * (pt.y - 1.0); // <- Uncomment to stop bottom part of the screen from moving
|
||||||
|
}
|
||||||
|
else if (effectType == EFFECT_TYPE_HEAT_WAVE_HORIZONTAL)
|
||||||
|
{
|
||||||
|
x = sin(pt.x * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||||
|
}
|
||||||
|
else if (effectType == EFFECT_TYPE_HEAT_WAVE_VERTICAL)
|
||||||
|
{
|
||||||
|
y = sin(pt.y * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||||
|
}
|
||||||
|
else if (effectType == EFFECT_TYPE_FLAG)
|
||||||
|
{
|
||||||
|
y = sin(pt.y * uFrequency + 10.0 * pt.x + uTime * uSpeed) * uWaveAmplitude;
|
||||||
|
x = sin(pt.x * uFrequency + 5.0 * pt.y + uTime * uSpeed) * uWaveAmplitude;
|
||||||
|
}
|
||||||
|
|
||||||
|
return vec2(pt.x + x, pt.y + y);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec2 uv = sineWave(openfl_TextureCoordv);
|
||||||
|
gl_FragColor = texture2D(bitmap, uv);
|
||||||
|
}')
|
||||||
|
public function new()
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue