quickAnimAdd() for all, fixes looping anims

dad, pico looping idle fixed, they now dance on beat instead
also adds animation.finish() after initial anims, so their anims on create don't get in the way of anims during countdown
commented-out idea for senpai idle, as it's currently 2 beats long but not properly on beat
This commit is contained in:
MtH 2021-03-19 18:13:41 +01:00
parent be5907ba12
commit 7e52a76329
4 changed files with 146 additions and 169 deletions

View file

@ -13,6 +13,7 @@ class BackgroundDancer extends FlxSprite
animation.addByIndices('danceLeft', 'bg dancer sketch PINK', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false); animation.addByIndices('danceLeft', 'bg dancer sketch PINK', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false);
animation.addByIndices('danceRight', 'bg dancer sketch PINK', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, false); animation.addByIndices('danceRight', 'bg dancer sketch PINK', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, false);
animation.play('danceLeft'); animation.play('danceLeft');
animation.finish();
antialiasing = true; antialiasing = true;
} }

View file

@ -16,6 +16,7 @@ class BackgroundGirls extends FlxSprite
animation.addByIndices('danceRight', 'BG girls group', CoolUtil.numberArray(30, 15), "", 24, false); animation.addByIndices('danceRight', 'BG girls group', CoolUtil.numberArray(30, 15), "", 24, false);
animation.play('danceLeft'); animation.play('danceLeft');
animation.finish();
} }
var danceDir:Bool = false; var danceDir:Bool = false;
@ -25,6 +26,7 @@ class BackgroundGirls extends FlxSprite
animation.addByIndices('danceLeft', 'BG fangirls dissuaded', CoolUtil.numberArray(14), "", 24, false); animation.addByIndices('danceLeft', 'BG fangirls dissuaded', CoolUtil.numberArray(14), "", 24, false);
animation.addByIndices('danceRight', 'BG fangirls dissuaded', CoolUtil.numberArray(30, 15), "", 24, false); animation.addByIndices('danceRight', 'BG fangirls dissuaded', CoolUtil.numberArray(30, 15), "", 24, false);
dance(); dance();
animation.finish();
} }
public function dance():Void public function dance():Void

View file

