diff --git a/assets/data/characters/dad.xml b/assets/data/characters/dad.xml index 82ce5b8f..54d0fc20 100644 --- a/assets/data/characters/dad.xml +++ b/assets/data/characters/dad.xml @@ -1,5 +1,5 @@ - + diff --git a/assets/data/characters/mom.xml b/assets/data/characters/mom.xml new file mode 100644 index 00000000..df76cbe6 --- /dev/null +++ b/assets/data/characters/mom.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/source/BackgroundDancer.hx b/source/BackgroundDancer.hx deleted file mode 100644 index a619dacc..00000000 --- a/source/BackgroundDancer.hx +++ /dev/null @@ -1,30 +0,0 @@ -package; - -import flixel.FlxSprite; -import flixel.graphics.frames.FlxAtlasFrames; - -class BackgroundDancer extends FlxSprite -{ - public function new(x:Float, y:Float) - { - super(x, y); - - frames = Paths.getSparrowAtlas("limo/limoDancer"); - 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.play('danceLeft'); - antialiasing = true; - } - - var danceDir:Bool = false; - - public function dance():Void - { - danceDir = !danceDir; - - if (danceDir) - animation.play('danceRight', true); - else - animation.play('danceLeft', true); - } -} diff --git a/source/funkin/game/Character.hx b/source/funkin/game/Character.hx index 9c744a5d..8a2bfe42 100644 --- a/source/funkin/game/Character.hx +++ b/source/funkin/game/Character.hx @@ -37,7 +37,7 @@ class Character extends FlxSprite implements IBeatReceiver implements IOffsetCom public var curCharacter:String = 'bf'; public var lastHit:Float = -5000; - public var dadVar:Float = 4; + public var holdTime:Float = 4; public var playerOffsets:Bool = false; @@ -99,6 +99,7 @@ class Character extends FlxSprite implements IBeatReceiver implements IOffsetCom if (character.has.y) globalOffset.y = Std.parseFloat(character.att.y); if (character.has.camx) cameraOffset.x = Std.parseFloat(character.att.camx); if (character.has.camy) cameraOffset.y = Std.parseFloat(character.att.camy); + if (character.has.holdTime) holdTime = CoolUtil.getDefault(Std.parseFloat(character.att.holdTime), 4); if (character.has.flipX) flipX = (character.att.flipX == "true"); if (character.has.icon) icon = character.att.icon; @@ -109,82 +110,10 @@ class Character extends FlxSprite implements IBeatReceiver implements IOffsetCom } break; } - // case 'gf': - // // GIRLFRIEND CODE - // tex = Paths.getSparrowAtlas('GF_assets'); - // frames = tex; - // animation.addByPrefix('cheer', 'GF Cheer', 24, false); - // animation.addByPrefix('singLEFT', 'GF left note', 24, false); - // animation.addByPrefix('singRIGHT', 'GF Right Note', 24, false); - // animation.addByPrefix('singUP', 'GF Up Note', 24, false); - // animation.addByPrefix('singDOWN', 'GF Down Note', 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('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('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); - - // addOffset('cheer'); - // addOffset('sad', -2, -2); - // addOffset('danceLeft', 0, -9); - // addOffset('danceRight', 0, -9); - - // addOffset("singUP", 0, 4); - // addOffset("singRIGHT", 0, -20); - // addOffset("singLEFT", 0, -19); - // addOffset("singDOWN", 0, -20); - // addOffset('hairBlow', 45, -8); - // addOffset('hairFall', 0, -9); - - // addOffset('scared', -2, -17); - - // playAnim('danceRight'); - - // case 'gf-christmas': - // tex = Paths.getSparrowAtlas('christmas/gfChristmas'); - // frames = tex; - // animation.addByPrefix('cheer', 'GF Cheer', 24, false); - // animation.addByPrefix('singLEFT', 'GF left note', 24, false); - // animation.addByPrefix('singRIGHT', 'GF Right Note', 24, false); - // animation.addByPrefix('singUP', 'GF Up Note', 24, false); - // animation.addByPrefix('singDOWN', 'GF Down Note', 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('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('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); - - // addOffset('cheer'); - // addOffset('sad', -2, -2); - // addOffset('danceLeft', 0, -9); - // addOffset('danceRight', 0, -9); - - // addOffset("singUP", 0, 4); - // addOffset("singRIGHT", 0, -20); - // addOffset("singLEFT", 0, -19); - // addOffset("singDOWN", 0, -20); - // addOffset('hairBlow', 45, -8); - // addOffset('hairFall', 0, -9); - - // addOffset('scared', -2, -17); - - // playAnim('danceRight'); - - // case 'gf-car': - // tex = Paths.getSparrowAtlas('gfCar'); - // frames = tex; - // animation.addByIndices('singUP', 'GF Dancing Beat Hair blowing CAR', [0], "", 24, false); - // animation.addByIndices('danceLeft', 'GF Dancing Beat Hair blowing CAR', [30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false); - // animation.addByIndices('danceRight', 'GF Dancing Beat Hair blowing CAR', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, - // false); - - // addOffset('danceLeft', 0); - // addOffset('danceRight', 0); - - // playAnim('danceRight'); + /** + NON CONVERTED CHARACTERS - DO NOT REMOVE + **/ // case 'gf-pixel': // tex = Paths.getSparrowAtlas('weeb/gfPixel'); // frames = tex; @@ -200,207 +129,8 @@ class Character extends FlxSprite implements IBeatReceiver implements IOffsetCom // setGraphicSize(Std.int(width * PlayState.daPixelZoom)); // updateHitbox(); // antialiasing = false; - - // case 'dad': - // // DAD ANIMATION LOADING CODE - // tex = Paths.getSparrowAtlas('DADDY_DEAREST'); - // frames = tex; - // animation.addByPrefix('idle', 'Dad idle dance', 24); - // animation.addByPrefix('singUP', 'Dad Sing Note UP', 24); - // animation.addByPrefix('singRIGHT', 'Dad Sing Note RIGHT', 24); - // animation.addByPrefix('singDOWN', 'Dad Sing Note DOWN', 24); - // animation.addByPrefix('singLEFT', 'Dad Sing Note LEFT', 24); - - // addOffset('idle'); - // addOffset("singUP", -6, 50); - // addOffset("singRIGHT", 0, 27); - // addOffset("singLEFT", -10, 10); - // addOffset("singDOWN", 0, -30); - - // dadVar = 6.1; - - // playAnim('idle'); - // case 'spooky': - // tex = Paths.getSparrowAtlas('spooky_kids_assets'); - // frames = tex; - // animation.addByPrefix('singUP', 'spooky UP NOTE', 24, false); - // animation.addByPrefix('singDOWN', 'spooky DOWN note', 24, false); - // animation.addByPrefix('singLEFT', 'note sing left', 24, false); - // animation.addByPrefix('singRIGHT', 'spooky sing right', 24, false); - // animation.addByIndices('danceLeft', 'spooky dance idle', [0, 2, 6], "", 12, false); - // animation.addByIndices('danceRight', 'spooky dance idle', [8, 10, 12, 14], "", 12, false); - - // addOffset('danceLeft'); - // addOffset('danceRight'); - - // addOffset("singUP", -20, 26); - // addOffset("singRIGHT", -130, -14); - // addOffset("singLEFT", 130, -10); - // addOffset("singDOWN", -50, -130); - - // playAnim('danceRight'); - // case 'mom': - // tex = Paths.getSparrowAtlas('Mom_Assets'); - // frames = tex; - - // animation.addByPrefix('idle', "Mom Idle", 24, false); - // animation.addByPrefix('singUP', "Mom Up Pose", 24, false); - // animation.addByPrefix('singDOWN', "MOM DOWN POSE", 24, false); - // animation.addByPrefix('singLEFT', 'Mom Left Pose', 24, false); - // // ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT - // // CUZ DAVE IS DUMB! - // animation.addByPrefix('singRIGHT', 'Mom Pose Left', 24, false); - - // addOffset('idle'); - // addOffset("singUP", 14, 71); - // addOffset("singRIGHT", 10, -60); - // addOffset("singLEFT", 250, -23); - // addOffset("singDOWN", 20, -160); - - // playAnim('idle'); - - // case 'mom-car': - // tex = Paths.getSparrowAtlas('momCar'); - // frames = tex; - - // animation.addByPrefix('idle', "Mom Idle", 24, false); - // animation.addByPrefix('singUP', "Mom Up Pose", 24, false); - // animation.addByPrefix('singDOWN', "MOM DOWN POSE", 24, false); - // animation.addByPrefix('singLEFT', 'Mom Left Pose', 24, false); - // // ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT - // // CUZ DAVE IS DUMB! - // animation.addByPrefix('singRIGHT', 'Mom Pose Left', 24, false); - - // addOffset('idle'); - // addOffset("singUP", 14, 71); - // addOffset("singRIGHT", 10, -60); - // addOffset("singLEFT", 250, -23); - // addOffset("singDOWN", 20, -160); - - // playAnim('idle'); - // case 'monster': - // tex = Paths.getSparrowAtlas('Monster_Assets'); - // frames = tex; - // animation.addByPrefix('idle', 'monster idle', 24, false); - // animation.addByPrefix('singUP', 'monster up note', 24, false); - // animation.addByPrefix('singDOWN', 'monster down', 24, false); - // animation.addByPrefix('singLEFT', 'Monster left note', 24, false); - // animation.addByPrefix('singRIGHT', 'Monster Right note', 24, false); - - // addOffset('idle'); - // addOffset("singUP", -20, 50); - // addOffset("singRIGHT", -51); - // addOffset("singLEFT", -30); - // addOffset("singDOWN", -30, -40); - // playAnim('idle'); - // case 'monster-christmas': - // tex = Paths.getSparrowAtlas('christmas/monsterChristmas'); - // frames = tex; - // animation.addByPrefix('idle', 'monster idle', 24, false); - // animation.addByPrefix('singUP', 'monster up note', 24, false); - // animation.addByPrefix('singDOWN', 'monster down', 24, false); - // animation.addByPrefix('singLEFT', 'Monster left note', 24, false); - // animation.addByPrefix('singRIGHT', 'Monster Right note', 24, false); - - // addOffset('idle'); - // addOffset("singUP", -20, 50); - // addOffset("singRIGHT", -51); - // addOffset("singLEFT", -30); - // addOffset("singDOWN", -40, -94); - // playAnim('idle'); - // case 'pico': - // tex = Paths.getSparrowAtlas('Pico_FNF_assetss'); - // frames = tex; - // animation.addByPrefix('idle', "Pico Idle Dance", 24); - // animation.addByPrefix('singUP', 'pico Up note0', 24, false); - // animation.addByPrefix('singDOWN', 'Pico Down Note0', 24, false); - // if (isPlayer) - // { - // animation.addByPrefix('singLEFT', 'Pico NOTE LEFT0', 24, false); - // animation.addByPrefix('singRIGHT', 'Pico Note Right0', 24, false); - // animation.addByPrefix('singRIGHTmiss', 'Pico Note Right Miss', 24, false); - // animation.addByPrefix('singLEFTmiss', 'Pico NOTE LEFT miss', 24, false); - // } - // else - // { - // // Need to be flipped! REDO THIS LATER! - // animation.addByPrefix('singLEFT', 'Pico Note Right0', 24, false); - // animation.addByPrefix('singRIGHT', 'Pico NOTE LEFT0', 24, false); - // animation.addByPrefix('singRIGHTmiss', 'Pico NOTE LEFT miss', 24, false); - // animation.addByPrefix('singLEFTmiss', 'Pico Note Right Miss', 24, false); - // } - - // animation.addByPrefix('singUPmiss', 'pico Up note miss', 24); - // animation.addByPrefix('singDOWNmiss', 'Pico Down Note MISS', 24); - - // addOffset('idle'); - // addOffset("singUP", -29, 27); - // addOffset("singRIGHT", -68, -7); - // addOffset("singLEFT", 65, 9); - // addOffset("singDOWN", 200, -70); - // addOffset("singUPmiss", -19, 67); - // addOffset("singRIGHTmiss", -60, 41); - // addOffset("singLEFTmiss", 62, 64); - // addOffset("singDOWNmiss", 210, -28); - - // playAnim('idle'); - // flipX = true; - - // case 'bf-christmas': - // var tex = Paths.getSparrowAtlas('christmas/bfChristmas'); - // frames = tex; - // animation.addByPrefix('idle', 'BF idle dance', 24, false); - // animation.addByPrefix('singUP', 'BF NOTE UP0', 24, false); - // animation.addByPrefix('singLEFT', 'BF NOTE LEFT0', 24, false); - // animation.addByPrefix('singRIGHT', 'BF NOTE RIGHT0', 24, false); - // animation.addByPrefix('singDOWN', 'BF NOTE DOWN0', 24, false); - // animation.addByPrefix('singUPmiss', 'BF NOTE UP MISS', 24, false); - // animation.addByPrefix('singLEFTmiss', 'BF NOTE LEFT MISS', 24, false); - // animation.addByPrefix('singRIGHTmiss', 'BF NOTE RIGHT MISS', 24, false); - // animation.addByPrefix('singDOWNmiss', 'BF NOTE DOWN MISS', 24, false); - // animation.addByPrefix('hey', 'BF HEY', 24, false); - - // addOffset('idle', -5); - // addOffset("singUP", -29, 27); - // addOffset("singRIGHT", -38, -7); - // addOffset("singLEFT", 12, -6); - // addOffset("singDOWN", -10, -50); - // addOffset("singUPmiss", -29, 27); - // addOffset("singRIGHTmiss", -30, 21); - // addOffset("singLEFTmiss", 12, 24); - // addOffset("singDOWNmiss", -11, -19); - // addOffset("hey", 7, 4); - - // playAnim('idle'); - - // flipX = true; - // case 'bf-car': - // var tex = Paths.getSparrowAtlas('bfCar'); - // frames = tex; - // animation.addByPrefix('idle', 'BF idle dance', 24, false); - // animation.addByPrefix('singUP', 'BF NOTE UP0', 24, false); - // animation.addByPrefix('singLEFT', 'BF NOTE LEFT0', 24, false); - // animation.addByPrefix('singRIGHT', 'BF NOTE RIGHT0', 24, false); - // animation.addByPrefix('singDOWN', 'BF NOTE DOWN0', 24, false); - // animation.addByPrefix('singUPmiss', 'BF NOTE UP MISS', 24, false); - // animation.addByPrefix('singLEFTmiss', 'BF NOTE LEFT MISS', 24, false); - // animation.addByPrefix('singRIGHTmiss', 'BF NOTE RIGHT MISS', 24, false); - // animation.addByPrefix('singDOWNmiss', 'BF NOTE DOWN MISS', 24, false); - - // addOffset('idle', -5); - // addOffset("singUP", -29, 27); - // addOffset("singRIGHT", -38, -7); - // addOffset("singLEFT", 12, -6); - // addOffset("singDOWN", -10, -50); - // addOffset("singUPmiss", -29, 27); - // addOffset("singRIGHTmiss", -30, 21); - // addOffset("singLEFTmiss", 12, 24); - // addOffset("singDOWNmiss", -11, -19); - // playAnim('idle'); - - // flipX = true; // case 'bf-pixel': // frames = Paths.getSparrowAtlas('weeb/bfPixel'); // animation.addByPrefix('idle', 'BF IDLE', 24, false); @@ -512,74 +242,6 @@ class Character extends FlxSprite implements IBeatReceiver implements IOffsetCom // playAnim('idle'); // antialiasing = false; - - // case 'parents-christmas': - // frames = Paths.getSparrowAtlas('christmas/mom_dad_christmas_assets'); - // animation.addByPrefix('idle', 'Parent Christmas Idle', 24, false); - // animation.addByPrefix('singUP', 'Parent Up Note Dad', 24, false); - // animation.addByPrefix('singDOWN', 'Parent Down Note Dad', 24, false); - // animation.addByPrefix('singLEFT', 'Parent Left Note Dad', 24, false); - // animation.addByPrefix('singRIGHT', 'Parent Right Note Dad', 24, false); - - // animation.addByPrefix('singUP-alt', 'Parent Up Note Mom', 24, false); - - // animation.addByPrefix('singDOWN-alt', 'Parent Down Note Mom', 24, false); - // animation.addByPrefix('singLEFT-alt', 'Parent Left Note Mom', 24, false); - // animation.addByPrefix('singRIGHT-alt', 'Parent Right Note Mom', 24, false); - - // addOffset('idle'); - // addOffset("singUP", -47, 24); - // addOffset("singRIGHT", -1, -23); - // addOffset("singLEFT", -30, 16); - // addOffset("singDOWN", -31, -29); - // addOffset("singUP-alt", -47, 24); - // addOffset("singRIGHT-alt", -1, -24); - // addOffset("singLEFT-alt", -30, 15); - // addOffset("singDOWN-alt", -30, -27); - - // playAnim('idle'); - - // default: - // curCharacter = "bf"; - // var tex = Paths.getSparrowAtlas('BOYFRIEND'); - // frames = tex; - // animation.addByPrefix('idle', 'BF idle dance', 24, false); - // animation.addByPrefix('singUP', 'BF NOTE UP0', 24, false); - // animation.addByPrefix('singLEFT', 'BF NOTE LEFT0', 24, false); - // animation.addByPrefix('singRIGHT', 'BF NOTE RIGHT0', 24, false); - // animation.addByPrefix('singDOWN', 'BF NOTE DOWN0', 24, false); - // animation.addByPrefix('singUPmiss', 'BF NOTE UP MISS', 24, false); - // animation.addByPrefix('singLEFTmiss', 'BF NOTE LEFT MISS', 24, false); - // animation.addByPrefix('singRIGHTmiss', 'BF NOTE RIGHT MISS', 24, false); - // animation.addByPrefix('singDOWNmiss', 'BF NOTE DOWN MISS', 24, false); - // animation.addByPrefix('hey', 'BF HEY', 24, false); - - // animation.addByPrefix('firstDeath', "BF dies", 24, false); - // animation.addByPrefix('deathLoop', "BF Dead Loop", 24, true); - // animation.addByPrefix('deathConfirm', "BF Dead confirm", 24, false); - - // animation.addByPrefix('scared', 'BF idle shaking', 24); - - // addOffset('idle', -5); - // addOffset("singUP", -29, 27); - // addOffset("singRIGHT", -38, -7); - // addOffset("singLEFT", 12, -6); - // addOffset("singDOWN", -10, -50); - // addOffset("singUPmiss", -29, 27); - // addOffset("singRIGHTmiss", -30, 21); - // addOffset("singLEFTmiss", 12, 24); - // addOffset("singDOWNmiss", -11, -19); - // addOffset("hey", 7, 4); - // addOffset('firstDeath', 37, 11); - // addOffset('deathLoop', 37, 5); - // addOffset('deathConfirm', 37, 69); - // addOffset('scared', -4); - - // playAnim('idle'); - - // flipX = true; - // } - dance(); @@ -651,7 +313,7 @@ class Character extends FlxSprite implements IBeatReceiver implements IOffsetCom } public function beatHit(curBeat:Int) { - if ((lastHit + (Conductor.stepCrochet * dadVar) < Conductor.songPosition) || animation.curAnim == null || (!animation.curAnim.name.startsWith("sing") && animation.curAnim.finished)) + if ((lastHit + (Conductor.stepCrochet * holdTime) < Conductor.songPosition) || animation.curAnim == null || (!animation.curAnim.name.startsWith("sing") && animation.curAnim.finished)) dance(); } public function stepHit(curStep:Int) {