@ -35,17 +35,17 @@ class Character extends FlxSprite
// GIRLFRIEND CODE // GIRLFRIEND CODE
tex = Paths.getSparrowAtlas('characters/GF_assets'); tex = Paths.getSparrowAtlas('characters/GF_assets');
frames = tex; frames = tex;
animation.addByPrefix('cheer', 'GF Cheer', 24, false); quickAnimAdd('cheer', 'GF Cheer');
animation.addByPrefix('singLEFT', 'GF left note', 24, false); quickAnimAdd('singLEFT', 'GF left note');
animation.addByPrefix('singRIGHT', 'GF Right Note', 24, false); quickAnimAdd('singRIGHT', 'GF Right Note');
animation.addByPrefix('singUP', 'GF Up Note', 24, false); quickAnimAdd('singUP', 'GF Up Note');
animation.addByPrefix('singDOWN', 'GF Down Note', 24, false); quickAnimAdd('singDOWN', 'GF Down Note');
animation.addByIndices('sad', 'gf sad', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "", 24, false); animation.addByIndices('sad', 'gf sad', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "", 24, false);
animation.addByIndices('danceLeft', 'GF Dancing Beat', [30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false); animation.addByIndices('danceLeft', 'GF Dancing Beat', [30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false);
animation.addByIndices('danceRight', 'GF Dancing Beat', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, false); animation.addByIndices('danceRight', 'GF Dancing Beat', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, false);
animation.addByIndices('hairBlow', "GF Dancing Beat Hair blowing", [0, 1, 2, 3], "", 24); animation.addByIndices('hairBlow', "GF Dancing Beat Hair blowing", [0, 1, 2, 3], "", 24);
animation.addByIndices('hairFall', "GF Dancing Beat Hair Landing", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "", 24, false); animation.addByIndices('hairFall', "GF Dancing Beat Hair Landing", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "", 24, false);
animation.addByPrefix('scared', 'GF FEAR', 24); animation.addByPrefix('scared', 'GF FEAR', 24, true);
loadOffsetFile(curCharacter); loadOffsetFile(curCharacter);
@ -54,17 +54,17 @@ class Character extends FlxSprite
case 'gf-christmas': case 'gf-christmas':
tex = Paths.getSparrowAtlas('christmas/gfChristmas'); tex = Paths.getSparrowAtlas('christmas/gfChristmas');
frames = tex; frames = tex;
animation.addByPrefix('cheer', 'GF Cheer', 24, false); quickAnimAdd('cheer', 'GF Cheer');
animation.addByPrefix('singLEFT', 'GF left note', 24, false); quickAnimAdd('singLEFT', 'GF left note');
animation.addByPrefix('singRIGHT', 'GF Right Note', 24, false); quickAnimAdd('singRIGHT', 'GF Right Note');
animation.addByPrefix('singUP', 'GF Up Note', 24, false); quickAnimAdd('singUP', 'GF Up Note');
animation.addByPrefix('singDOWN', 'GF Down Note', 24, false); quickAnimAdd('singDOWN', 'GF Down Note');
animation.addByIndices('sad', 'gf sad', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "", 24, false); animation.addByIndices('sad', 'gf sad', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "", 24, false);
animation.addByIndices('danceLeft', 'GF Dancing Beat', [30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false); animation.addByIndices('danceLeft', 'GF Dancing Beat', [30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false);
animation.addByIndices('danceRight', 'GF Dancing Beat', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, false); animation.addByIndices('danceRight', 'GF Dancing Beat', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, false);
animation.addByIndices('hairBlow', "GF Dancing Beat Hair blowing", [0, 1, 2, 3], "", 24); animation.addByIndices('hairBlow', "GF Dancing Beat Hair blowing", [0, 1, 2, 3], "", 24);
animation.addByIndices('hairFall', "GF Dancing Beat Hair Landing", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "", 24, false); animation.addByIndices('hairFall', "GF Dancing Beat Hair Landing", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "", 24, false);
animation.addByPrefix('scared', 'GF FEAR', 24); animation.addByPrefix('scared', 'GF FEAR', 24, true);
addOffset('cheer'); addOffset('cheer');
addOffset('sad', -2, -21); addOffset('sad', -2, -21);
@ -135,11 +135,11 @@ class Character extends FlxSprite
// DAD ANIMATION LOADING CODE // DAD ANIMATION LOADING CODE
tex = Paths.getSparrowAtlas('DADDY_DEAREST'); tex = Paths.getSparrowAtlas('DADDY_DEAREST');
frames = tex; frames = tex;
animation.addByPrefix('idle', 'Dad idle dance', 24); quickAnimAdd('idle', 'Dad idle dance');
animation.addByPrefix('singUP', 'Dad Sing Note UP', 24); quickAnimAdd('singUP', 'Dad Sing Note UP');
animation.addByPrefix('singRIGHT', 'Dad Sing Note RIGHT', 24); quickAnimAdd('singRIGHT', 'Dad Sing Note RIGHT');
animation.addByPrefix('singDOWN', 'Dad Sing Note DOWN', 24); quickAnimAdd('singDOWN', 'Dad Sing Note DOWN');
animation.addByPrefix('singLEFT', 'Dad Sing Note LEFT', 24); quickAnimAdd('singLEFT', 'Dad Sing Note LEFT');
addOffset('idle'); addOffset('idle');
addOffset("singUP", -6, 50); addOffset("singUP", -6, 50);
@ -151,10 +151,10 @@ class Character extends FlxSprite
case 'spooky': case 'spooky':
tex = Paths.getSparrowAtlas('spooky_kids_assets'); tex = Paths.getSparrowAtlas('spooky_kids_assets');
frames = tex; frames = tex;
animation.addByPrefix('singUP', 'spooky UP NOTE', 24, false); quickAnimAdd('singUP', 'spooky UP NOTE');
animation.addByPrefix('singDOWN', 'spooky DOWN note', 24, false); quickAnimAdd('singDOWN', 'spooky DOWN note');
animation.addByPrefix('singLEFT', 'note sing left', 24, false); quickAnimAdd('singLEFT', 'note sing left');
animation.addByPrefix('singRIGHT', 'spooky sing right', 24, false); quickAnimAdd('singRIGHT', 'spooky sing right');
animation.addByIndices('danceLeft', 'spooky dance idle', [0, 2, 6], "", 12, false); animation.addByIndices('danceLeft', 'spooky dance idle', [0, 2, 6], "", 12, false);
animation.addByIndices('danceRight', 'spooky dance idle', [8, 10, 12, 14], "", 12, false); animation.addByIndices('danceRight', 'spooky dance idle', [8, 10, 12, 14], "", 12, false);
@ -171,13 +171,13 @@ class Character extends FlxSprite
tex = Paths.getSparrowAtlas('Mom_Assets'); tex = Paths.getSparrowAtlas('Mom_Assets');
frames = tex; frames = tex;
animation.addByPrefix('idle', "Mom Idle", 24, false); quickAnimAdd('idle', "Mom Idle");
animation.addByPrefix('singUP', "Mom Up Pose", 24, false); quickAnimAdd('singUP', "Mom Up Pose");
animation.addByPrefix('singDOWN', "MOM DOWN POSE", 24, false); quickAnimAdd('singDOWN', "MOM DOWN POSE");
animation.addByPrefix('singLEFT', 'Mom Left Pose', 24, false); quickAnimAdd('singLEFT', 'Mom Left Pose');
// ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT // ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT
// CUZ DAVE IS DUMB! // CUZ DAVE IS DUMB!
animation.addByPrefix('singRIGHT', 'Mom Pose Left', 24, false); quickAnimAdd('singRIGHT', 'Mom Pose Left');
addOffset('idle'); addOffset('idle');
addOffset("singUP", 14, 71); addOffset("singUP", 14, 71);
@ -191,13 +191,13 @@ class Character extends FlxSprite
tex = Paths.getSparrowAtlas('momCar'); tex = Paths.getSparrowAtlas('momCar');
frames = tex; frames = tex;
animation.addByPrefix('idle', "Mom Idle", 24, false); quickAnimAdd('idle', "Mom Idle");
animation.addByPrefix('singUP', "Mom Up Pose", 24, false); quickAnimAdd('singUP', "Mom Up Pose");
animation.addByPrefix('singDOWN', "MOM DOWN POSE", 24, false); quickAnimAdd('singDOWN', "MOM DOWN POSE");
animation.addByPrefix('singLEFT', 'Mom Left Pose', 24, false); quickAnimAdd('singLEFT', 'Mom Left Pose');
// ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT // ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT
// CUZ DAVE IS DUMB! // CUZ DAVE IS DUMB!
animation.addByPrefix('singRIGHT', 'Mom Pose Left', 24, false); quickAnimAdd('singRIGHT', 'Mom Pose Left');
addOffset('idle'); addOffset('idle');
addOffset("singUP", 14, 71); addOffset("singUP", 14, 71);
@ -209,11 +209,11 @@ class Character extends FlxSprite
case 'monster': case 'monster':
tex = Paths.getSparrowAtlas('Monster_Assets'); tex = Paths.getSparrowAtlas('Monster_Assets');
frames = tex; frames = tex;
animation.addByPrefix('idle', 'monster idle', 24, false); quickAnimAdd('idle', 'monster idle');
animation.addByPrefix('singUP', 'monster up note', 24, false); quickAnimAdd('singUP', 'monster up note');
animation.addByPrefix('singDOWN', 'monster down', 24, false); quickAnimAdd('singDOWN', 'monster down');
animation.addByPrefix('singLEFT', 'Monster left note', 24, false); quickAnimAdd('singLEFT', 'Monster left note');
animation.addByPrefix('singRIGHT', 'Monster Right note', 24, false); quickAnimAdd('singRIGHT', 'Monster Right note');
addOffset('idle'); addOffset('idle');
addOffset("singUP", -20, 94); addOffset("singUP", -20, 94);
@ -224,11 +224,11 @@ class Character extends FlxSprite
case 'monster-christmas': case 'monster-christmas':
tex = Paths.getSparrowAtlas('christmas/monsterChristmas'); tex = Paths.getSparrowAtlas('christmas/monsterChristmas');
frames = tex; frames = tex;
animation.addByPrefix('idle', 'monster idle', 24, false); quickAnimAdd('idle', 'monster idle');
animation.addByPrefix('singUP', 'monster up note', 24, false); quickAnimAdd('singUP', 'monster up note');
animation.addByPrefix('singDOWN', 'monster down', 24, false); quickAnimAdd('singDOWN', 'monster down');
animation.addByPrefix('singLEFT', 'Monster left note', 24, false); quickAnimAdd('singLEFT', 'Monster left note');
animation.addByPrefix('singRIGHT', 'Monster Right note', 24, false); quickAnimAdd('singRIGHT', 'Monster Right note');
addOffset('idle'); addOffset('idle');
addOffset("singUP", -20, 50); addOffset("singUP", -20, 50);
@ -239,27 +239,27 @@ class Character extends FlxSprite
case 'pico': case 'pico':
tex = Paths.getSparrowAtlas('Pico_FNF_assetss'); tex = Paths.getSparrowAtlas('Pico_FNF_assetss');
frames = tex; frames = tex;
animation.addByPrefix('idle', "Pico Idle Dance", 24); quickAnimAdd('idle', "Pico Idle Dance");
animation.addByPrefix('singUP', 'pico Up note0', 24, false); quickAnimAdd('singUP', 'pico Up note0');
animation.addByPrefix('singDOWN', 'Pico Down Note0', 24, false); quickAnimAdd('singDOWN', 'Pico Down Note0');
if (isPlayer) if (isPlayer)
{ {
animation.addByPrefix('singLEFT', 'Pico NOTE LEFT0', 24, false); quickAnimAdd('singLEFT', 'Pico NOTE LEFT0');
animation.addByPrefix('singRIGHT', 'Pico Note Right0', 24, false); quickAnimAdd('singRIGHT', 'Pico Note Right0');
animation.addByPrefix('singRIGHTmiss', 'Pico Note Right Miss', 24, false); quickAnimAdd('singRIGHTmiss', 'Pico Note Right Miss');
animation.addByPrefix('singLEFTmiss', 'Pico NOTE LEFT miss', 24, false); quickAnimAdd('singLEFTmiss', 'Pico NOTE LEFT miss');
} }
else else
{ {
// Need to be flipped! REDO THIS LATER! // Need to be flipped! REDO THIS LATER!
animation.addByPrefix('singLEFT', 'Pico Note Right0', 24, false); quickAnimAdd('singLEFT', 'Pico Note Right0');
animation.addByPrefix('singRIGHT', 'Pico NOTE LEFT0', 24, false); quickAnimAdd('singRIGHT', 'Pico NOTE LEFT0');
animation.addByPrefix('singRIGHTmiss', 'Pico NOTE LEFT miss', 24, false); quickAnimAdd('singRIGHTmiss', 'Pico NOTE LEFT miss');
animation.addByPrefix('singLEFTmiss', 'Pico Note Right Miss', 24, false); quickAnimAdd('singLEFTmiss', 'Pico Note Right Miss');
} }
animation.addByPrefix('singUPmiss', 'pico Up note miss', 24); quickAnimAdd('singUPmiss', 'pico Up note miss');
animation.addByPrefix('singDOWNmiss', 'Pico Down Note MISS', 24); quickAnimAdd('singDOWNmiss', 'Pico Down Note MISS');
addOffset('idle'); addOffset('idle');
addOffset("singUP", -29, 27); addOffset("singUP", -29, 27);
@ -290,22 +290,22 @@ class Character extends FlxSprite
case 'bf': case 'bf':
var tex = Paths.getSparrowAtlas('characters/BOYFRIEND'); var tex = Paths.getSparrowAtlas('characters/BOYFRIEND');
frames = tex; frames = tex;
animation.addByPrefix('idle', 'BF idle dance', 24, false); quickAnimAdd('idle', 'BF idle dance');
animation.addByPrefix('singUP', 'BF NOTE UP0', 24, false); quickAnimAdd('singUP', 'BF NOTE UP0');
animation.addByPrefix('singLEFT', 'BF NOTE LEFT0', 24, false); quickAnimAdd('singLEFT', 'BF NOTE LEFT0');
animation.addByPrefix('singRIGHT', 'BF NOTE RIGHT0', 24, false); quickAnimAdd('singRIGHT', 'BF NOTE RIGHT0');
animation.addByPrefix('singDOWN', 'BF NOTE DOWN0', 24, false); quickAnimAdd('singDOWN', 'BF NOTE DOWN0');
animation.addByPrefix('singUPmiss', 'BF NOTE UP MISS', 24, false); quickAnimAdd('singUPmiss', 'BF NOTE UP MISS');
animation.addByPrefix('singLEFTmiss', 'BF NOTE LEFT MISS', 24, false); quickAnimAdd('singLEFTmiss', 'BF NOTE LEFT MISS');
animation.addByPrefix('singRIGHTmiss', 'BF NOTE RIGHT MISS', 24, false); quickAnimAdd('singRIGHTmiss', 'BF NOTE RIGHT MISS');
animation.addByPrefix('singDOWNmiss', 'BF NOTE DOWN MISS', 24, false); quickAnimAdd('singDOWNmiss', 'BF NOTE DOWN MISS');
animation.addByPrefix('hey', 'BF HEY', 24, false); quickAnimAdd('hey', 'BF HEY');
animation.addByPrefix('firstDeath', "BF dies", 24, false); quickAnimAdd('firstDeath', "BF dies");
animation.addByPrefix('deathLoop', "BF Dead Loop", 24, true); animation.addByPrefix('deathLoop', "BF Dead Loop", 24, true);
animation.addByPrefix('deathConfirm', "BF Dead confirm", 24, false); quickAnimAdd('deathConfirm', "BF Dead confirm");
animation.addByPrefix('scared', 'BF idle shaking', 24); animation.addByPrefix('scared', 'BF idle shaking', 24, true);
loadOffsetFile(curCharacter); loadOffsetFile(curCharacter);
@ -318,16 +318,16 @@ class Character extends FlxSprite
case 'bf-christmas': case 'bf-christmas':
var tex = Paths.getSparrowAtlas('christmas/bfChristmas'); var tex = Paths.getSparrowAtlas('christmas/bfChristmas');
frames = tex; frames = tex;
animation.addByPrefix('idle', 'BF idle dance', 24, false); quickAnimAdd('idle', 'BF idle dance');
animation.addByPrefix('singUP', 'BF NOTE UP0', 24, false); quickAnimAdd('singUP', 'BF NOTE UP0');
animation.addByPrefix('singLEFT', 'BF NOTE LEFT0', 24, false); quickAnimAdd('singLEFT', 'BF NOTE LEFT0');
animation.addByPrefix('singRIGHT', 'BF NOTE RIGHT0', 24, false); quickAnimAdd('singRIGHT', 'BF NOTE RIGHT0');
animation.addByPrefix('singDOWN', 'BF NOTE DOWN0', 24, false); quickAnimAdd('singDOWN', 'BF NOTE DOWN0');
animation.addByPrefix('singUPmiss', 'BF NOTE UP MISS', 24, false); quickAnimAdd('singUPmiss', 'BF NOTE UP MISS');
animation.addByPrefix('singLEFTmiss', 'BF NOTE LEFT MISS', 24, false); quickAnimAdd('singLEFTmiss', 'BF NOTE LEFT MISS');
animation.addByPrefix('singRIGHTmiss', 'BF NOTE RIGHT MISS', 24, false); quickAnimAdd('singRIGHTmiss', 'BF NOTE RIGHT MISS');
animation.addByPrefix('singDOWNmiss', 'BF NOTE DOWN MISS', 24, false); quickAnimAdd('singDOWNmiss', 'BF NOTE DOWN MISS');
animation.addByPrefix('hey', 'BF HEY', 24, false); quickAnimAdd('hey', 'BF HEY');
addOffset('idle', -5); addOffset('idle', -5);
addOffset("singUP", -29, 27); addOffset("singUP", -29, 27);
@ -346,15 +346,15 @@ class Character extends FlxSprite
case 'bf-car': case 'bf-car':
var tex = Paths.getSparrowAtlas('bfCar'); var tex = Paths.getSparrowAtlas('bfCar');
frames = tex; frames = tex;
animation.addByPrefix('idle', 'BF idle dance', 24, false); quickAnimAdd('idle', 'BF idle dance');
animation.addByPrefix('singUP', 'BF NOTE UP0', 24, false); quickAnimAdd('singUP', 'BF NOTE UP0');
animation.addByPrefix('singLEFT', 'BF NOTE LEFT0', 24, false); quickAnimAdd('singLEFT', 'BF NOTE LEFT0');
animation.addByPrefix('singRIGHT', 'BF NOTE RIGHT0', 24, false); quickAnimAdd('singRIGHT', 'BF NOTE RIGHT0');
animation.addByPrefix('singDOWN', 'BF NOTE DOWN0', 24, false); quickAnimAdd('singDOWN', 'BF NOTE DOWN0');
animation.addByPrefix('singUPmiss', 'BF NOTE UP MISS', 24, false); quickAnimAdd('singUPmiss', 'BF NOTE UP MISS');
animation.addByPrefix('singLEFTmiss', 'BF NOTE LEFT MISS', 24, false); quickAnimAdd('singLEFTmiss', 'BF NOTE LEFT MISS');
animation.addByPrefix('singRIGHTmiss', 'BF NOTE RIGHT MISS', 24, false); quickAnimAdd('singRIGHTmiss', 'BF NOTE RIGHT MISS');
animation.addByPrefix('singDOWNmiss', 'BF NOTE DOWN MISS', 24, false); quickAnimAdd('singDOWNmiss', 'BF NOTE DOWN MISS');
addOffset('idle', -5); addOffset('idle', -5);
addOffset("singUP", -29, 27); addOffset("singUP", -29, 27);
@ -370,15 +370,15 @@ class Character extends FlxSprite
flipX = true; flipX = true;
case 'bf-pixel': case 'bf-pixel':
frames = Paths.getSparrowAtlas('weeb/bfPixel'); frames = Paths.getSparrowAtlas('weeb/bfPixel');
animation.addByPrefix('idle', 'BF IDLE', 24, false); quickAnimAdd('idle', 'BF IDLE');
animation.addByPrefix('singUP', 'BF UP NOTE', 24, false); quickAnimAdd('singUP', 'BF UP NOTE');
animation.addByPrefix('singLEFT', 'BF LEFT NOTE', 24, false); quickAnimAdd('singLEFT', 'BF LEFT NOTE');
animation.addByPrefix('singRIGHT', 'BF RIGHT NOTE', 24, false); quickAnimAdd('singRIGHT', 'BF RIGHT NOTE');
animation.addByPrefix('singDOWN', 'BF DOWN NOTE', 24, false); quickAnimAdd('singDOWN', 'BF DOWN NOTE');
animation.addByPrefix('singUPmiss', 'BF UP MISS', 24, false); quickAnimAdd('singUPmiss', 'BF UP MISS');
animation.addByPrefix('singLEFTmiss', 'BF LEFT MISS', 24, false); quickAnimAdd('singLEFTmiss', 'BF LEFT MISS');
animation.addByPrefix('singRIGHTmiss', 'BF RIGHT MISS', 24, false); quickAnimAdd('singRIGHTmiss', 'BF RIGHT MISS');
animation.addByPrefix('singDOWNmiss', 'BF DOWN MISS', 24, false); quickAnimAdd('singDOWNmiss', 'BF DOWN MISS');
addOffset('idle'); addOffset('idle');
addOffset("singUP"); addOffset("singUP");
@ -403,10 +403,10 @@ class Character extends FlxSprite
flipX = true; flipX = true;
case 'bf-pixel-dead': case 'bf-pixel-dead':
frames = Paths.getSparrowAtlas('weeb/bfPixelsDEAD'); frames = Paths.getSparrowAtlas('weeb/bfPixelsDEAD');
animation.addByPrefix('singUP', "BF Dies pixel", 24, false); quickAnimAdd('singUP', "BF Dies pixel");
animation.addByPrefix('firstDeath', "BF Dies pixel", 24, false); quickAnimAdd('firstDeath', "BF Dies pixel");
animation.addByPrefix('deathLoop', "Retry Loop", 24, true); animation.addByPrefix('deathLoop', "Retry Loop", 24, true);
animation.addByPrefix('deathConfirm', "RETRY CONFIRM", 24, false); quickAnimAdd('deathConfirm', "RETRY CONFIRM");
animation.play('firstDeath'); animation.play('firstDeath');
addOffset('firstDeath'); addOffset('firstDeath');
@ -421,11 +421,16 @@ class Character extends FlxSprite
case 'senpai': case 'senpai':
frames = Paths.getSparrowAtlas('weeb/senpai'); frames = Paths.getSparrowAtlas('weeb/senpai');
animation.addByPrefix('idle', 'Senpai Idle', 24, false); quickAnimAdd('idle', 'Senpai Idle');
animation.addByPrefix('singUP', 'SENPAI UP NOTE', 24, false); // at framerate 16.8 animation plays over 2 beats at 144bpm,
animation.addByPrefix('singLEFT', 'SENPAI LEFT NOTE', 24, false); // but if the game lags or the bpm is > 144 (mods etc.)
animation.addByPrefix('singRIGHT', 'SENPAI RIGHT NOTE', 24, false); // he may miss his next dance
animation.addByPrefix('singDOWN', 'SENPAI DOWN NOTE', 24, false); // animation.getByName('idle').frameRate = 16.8;
quickAnimAdd('singUP', 'SENPAI UP NOTE');
quickAnimAdd('singLEFT', 'SENPAI LEFT NOTE');
quickAnimAdd('singRIGHT', 'SENPAI RIGHT NOTE');
quickAnimAdd('singDOWN', 'SENPAI DOWN NOTE');
addOffset('idle'); addOffset('idle');
addOffset("singUP", 5, 37); addOffset("singUP", 5, 37);
@ -441,11 +446,11 @@ class Character extends FlxSprite
antialiasing = false; antialiasing = false;
case 'senpai-angry': case 'senpai-angry':
frames = Paths.getSparrowAtlas('weeb/senpai'); frames = Paths.getSparrowAtlas('weeb/senpai');
animation.addByPrefix('idle', 'Angry Senpai Idle', 24, false); quickAnimAdd('idle', 'Angry Senpai Idle');
animation.addByPrefix('singUP', 'Angry Senpai UP NOTE', 24, false); quickAnimAdd('singUP', 'Angry Senpai UP NOTE');
animation.addByPrefix('singLEFT', 'Angry Senpai LEFT NOTE', 24, false); quickAnimAdd('singLEFT', 'Angry Senpai LEFT NOTE');
animation.addByPrefix('singRIGHT', 'Angry Senpai RIGHT NOTE', 24, false); quickAnimAdd('singRIGHT', 'Angry Senpai RIGHT NOTE');
animation.addByPrefix('singDOWN', 'Angry Senpai DOWN NOTE', 24, false); quickAnimAdd('singDOWN', 'Angry Senpai DOWN NOTE');
addOffset('idle'); addOffset('idle');
addOffset("singUP", 5, 37); addOffset("singUP", 5, 37);
@ -461,11 +466,11 @@ class Character extends FlxSprite
case 'spirit': case 'spirit':
frames = Paths.getPackerAtlas('weeb/spirit'); frames = Paths.getPackerAtlas('weeb/spirit');
animation.addByPrefix('idle', "idle spirit_", 24, false); quickAnimAdd('idle', "idle spirit_");
animation.addByPrefix('singUP', "up_", 24, false); quickAnimAdd('singUP', "up_");
animation.addByPrefix('singRIGHT', "right_", 24, false); quickAnimAdd('singRIGHT', "right_");
animation.addByPrefix('singLEFT', "left_", 24, false); quickAnimAdd('singLEFT', "left_");
animation.addByPrefix('singDOWN', "spirit down_", 24, false); quickAnimAdd('singDOWN', "spirit down_");
addOffset('idle', -220, -280); addOffset('idle', -220, -280);
addOffset('singUP', -220, -240); addOffset('singUP', -220, -240);
@ -482,17 +487,17 @@ class Character extends FlxSprite
case 'parents-christmas': case 'parents-christmas':
frames = Paths.getSparrowAtlas('christmas/mom_dad_christmas_assets'); frames = Paths.getSparrowAtlas('christmas/mom_dad_christmas_assets');
animation.addByPrefix('idle', 'Parent Christmas Idle', 24, false); quickAnimAdd('idle', 'Parent Christmas Idle');
animation.addByPrefix('singUP', 'Parent Up Note Dad', 24, false); quickAnimAdd('singUP', 'Parent Up Note Dad');
animation.addByPrefix('singDOWN', 'Parent Down Note Dad', 24, false); quickAnimAdd('singDOWN', 'Parent Down Note Dad');
animation.addByPrefix('singLEFT', 'Parent Left Note Dad', 24, false); quickAnimAdd('singLEFT', 'Parent Left Note Dad');
animation.addByPrefix('singRIGHT', 'Parent Right Note Dad', 24, false); quickAnimAdd('singRIGHT', 'Parent Right Note Dad');
animation.addByPrefix('singUP-alt', 'Parent Up Note Mom', 24, false); quickAnimAdd('singUP-alt', 'Parent Up Note Mom');
animation.addByPrefix('singDOWN-alt', 'Parent Down Note Mom', 24, false); quickAnimAdd('singDOWN-alt', 'Parent Down Note Mom');
animation.addByPrefix('singLEFT-alt', 'Parent Left Note Mom', 24, false); quickAnimAdd('singLEFT-alt', 'Parent Left Note Mom');
animation.addByPrefix('singRIGHT-alt', 'Parent Right Note Mom', 24, false); quickAnimAdd('singRIGHT-alt', 'Parent Right Note Mom');
addOffset('idle'); addOffset('idle');
addOffset("singUP", -47, 24); addOffset("singUP", -47, 24);
@ -508,28 +513,28 @@ class Character extends FlxSprite
case 'tankman': case 'tankman':
frames = Paths.getSparrowAtlas('characters/tankmanCaptain'); frames = Paths.getSparrowAtlas('characters/tankmanCaptain');
animation.addByPrefix('idle', "Tankman Idle Dance", 24, false); quickAnimAdd('idle', "Tankman Idle Dance");
if (isPlayer) if (isPlayer)
{ {
animation.addByPrefix('singLEFT', 'Tankman Note Left0', 24, false); quickAnimAdd('singLEFT', 'Tankman Note Left0');
animation.addByPrefix('singRIGHT', 'Tankman Right Note0', 24, false); quickAnimAdd('singRIGHT', 'Tankman Right Note0');
animation.addByPrefix('singLEFTmiss', 'Tankman Note Left MISS', 24, false); quickAnimAdd('singLEFTmiss', 'Tankman Note Left MISS');
animation.addByPrefix('singRIGHTmiss', 'Tankman Right Note MISS', 24, false); quickAnimAdd('singRIGHTmiss', 'Tankman Right Note MISS');
} }
else else
{ {
// Need to be flipped! REDO THIS LATER // Need to be flipped! REDO THIS LATER
animation.addByPrefix('singLEFT', 'Tankman Right Note0', 24, false); quickAnimAdd('singLEFT', 'Tankman Right Note0');
animation.addByPrefix('singRIGHT', 'Tankman Note Left0', 24, false); quickAnimAdd('singRIGHT', 'Tankman Note Left0');
animation.addByPrefix('singLEFTmiss', 'Tankman Right Note MISS', 24, false); quickAnimAdd('singLEFTmiss', 'Tankman Right Note MISS');
animation.addByPrefix('singRIGHTmiss', 'Tankman Note Left MISS', 24, false); quickAnimAdd('singRIGHTmiss', 'Tankman Note Left MISS');
} }
animation.addByPrefix('singUP', 'Tankman UP note0', 24, false); quickAnimAdd('singUP', 'Tankman UP note0');
animation.addByPrefix('singDOWN', 'Tankman DOWN note0', 24, false); quickAnimAdd('singDOWN', 'Tankman DOWN note0');
animation.addByPrefix('singUPmiss', 'Tankman UP note MISS', 24, false); quickAnimAdd('singUPmiss', 'Tankman UP note MISS');
animation.addByPrefix('singDOWNmiss', 'Tankman DOWN note MISS', 24, false); quickAnimAdd('singDOWNmiss', 'Tankman DOWN note MISS');
loadOffsetFile(curCharacter); loadOffsetFile(curCharacter);
@ -539,6 +544,7 @@ class Character extends FlxSprite
} }
dance(); dance();
animation.finish();
if (isPlayer) if (isPlayer)
{ {
@ -620,7 +626,7 @@ class Character extends FlxSprite
{ {
switch (curCharacter) switch (curCharacter)
{ {
case 'gf': case 'gf' | 'gf-christmas' | 'gf-car' | 'gf-pixel':
if (!animation.curAnim.name.startsWith('hair')) if (!animation.curAnim.name.startsWith('hair'))
{ {
danced = !danced; danced = !danced;
@ -631,37 +637,6 @@ class Character extends FlxSprite
playAnim('danceLeft'); playAnim('danceLeft');
} }
case 'gf-christmas':
if (!animation.curAnim.name.startsWith('hair'))
{
danced = !danced;
if (danced)
playAnim('danceRight');
else
playAnim('danceLeft');
}
case 'gf-car':
if (!animation.curAnim.name.startsWith('hair'))
{
danced = !danced;
if (danced)
playAnim('danceRight');
else
playAnim('danceLeft');
}
case 'gf-pixel':
if (!animation.curAnim.name.startsWith('hair'))
{
danced = !danced;
if (danced)
playAnim('danceRight');
else
playAnim('danceLeft');
}
case 'pico-speaker': case 'pico-speaker':
playAnim('shoot' + FlxG.random.int(1, 4), true); playAnim('shoot' + FlxG.random.int(1, 4), true);

View file

@ -1048,12 +1048,11 @@ class PlayState extends MusicBeatState
} }
}); });
FlxG.sound.play(Paths.sound('introGo'), 0.6); FlxG.sound.play(Paths.sound('introGo'), 0.6);
case 4:
} }
swagCounter += 1; swagCounter += 1;
// generateSong('fresh'); // generateSong('fresh');
}, 5); }, 4);
} }
var previousFrameTime:Int = 0; var previousFrameTime:Int = 0;