From 0006134a559980cdcec1221739772da57550e606 Mon Sep 17 00:00:00 2001 From: M&M Date: Tue, 2 Feb 2021 23:44:35 -0800 Subject: [PATCH 01/22] Add outline to score text --- source/PlayState.hx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/PlayState.hx b/source/PlayState.hx index cc869e5de..b24c3fc8f 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -675,7 +675,7 @@ class PlayState extends MusicBeatState add(healthBar); scoreTxt = new FlxText(healthBarBG.x + healthBarBG.width - 190, healthBarBG.y + 30, 0, "", 20); - scoreTxt.setFormat("assets/fonts/vcr.ttf", 16, FlxColor.WHITE, RIGHT); + scoreTxt.setFormat("assets/fonts/vcr.ttf", 16, FlxColor.WHITE, RIGHT, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK); scoreTxt.scrollFactor.set(); add(scoreTxt); From fe3ece4a618452e8116652a7df3569a3878fd6d4 Mon Sep 17 00:00:00 2001 From: M&M Date: Fri, 5 Feb 2021 15:23:28 -0800 Subject: [PATCH 02/22] Pause menu goes back to the mode you came from --- source/PauseSubState.hx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/PauseSubState.hx b/source/PauseSubState.hx index ac747dbca..b42b9a0fb 100644 --- a/source/PauseSubState.hx +++ b/source/PauseSubState.hx @@ -80,7 +80,10 @@ class PauseSubState extends MusicBeatSubstate case "Restart Song": FlxG.resetState(); case "Exit to menu": - FlxG.switchState(new MainMenuState()); + if (PlayState.isStoryMode) + FlxG.switchState(new StoryMenuState()); + else + FlxG.switchState(new FreeplayState()); } } From c00a8dc75ab045473547202421d8eb299d614b22 Mon Sep 17 00:00:00 2001 From: MtH Date: Tue, 30 Mar 2021 15:45:57 +0200 Subject: [PATCH 03/22] offset txts for all chars, move all chars to shared --- .../images/{ => characters}/DADDY_DEAREST.png | Bin .../images/{ => characters}/DADDY_DEAREST.xml | 0 .../images/characters}/Mom_Assets.png | Bin .../images/characters}/Mom_Assets.xml | 0 .../images/characters}/Monster_Assets.png | Bin .../images/characters}/Monster_Assets.xml | 0 .../images/characters}/Pico_FNF_assetss.png | Bin .../images/characters}/Pico_FNF_assetss.xml | 0 .../images/characters/bf-carOffsets.txt | 10 + .../images/characters/bf-christmasOffsets.txt | 10 + .../characters/bf-pixel-deadOffsets.txt | 3 + .../images/characters/bf-pixelOffsets.txt | 9 + .../images/characters}/bfCar.png | Bin .../images/characters}/bfCar.xml | 0 .../images/characters}/bfChristmas.png | Bin .../images/characters}/bfChristmas.xml | 0 .../images/characters}/bfPixel.png | Bin .../images/characters}/bfPixel.xml | 0 .../images/characters}/bfPixelsDEAD.png | Bin .../images/characters}/bfPixelsDEAD.xml | 0 .../shared/images/characters/dadOffsets.txt | 5 + .../images/characters/gf-carOffsets.txt | 3 + .../images/characters/gf-christmasOffsets.txt | 11 ++ .../images/characters/gf-pixelOffsets.txt | 2 + .../images/characters}/gfCar.png | Bin .../images/characters}/gfCar.xml | 0 .../images/characters}/gfChristmas.png | Bin .../images/characters}/gfChristmas.xml | 0 assets/shared/images/characters/gfOffsets.txt | Bin 229 -> 152 bytes .../images/characters}/gfPixel.png | Bin .../images/characters}/gfPixel.xml | 0 .../images/characters/mom-carOffsets.txt | 6 + .../images/characters}/momCar.png | Bin .../images/characters}/momCar.xml | 0 .../shared/images/characters/momOffsets.txt | 5 + .../characters}/mom_dad_christmas_assets.png | Bin .../characters}/mom_dad_christmas_assets.xml | 0 .../characters/monster-christmasOffsets.txt | 5 + .../images/characters}/monsterChristmas.png | Bin .../images/characters}/monsterChristmas.xml | 0 .../images/characters/monsterOffsets.txt | 5 + .../characters/parents-christmasOffsets.txt | 9 + .../images/characters/pico-speakerOffsets.txt | Bin 85 -> 56 bytes .../shared/images/characters/picoOffsets.txt | 9 + .../images/characters/senpai-angryOffsets.txt | 5 + .../images/characters}/senpai.png | Bin .../images/characters}/senpai.xml | 0 .../images/characters/senpaiOffsets.txt | 5 + .../images/characters}/spirit.png | Bin .../images/characters}/spirit.txt | 0 .../images/characters/spiritOffsets.txt | 5 + .../images/characters/spookyOffsets.txt | 6 + .../images/characters}/spooky_kids_assets.png | Bin .../images/characters}/spooky_kids_assets.xml | 0 source/Character.hx | 175 ++++-------------- 55 files changed, 154 insertions(+), 134 deletions(-) rename assets/shared/images/{ => characters}/DADDY_DEAREST.png (100%) rename assets/shared/images/{ => characters}/DADDY_DEAREST.xml (100%) rename assets/{week4/images => shared/images/characters}/Mom_Assets.png (100%) rename assets/{week4/images => shared/images/characters}/Mom_Assets.xml (100%) rename assets/{week2/images => shared/images/characters}/Monster_Assets.png (100%) rename assets/{week2/images => shared/images/characters}/Monster_Assets.xml (100%) rename assets/{week3/images => shared/images/characters}/Pico_FNF_assetss.png (100%) rename assets/{week3/images => shared/images/characters}/Pico_FNF_assetss.xml (100%) create mode 100644 assets/shared/images/characters/bf-carOffsets.txt create mode 100644 assets/shared/images/characters/bf-christmasOffsets.txt create mode 100644 assets/shared/images/characters/bf-pixel-deadOffsets.txt create mode 100644 assets/shared/images/characters/bf-pixelOffsets.txt rename assets/{week4/images => shared/images/characters}/bfCar.png (100%) rename assets/{week4/images => shared/images/characters}/bfCar.xml (100%) rename assets/{week5/images/christmas => shared/images/characters}/bfChristmas.png (100%) rename assets/{week5/images/christmas => shared/images/characters}/bfChristmas.xml (100%) rename assets/{week6/images/weeb => shared/images/characters}/bfPixel.png (100%) rename assets/{week6/images/weeb => shared/images/characters}/bfPixel.xml (100%) rename assets/{week6/images/weeb => shared/images/characters}/bfPixelsDEAD.png (100%) rename assets/{week6/images/weeb => shared/images/characters}/bfPixelsDEAD.xml (100%) create mode 100644 assets/shared/images/characters/dadOffsets.txt create mode 100644 assets/shared/images/characters/gf-carOffsets.txt create mode 100644 assets/shared/images/characters/gf-christmasOffsets.txt create mode 100644 assets/shared/images/characters/gf-pixelOffsets.txt rename assets/{week4/images => shared/images/characters}/gfCar.png (100%) rename assets/{week4/images => shared/images/characters}/gfCar.xml (100%) rename assets/{week5/images/christmas => shared/images/characters}/gfChristmas.png (100%) rename assets/{week5/images/christmas => shared/images/characters}/gfChristmas.xml (100%) rename assets/{week6/images/weeb => shared/images/characters}/gfPixel.png (100%) rename assets/{week6/images/weeb => shared/images/characters}/gfPixel.xml (100%) create mode 100644 assets/shared/images/characters/mom-carOffsets.txt rename assets/{week4/images => shared/images/characters}/momCar.png (100%) rename assets/{week4/images => shared/images/characters}/momCar.xml (100%) create mode 100644 assets/shared/images/characters/momOffsets.txt rename assets/{week5/images/christmas => shared/images/characters}/mom_dad_christmas_assets.png (100%) rename assets/{week5/images/christmas => shared/images/characters}/mom_dad_christmas_assets.xml (100%) create mode 100644 assets/shared/images/characters/monster-christmasOffsets.txt rename assets/{week5/images/christmas => shared/images/characters}/monsterChristmas.png (100%) rename assets/{week5/images/christmas => shared/images/characters}/monsterChristmas.xml (100%) create mode 100644 assets/shared/images/characters/monsterOffsets.txt create mode 100644 assets/shared/images/characters/parents-christmasOffsets.txt create mode 100644 assets/shared/images/characters/picoOffsets.txt create mode 100644 assets/shared/images/characters/senpai-angryOffsets.txt rename assets/{week6/images/weeb => shared/images/characters}/senpai.png (100%) rename assets/{week6/images/weeb => shared/images/characters}/senpai.xml (100%) create mode 100644 assets/shared/images/characters/senpaiOffsets.txt rename assets/{week6/images/weeb => shared/images/characters}/spirit.png (100%) rename assets/{week6/images/weeb => shared/images/characters}/spirit.txt (100%) create mode 100644 assets/shared/images/characters/spiritOffsets.txt create mode 100644 assets/shared/images/characters/spookyOffsets.txt rename assets/{week2/images => shared/images/characters}/spooky_kids_assets.png (100%) rename assets/{week2/images => shared/images/characters}/spooky_kids_assets.xml (100%) diff --git a/assets/shared/images/DADDY_DEAREST.png b/assets/shared/images/characters/DADDY_DEAREST.png similarity index 100% rename from assets/shared/images/DADDY_DEAREST.png rename to assets/shared/images/characters/DADDY_DEAREST.png diff --git a/assets/shared/images/DADDY_DEAREST.xml b/assets/shared/images/characters/DADDY_DEAREST.xml similarity index 100% rename from assets/shared/images/DADDY_DEAREST.xml rename to assets/shared/images/characters/DADDY_DEAREST.xml diff --git a/assets/week4/images/Mom_Assets.png b/assets/shared/images/characters/Mom_Assets.png similarity index 100% rename from assets/week4/images/Mom_Assets.png rename to assets/shared/images/characters/Mom_Assets.png diff --git a/assets/week4/images/Mom_Assets.xml b/assets/shared/images/characters/Mom_Assets.xml similarity index 100% rename from assets/week4/images/Mom_Assets.xml rename to assets/shared/images/characters/Mom_Assets.xml diff --git a/assets/week2/images/Monster_Assets.png b/assets/shared/images/characters/Monster_Assets.png similarity index 100% rename from assets/week2/images/Monster_Assets.png rename to assets/shared/images/characters/Monster_Assets.png diff --git a/assets/week2/images/Monster_Assets.xml b/assets/shared/images/characters/Monster_Assets.xml similarity index 100% rename from assets/week2/images/Monster_Assets.xml rename to assets/shared/images/characters/Monster_Assets.xml diff --git a/assets/week3/images/Pico_FNF_assetss.png b/assets/shared/images/characters/Pico_FNF_assetss.png similarity index 100% rename from assets/week3/images/Pico_FNF_assetss.png rename to assets/shared/images/characters/Pico_FNF_assetss.png diff --git a/assets/week3/images/Pico_FNF_assetss.xml b/assets/shared/images/characters/Pico_FNF_assetss.xml similarity index 100% rename from assets/week3/images/Pico_FNF_assetss.xml rename to assets/shared/images/characters/Pico_FNF_assetss.xml diff --git a/assets/shared/images/characters/bf-carOffsets.txt b/assets/shared/images/characters/bf-carOffsets.txt new file mode 100644 index 000000000..53305d26f --- /dev/null +++ b/assets/shared/images/characters/bf-carOffsets.txt @@ -0,0 +1,10 @@ +idle -5 0 +singUP -29 27 +singRIGHT -38 -7 +singLEFT 12 -6 +singDOWN -10 -50 +singUPmiss -29 27 +singRIGHTmiss -30 21 +singLEFTmiss 12 24 +singDOWNmiss -11 -19 +idleHair -5 0 diff --git a/assets/shared/images/characters/bf-christmasOffsets.txt b/assets/shared/images/characters/bf-christmasOffsets.txt new file mode 100644 index 000000000..014284490 --- /dev/null +++ b/assets/shared/images/characters/bf-christmasOffsets.txt @@ -0,0 +1,10 @@ +idle -5 0 +singUP -29 27 +singRIGHT -38 -7 +singLEFT 12 -6 +singDOWN -10 -50 +singUPmiss -29 27 +singRIGHTmiss -30 21 +singLEFTmiss 12 24 +singDOWNmiss -11 -19 +hey 7 4 diff --git a/assets/shared/images/characters/bf-pixel-deadOffsets.txt b/assets/shared/images/characters/bf-pixel-deadOffsets.txt new file mode 100644 index 000000000..3544a2c9c --- /dev/null +++ b/assets/shared/images/characters/bf-pixel-deadOffsets.txt @@ -0,0 +1,3 @@ +firstDeath 0 0 +deathLoop -30 -12 +deathConfirm -30 -12 diff --git a/assets/shared/images/characters/bf-pixelOffsets.txt b/assets/shared/images/characters/bf-pixelOffsets.txt new file mode 100644 index 000000000..b8a82929b --- /dev/null +++ b/assets/shared/images/characters/bf-pixelOffsets.txt @@ -0,0 +1,9 @@ +idle 0 0 +singUP 0 0 +singRIGHT 0 0 +singLEFT 0 0 +singDOWN 0 0 +singUPmiss 0 0 +singRIGHTmiss 0 0 +singLEFTmiss 0 0 +singDOWNmiss 0 0 diff --git a/assets/week4/images/bfCar.png b/assets/shared/images/characters/bfCar.png similarity index 100% rename from assets/week4/images/bfCar.png rename to assets/shared/images/characters/bfCar.png diff --git a/assets/week4/images/bfCar.xml b/assets/shared/images/characters/bfCar.xml similarity index 100% rename from assets/week4/images/bfCar.xml rename to assets/shared/images/characters/bfCar.xml diff --git a/assets/week5/images/christmas/bfChristmas.png b/assets/shared/images/characters/bfChristmas.png similarity index 100% rename from assets/week5/images/christmas/bfChristmas.png rename to assets/shared/images/characters/bfChristmas.png diff --git a/assets/week5/images/christmas/bfChristmas.xml b/assets/shared/images/characters/bfChristmas.xml similarity index 100% rename from assets/week5/images/christmas/bfChristmas.xml rename to assets/shared/images/characters/bfChristmas.xml diff --git a/assets/week6/images/weeb/bfPixel.png b/assets/shared/images/characters/bfPixel.png similarity index 100% rename from assets/week6/images/weeb/bfPixel.png rename to assets/shared/images/characters/bfPixel.png diff --git a/assets/week6/images/weeb/bfPixel.xml b/assets/shared/images/characters/bfPixel.xml similarity index 100% rename from assets/week6/images/weeb/bfPixel.xml rename to assets/shared/images/characters/bfPixel.xml diff --git a/assets/week6/images/weeb/bfPixelsDEAD.png b/assets/shared/images/characters/bfPixelsDEAD.png similarity index 100% rename from assets/week6/images/weeb/bfPixelsDEAD.png rename to assets/shared/images/characters/bfPixelsDEAD.png diff --git a/assets/week6/images/weeb/bfPixelsDEAD.xml b/assets/shared/images/characters/bfPixelsDEAD.xml similarity index 100% rename from assets/week6/images/weeb/bfPixelsDEAD.xml rename to assets/shared/images/characters/bfPixelsDEAD.xml diff --git a/assets/shared/images/characters/dadOffsets.txt b/assets/shared/images/characters/dadOffsets.txt new file mode 100644 index 000000000..69ba153a5 --- /dev/null +++ b/assets/shared/images/characters/dadOffsets.txt @@ -0,0 +1,5 @@ +idle 0 0 +singUP -6 50 +singRIGHT 0 27 +singLEFT -10 10 +singDOWN 0 -30 diff --git a/assets/shared/images/characters/gf-carOffsets.txt b/assets/shared/images/characters/gf-carOffsets.txt new file mode 100644 index 000000000..9c60cd800 --- /dev/null +++ b/assets/shared/images/characters/gf-carOffsets.txt @@ -0,0 +1,3 @@ +danceLeft 0 0 +danceRight 0 0 +idleHair 0 0 diff --git a/assets/shared/images/characters/gf-christmasOffsets.txt b/assets/shared/images/characters/gf-christmasOffsets.txt new file mode 100644 index 000000000..05abb7ab8 --- /dev/null +++ b/assets/shared/images/characters/gf-christmasOffsets.txt @@ -0,0 +1,11 @@ +cheer 0 0 +sad -2 -21 +danceLeft 0 -9 +danceRight 0 -9 +singUP 0 4 +singRIGHT 0 -20 +singLEFT 0 -19 +singDOWN 0 -20 +hairBlow 45 -8 +hairFall 0 -9 +scared -2 -17 diff --git a/assets/shared/images/characters/gf-pixelOffsets.txt b/assets/shared/images/characters/gf-pixelOffsets.txt new file mode 100644 index 000000000..9862aaecd --- /dev/null +++ b/assets/shared/images/characters/gf-pixelOffsets.txt @@ -0,0 +1,2 @@ +danceLeft 0 0 +danceRight 0 0 diff --git a/assets/week4/images/gfCar.png b/assets/shared/images/characters/gfCar.png similarity index 100% rename from assets/week4/images/gfCar.png rename to assets/shared/images/characters/gfCar.png diff --git a/assets/week4/images/gfCar.xml b/assets/shared/images/characters/gfCar.xml similarity index 100% rename from assets/week4/images/gfCar.xml rename to assets/shared/images/characters/gfCar.xml diff --git a/assets/week5/images/christmas/gfChristmas.png b/assets/shared/images/characters/gfChristmas.png similarity index 100% rename from assets/week5/images/christmas/gfChristmas.png rename to assets/shared/images/characters/gfChristmas.png diff --git a/assets/week5/images/christmas/gfChristmas.xml b/assets/shared/images/characters/gfChristmas.xml similarity index 100% rename from assets/week5/images/christmas/gfChristmas.xml rename to assets/shared/images/characters/gfChristmas.xml diff --git a/assets/shared/images/characters/gfOffsets.txt b/assets/shared/images/characters/gfOffsets.txt index 37608ede3c11da4a8563deffe5ef27c6519036e8..05abb7ab84271e565d63ab5ce834b79a9b4a7898 100644 GIT binary patch delta 6 NcmaFLID>J*3;+p)0;m80 delta 84 RcmbQi_>^(N3||In0s!xj0`&j@ diff --git a/assets/week6/images/weeb/gfPixel.png b/assets/shared/images/characters/gfPixel.png similarity index 100% rename from assets/week6/images/weeb/gfPixel.png rename to assets/shared/images/characters/gfPixel.png diff --git a/assets/week6/images/weeb/gfPixel.xml b/assets/shared/images/characters/gfPixel.xml similarity index 100% rename from assets/week6/images/weeb/gfPixel.xml rename to assets/shared/images/characters/gfPixel.xml diff --git a/assets/shared/images/characters/mom-carOffsets.txt b/assets/shared/images/characters/mom-carOffsets.txt new file mode 100644 index 000000000..8c17195ae --- /dev/null +++ b/assets/shared/images/characters/mom-carOffsets.txt @@ -0,0 +1,6 @@ +idle 0 0 +singUP 14 71 +singRIGHT 10 -60 +singLEFT 250 -23 +singDOWN 20 -160 +idleHair 0 0 diff --git a/assets/week4/images/momCar.png b/assets/shared/images/characters/momCar.png similarity index 100% rename from assets/week4/images/momCar.png rename to assets/shared/images/characters/momCar.png diff --git a/assets/week4/images/momCar.xml b/assets/shared/images/characters/momCar.xml similarity index 100% rename from assets/week4/images/momCar.xml rename to assets/shared/images/characters/momCar.xml diff --git a/assets/shared/images/characters/momOffsets.txt b/assets/shared/images/characters/momOffsets.txt new file mode 100644 index 000000000..65cbecdbe --- /dev/null +++ b/assets/shared/images/characters/momOffsets.txt @@ -0,0 +1,5 @@ +idle 0 0 +singUP 14 71 +singRIGHT 10 -60 +singLEFT 250 -23 +singDOWN 20 -160 diff --git a/assets/week5/images/christmas/mom_dad_christmas_assets.png b/assets/shared/images/characters/mom_dad_christmas_assets.png similarity index 100% rename from assets/week5/images/christmas/mom_dad_christmas_assets.png rename to assets/shared/images/characters/mom_dad_christmas_assets.png diff --git a/assets/week5/images/christmas/mom_dad_christmas_assets.xml b/assets/shared/images/characters/mom_dad_christmas_assets.xml similarity index 100% rename from assets/week5/images/christmas/mom_dad_christmas_assets.xml rename to assets/shared/images/characters/mom_dad_christmas_assets.xml diff --git a/assets/shared/images/characters/monster-christmasOffsets.txt b/assets/shared/images/characters/monster-christmasOffsets.txt new file mode 100644 index 000000000..a35704617 --- /dev/null +++ b/assets/shared/images/characters/monster-christmasOffsets.txt @@ -0,0 +1,5 @@ +idle 0 0 +singUP -20 50 +singRIGHT -51 0 +singLEFT -30 0 +singDOWN -40 -94 diff --git a/assets/week5/images/christmas/monsterChristmas.png b/assets/shared/images/characters/monsterChristmas.png similarity index 100% rename from assets/week5/images/christmas/monsterChristmas.png rename to assets/shared/images/characters/monsterChristmas.png diff --git a/assets/week5/images/christmas/monsterChristmas.xml b/assets/shared/images/characters/monsterChristmas.xml similarity index 100% rename from assets/week5/images/christmas/monsterChristmas.xml rename to assets/shared/images/characters/monsterChristmas.xml diff --git a/assets/shared/images/characters/monsterOffsets.txt b/assets/shared/images/characters/monsterOffsets.txt new file mode 100644 index 000000000..e211a5fdf --- /dev/null +++ b/assets/shared/images/characters/monsterOffsets.txt @@ -0,0 +1,5 @@ +idle 0 0 +singUP -20 94 +singRIGHT -51 30 +singLEFT -30 20 +singDOWN -50 -80 diff --git a/assets/shared/images/characters/parents-christmasOffsets.txt b/assets/shared/images/characters/parents-christmasOffsets.txt new file mode 100644 index 000000000..bdee13c63 --- /dev/null +++ b/assets/shared/images/characters/parents-christmasOffsets.txt @@ -0,0 +1,9 @@ +idle 0 0 +singUP -47 24 +singRIGHT -1 -23 +singLEFT -30 16 +singDOWN -31 -29 +singUP-alt -47 24 +singRIGHT-alt -1 -24 +singLEFT-alt -30 15 +singDOWN-alt -30 -27 diff --git a/assets/shared/images/characters/pico-speakerOffsets.txt b/assets/shared/images/characters/pico-speakerOffsets.txt index 5ccd7b432d7397400d3d273ccaaf6d8e95405ae3..586cd585712f5562ae43b87c1db01b2ee46e145c 100644 GIT binary patch delta 4 LcmWHwm|y__16To8 delta 34 PcmcBronRr$fDZrwF0}!3 diff --git a/assets/shared/images/characters/picoOffsets.txt b/assets/shared/images/characters/picoOffsets.txt new file mode 100644 index 000000000..e209da723 --- /dev/null +++ b/assets/shared/images/characters/picoOffsets.txt @@ -0,0 +1,9 @@ +idle 0 0 +singUP -29 27 +singRIGHT -68 -7 +singLEFT 65 9 +singDOWN 200 -70 +singUPmiss -19 67 +singRIGHTmiss -60 41 +singLEFTmiss 62 64 +singDOWNmiss 210 -28 diff --git a/assets/shared/images/characters/senpai-angryOffsets.txt b/assets/shared/images/characters/senpai-angryOffsets.txt new file mode 100644 index 000000000..c11825906 --- /dev/null +++ b/assets/shared/images/characters/senpai-angryOffsets.txt @@ -0,0 +1,5 @@ +idle 0 0 +singUP 5 37 +singRIGHT 0 0 +singLEFT 40 0 +singDOWN 14 0 diff --git a/assets/week6/images/weeb/senpai.png b/assets/shared/images/characters/senpai.png similarity index 100% rename from assets/week6/images/weeb/senpai.png rename to assets/shared/images/characters/senpai.png diff --git a/assets/week6/images/weeb/senpai.xml b/assets/shared/images/characters/senpai.xml similarity index 100% rename from assets/week6/images/weeb/senpai.xml rename to assets/shared/images/characters/senpai.xml diff --git a/assets/shared/images/characters/senpaiOffsets.txt b/assets/shared/images/characters/senpaiOffsets.txt new file mode 100644 index 000000000..c11825906 --- /dev/null +++ b/assets/shared/images/characters/senpaiOffsets.txt @@ -0,0 +1,5 @@ +idle 0 0 +singUP 5 37 +singRIGHT 0 0 +singLEFT 40 0 +singDOWN 14 0 diff --git a/assets/week6/images/weeb/spirit.png b/assets/shared/images/characters/spirit.png similarity index 100% rename from assets/week6/images/weeb/spirit.png rename to assets/shared/images/characters/spirit.png diff --git a/assets/week6/images/weeb/spirit.txt b/assets/shared/images/characters/spirit.txt similarity index 100% rename from assets/week6/images/weeb/spirit.txt rename to assets/shared/images/characters/spirit.txt diff --git a/assets/shared/images/characters/spiritOffsets.txt b/assets/shared/images/characters/spiritOffsets.txt new file mode 100644 index 000000000..ed2442d75 --- /dev/null +++ b/assets/shared/images/characters/spiritOffsets.txt @@ -0,0 +1,5 @@ +idle -220 -280 +singUP -220 -240 +singRIGHT -220 -280 +singLEFT -200 -280 +singDOWN 170 110 diff --git a/assets/shared/images/characters/spookyOffsets.txt b/assets/shared/images/characters/spookyOffsets.txt new file mode 100644 index 000000000..c14c5e752 --- /dev/null +++ b/assets/shared/images/characters/spookyOffsets.txt @@ -0,0 +1,6 @@ +danceLeft 0 0 +danceRight 0 0 +singUP -20 26 +singRIGHT -130 -14 +singLEFT 130 -10 +singDOWN -50 -130 diff --git a/assets/week2/images/spooky_kids_assets.png b/assets/shared/images/characters/spooky_kids_assets.png similarity index 100% rename from assets/week2/images/spooky_kids_assets.png rename to assets/shared/images/characters/spooky_kids_assets.png diff --git a/assets/week2/images/spooky_kids_assets.xml b/assets/shared/images/characters/spooky_kids_assets.xml similarity index 100% rename from assets/week2/images/spooky_kids_assets.xml rename to assets/shared/images/characters/spooky_kids_assets.xml diff --git a/source/Character.hx b/source/Character.hx index 860fc7317..042778b78 100644 --- a/source/Character.hx +++ b/source/Character.hx @@ -55,7 +55,7 @@ class Character extends FlxSprite playAnim('danceRight'); case 'gf-christmas': - tex = Paths.getSparrowAtlas('christmas/gfChristmas'); + tex = Paths.getSparrowAtlas('characters/gfChristmas'); frames = tex; quickAnimAdd('cheer', 'GF Cheer'); quickAnimAdd('singLEFT', 'GF left note'); @@ -69,19 +69,7 @@ class Character extends FlxSprite 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, true); - addOffset('cheer'); - addOffset('sad', -2, -21); - 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); + loadOffsetFile(curCharacter); playAnim('danceRight'); @@ -106,7 +94,7 @@ class Character extends FlxSprite flipX = true; case 'gf-car': - tex = Paths.getSparrowAtlas('gfCar'); + tex = Paths.getSparrowAtlas('characters/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); @@ -114,21 +102,18 @@ class Character extends FlxSprite false); animation.addByIndices('idleHair', 'GF Dancing Beat Hair blowing CAR', [10, 11, 12, 25, 26, 27], "", 24, true); - addOffset('danceLeft', 0); - addOffset('danceRight', 0); - addOffset('idleHair', 0); + loadOffsetFile(curCharacter); playAnim('danceRight'); case 'gf-pixel': - tex = Paths.getSparrowAtlas('weeb/gfPixel'); + tex = Paths.getSparrowAtlas('characters/gfPixel'); frames = tex; animation.addByIndices('singUP', 'GF IDLE', [2], "", 24, false); animation.addByIndices('danceLeft', 'GF IDLE', [30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false); animation.addByIndices('danceRight', 'GF IDLE', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, false); - addOffset('danceLeft', 0); - addOffset('danceRight', 0); + loadOffsetFile(curCharacter); playAnim('danceRight'); @@ -138,7 +123,7 @@ class Character extends FlxSprite case 'dad': // DAD ANIMATION LOADING CODE - tex = Paths.getSparrowAtlas('DADDY_DEAREST'); + tex = Paths.getSparrowAtlas('characters/DADDY_DEAREST'); frames = tex; quickAnimAdd('idle', 'Dad idle dance'); quickAnimAdd('singUP', 'Dad Sing Note UP'); @@ -146,15 +131,11 @@ class Character extends FlxSprite quickAnimAdd('singDOWN', 'Dad Sing Note DOWN'); quickAnimAdd('singLEFT', 'Dad Sing Note LEFT'); - addOffset('idle'); - addOffset("singUP", -6, 50); - addOffset("singRIGHT", 0, 27); - addOffset("singLEFT", -10, 10); - addOffset("singDOWN", 0, -30); + loadOffsetFile(curCharacter); playAnim('idle'); case 'spooky': - tex = Paths.getSparrowAtlas('spooky_kids_assets'); + tex = Paths.getSparrowAtlas('characters/spooky_kids_assets'); frames = tex; quickAnimAdd('singUP', 'spooky UP NOTE'); quickAnimAdd('singDOWN', 'spooky DOWN note'); @@ -163,17 +144,11 @@ class Character extends FlxSprite 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); + loadOffsetFile(curCharacter); playAnim('danceRight'); case 'mom': - tex = Paths.getSparrowAtlas('Mom_Assets'); + tex = Paths.getSparrowAtlas('characters/Mom_Assets'); frames = tex; quickAnimAdd('idle', "Mom Idle"); @@ -184,16 +159,12 @@ class Character extends FlxSprite // CUZ DAVE IS DUMB! quickAnimAdd('singRIGHT', 'Mom Pose Left'); - addOffset('idle'); - addOffset("singUP", 14, 71); - addOffset("singRIGHT", 10, -60); - addOffset("singLEFT", 250, -23); - addOffset("singDOWN", 20, -160); + loadOffsetFile(curCharacter); playAnim('idle'); case 'mom-car': - tex = Paths.getSparrowAtlas('momCar'); + tex = Paths.getSparrowAtlas('characters/momCar'); frames = tex; quickAnimAdd('idle', "Mom Idle"); @@ -205,16 +176,11 @@ class Character extends FlxSprite quickAnimAdd('singRIGHT', 'Mom Pose Left'); animation.addByIndices('idleHair', "Mom Idle", [10, 11, 12, 13], "", 24, true); - addOffset('idle'); - addOffset("singUP", 14, 71); - addOffset("singRIGHT", 10, -60); - addOffset("singLEFT", 250, -23); - addOffset("singDOWN", 20, -160); - addOffset('idleHair'); + loadOffsetFile(curCharacter); playAnim('idle'); case 'monster': - tex = Paths.getSparrowAtlas('Monster_Assets'); + tex = Paths.getSparrowAtlas('characters/Monster_Assets'); frames = tex; quickAnimAdd('idle', 'monster idle'); quickAnimAdd('singUP', 'monster up note'); @@ -222,14 +188,11 @@ class Character extends FlxSprite quickAnimAdd('singLEFT', 'Monster left note'); quickAnimAdd('singRIGHT', 'Monster Right note'); - addOffset('idle'); - addOffset("singUP", -20, 94); - addOffset("singRIGHT", -51, 30); - addOffset("singLEFT", -30, 20); - addOffset("singDOWN", -50, -80); + loadOffsetFile(curCharacter); + playAnim('idle'); case 'monster-christmas': - tex = Paths.getSparrowAtlas('christmas/monsterChristmas'); + tex = Paths.getSparrowAtlas('characters/monsterChristmas'); frames = tex; quickAnimAdd('idle', 'monster idle'); quickAnimAdd('singUP', 'monster up note'); @@ -237,14 +200,11 @@ class Character extends FlxSprite quickAnimAdd('singLEFT', 'Monster left note'); quickAnimAdd('singRIGHT', 'Monster Right note'); - addOffset('idle'); - addOffset("singUP", -20, 50); - addOffset("singRIGHT", -51); - addOffset("singLEFT", -30); - addOffset("singDOWN", -40, -94); + loadOffsetFile(curCharacter); + playAnim('idle'); case 'pico': - tex = Paths.getSparrowAtlas('Pico_FNF_assetss'); + tex = Paths.getSparrowAtlas('characters/Pico_FNF_assetss'); frames = tex; quickAnimAdd('idle', "Pico Idle Dance"); quickAnimAdd('singUP', 'pico Up note0'); @@ -268,15 +228,7 @@ class Character extends FlxSprite quickAnimAdd('singUPmiss', 'pico Up note miss'); quickAnimAdd('singDOWNmiss', 'Pico Down Note MISS'); - 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); + loadOffsetFile(curCharacter); playAnim('idle'); @@ -325,7 +277,7 @@ class Character extends FlxSprite loadOffsetFile(curCharacter); case 'bf-christmas': - var tex = Paths.getSparrowAtlas('christmas/bfChristmas'); + var tex = Paths.getSparrowAtlas('characters/bfChristmas'); frames = tex; quickAnimAdd('idle', 'BF idle dance'); quickAnimAdd('singUP', 'BF NOTE UP0'); @@ -338,22 +290,13 @@ class Character extends FlxSprite quickAnimAdd('singDOWNmiss', 'BF NOTE DOWN MISS'); quickAnimAdd('hey', 'BF HEY'); - 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); + loadOffsetFile(curCharacter); playAnim('idle'); flipX = true; case 'bf-car': - var tex = Paths.getSparrowAtlas('bfCar'); + var tex = Paths.getSparrowAtlas('characters/bfCar'); frames = tex; quickAnimAdd('idle', 'BF idle dance'); quickAnimAdd('singUP', 'BF NOTE UP0'); @@ -366,21 +309,13 @@ class Character extends FlxSprite quickAnimAdd('singDOWNmiss', 'BF NOTE DOWN MISS'); animation.addByIndices('idleHair', 'BF idle dance', [10, 11, 12, 13], "", 24, true); - 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('idleHair', -5); + loadOffsetFile(curCharacter); + playAnim('idle'); flipX = true; case 'bf-pixel': - frames = Paths.getSparrowAtlas('weeb/bfPixel'); + frames = Paths.getSparrowAtlas('characters/bfPixel'); quickAnimAdd('idle', 'BF IDLE'); quickAnimAdd('singUP', 'BF UP NOTE'); quickAnimAdd('singLEFT', 'BF LEFT NOTE'); @@ -391,15 +326,7 @@ class Character extends FlxSprite quickAnimAdd('singRIGHTmiss', 'BF RIGHT MISS'); quickAnimAdd('singDOWNmiss', 'BF DOWN MISS'); - addOffset('idle'); - addOffset("singUP"); - addOffset("singRIGHT"); - addOffset("singLEFT"); - addOffset("singDOWN"); - addOffset("singUPmiss"); - addOffset("singRIGHTmiss"); - addOffset("singLEFTmiss"); - addOffset("singDOWNmiss"); + loadOffsetFile(curCharacter); setGraphicSize(Std.int(width * 6)); updateHitbox(); @@ -413,16 +340,15 @@ class Character extends FlxSprite flipX = true; case 'bf-pixel-dead': - frames = Paths.getSparrowAtlas('weeb/bfPixelsDEAD'); + frames = Paths.getSparrowAtlas('characters/bfPixelsDEAD'); quickAnimAdd('singUP', "BF Dies pixel"); quickAnimAdd('firstDeath', "BF Dies pixel"); animation.addByPrefix('deathLoop', "Retry Loop", 24, true); quickAnimAdd('deathConfirm', "RETRY CONFIRM"); animation.play('firstDeath'); - addOffset('firstDeath'); - addOffset('deathLoop', -30, -12); - addOffset('deathConfirm', -30, -12); + loadOffsetFile(curCharacter); + playAnim('firstDeath'); // pixel bullshit setGraphicSize(Std.int(width * 6)); @@ -431,7 +357,7 @@ class Character extends FlxSprite flipX = true; case 'senpai': - frames = Paths.getSparrowAtlas('weeb/senpai'); + frames = Paths.getSparrowAtlas('characters/senpai'); quickAnimAdd('idle', 'Senpai Idle'); // at framerate 16.8 animation plays over 2 beats at 144bpm, // but if the game lags or the bpm is > 144 (mods etc.) @@ -443,11 +369,7 @@ class Character extends FlxSprite quickAnimAdd('singRIGHT', 'SENPAI RIGHT NOTE'); quickAnimAdd('singDOWN', 'SENPAI DOWN NOTE'); - addOffset('idle'); - addOffset("singUP", 5, 37); - addOffset("singRIGHT"); - addOffset("singLEFT", 40); - addOffset("singDOWN", 14); + loadOffsetFile(curCharacter); playAnim('idle'); @@ -456,18 +378,15 @@ class Character extends FlxSprite antialiasing = false; case 'senpai-angry': - frames = Paths.getSparrowAtlas('weeb/senpai'); + frames = Paths.getSparrowAtlas('characters/senpai'); quickAnimAdd('idle', 'Angry Senpai Idle'); quickAnimAdd('singUP', 'Angry Senpai UP NOTE'); quickAnimAdd('singLEFT', 'Angry Senpai LEFT NOTE'); quickAnimAdd('singRIGHT', 'Angry Senpai RIGHT NOTE'); quickAnimAdd('singDOWN', 'Angry Senpai DOWN NOTE'); - addOffset('idle'); - addOffset("singUP", 5, 37); - addOffset("singRIGHT"); - addOffset("singLEFT", 40); - addOffset("singDOWN", 14); + loadOffsetFile(curCharacter); + playAnim('idle'); setGraphicSize(Std.int(width * 6)); @@ -476,18 +395,14 @@ class Character extends FlxSprite antialiasing = false; case 'spirit': - frames = Paths.getPackerAtlas('weeb/spirit'); + frames = Paths.getPackerAtlas('characters/spirit'); quickAnimAdd('idle', "idle spirit_"); quickAnimAdd('singUP', "up_"); quickAnimAdd('singRIGHT', "right_"); quickAnimAdd('singLEFT', "left_"); quickAnimAdd('singDOWN', "spirit down_"); - addOffset('idle', -220, -280); - addOffset('singUP', -220, -240); - addOffset("singRIGHT", -220, -280); - addOffset("singLEFT", -200, -280); - addOffset("singDOWN", 170, 110); + loadOffsetFile(curCharacter); setGraphicSize(Std.int(width * 6)); updateHitbox(); @@ -497,7 +412,7 @@ class Character extends FlxSprite antialiasing = false; case 'parents-christmas': - frames = Paths.getSparrowAtlas('christmas/mom_dad_christmas_assets'); + frames = Paths.getSparrowAtlas('characters/mom_dad_christmas_assets'); quickAnimAdd('idle', 'Parent Christmas Idle'); quickAnimAdd('singUP', 'Parent Up Note Dad'); quickAnimAdd('singDOWN', 'Parent Down Note Dad'); @@ -510,15 +425,7 @@ class Character extends FlxSprite quickAnimAdd('singLEFT-alt', 'Parent Left Note Mom'); quickAnimAdd('singRIGHT-alt', 'Parent Right Note Mom'); - 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); + loadOffsetFile(curCharacter); playAnim('idle'); case 'tankman': From 1bd5cbf47206bfc0f367854663d51e1bff4bcac1 Mon Sep 17 00:00:00 2001 From: MtH Date: Tue, 30 Mar 2021 18:43:07 +0200 Subject: [PATCH 04/22] fixed bugs where game would crash if pressing R during cutscene or state transition --- source/PlayState.hx | 73 +++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/source/PlayState.hx b/source/PlayState.hx index dd5610578..505d9267e 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -941,7 +941,7 @@ class PlayState extends MusicBeatState }); } - var startTimer:FlxTimer; + var startTimer:FlxTimer = new FlxTimer(); var perfectMode:Bool = false; function startCountdown():Void @@ -958,7 +958,7 @@ class PlayState extends MusicBeatState var swagCounter:Int = 0; - startTimer = new FlxTimer().start(Conductor.crochet / 1000, function(tmr:FlxTimer) + startTimer.start(Conductor.crochet / 1000, function(tmr:FlxTimer) { // this just based on beatHit stuff but compact if (swagCounter % gfSpeed == 0) @@ -1563,42 +1563,45 @@ class PlayState extends MusicBeatState } // better streaming of shit - // RESET = Quick Game Over Screen - if (controls.RESET) + if (!inCutscene && !_exiting) { - health = 0; - trace("RESET = True"); - } + // RESET = Quick Game Over Screen + if (controls.RESET) + { + health = 0; + trace("RESET = True"); + } - #if CAN_CHEAT // brandon's a pussy - if (controls.CHEAT) - { - health += 1; - trace("User is cheating!"); - } - #end - - if (health <= 0 && !practiceMode) - { - boyfriend.stunned = true; - - persistentUpdate = false; - persistentDraw = false; - paused = true; - - vocals.stop(); - FlxG.sound.music.stop(); - - deathCounter += 1; - - openSubState(new GameOverSubstate(boyfriend.getScreenPosition().x, boyfriend.getScreenPosition().y)); - - // FlxG.switchState(new GameOverState(boyfriend.getScreenPosition().x, boyfriend.getScreenPosition().y)); - - #if discord_rpc - // Game Over doesn't get his own variable because it's only used here - DiscordClient.changePresence("Game Over - " + detailsText, SONG.song + " (" + storyDifficultyText + ")", iconRPC); + #if CAN_CHEAT // brandon's a pussy + if (controls.CHEAT) + { + health += 1; + trace("User is cheating!"); + } #end + + if (health <= 0 && !practiceMode) + { + boyfriend.stunned = true; + + persistentUpdate = false; + persistentDraw = false; + paused = true; + + vocals.stop(); + FlxG.sound.music.stop(); + + deathCounter += 1; + + openSubState(new GameOverSubstate(boyfriend.getScreenPosition().x, boyfriend.getScreenPosition().y)); + + // FlxG.switchState(new GameOverState(boyfriend.getScreenPosition().x, boyfriend.getScreenPosition().y)); + + #if discord_rpc + // Game Over doesn't get his own variable because it's only used here + DiscordClient.changePresence("Game Over - " + detailsText, SONG.song + " (" + storyDifficultyText + ")", iconRPC); + #end + } } if (unspawnNotes[0] != null) From 4c301801c5cc8949d137c4569f865fd748d8c552 Mon Sep 17 00:00:00 2001 From: MtH Date: Tue, 30 Mar 2021 18:59:14 +0200 Subject: [PATCH 05/22] skip to end of dialogue if not finished --- source/DialogueBox.hx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/DialogueBox.hx b/source/DialogueBox.hx index ade30a8e3..e6a7ee5ec 100644 --- a/source/DialogueBox.hx +++ b/source/DialogueBox.hx @@ -150,6 +150,7 @@ class DialogueBox extends FlxSpriteGroup var dialogueOpened:Bool = false; var dialogueStarted:Bool = false; + var dialogueEnded:Bool = false; override function update(elapsed:Float) { @@ -180,7 +181,7 @@ class DialogueBox extends FlxSpriteGroup dialogueStarted = true; } - if (FlxG.keys.justPressed.ANY && dialogueStarted == true) + if (FlxG.keys.justPressed.ANY && dialogueEnded) { remove(dialogue); @@ -219,6 +220,8 @@ class DialogueBox extends FlxSpriteGroup startDialogue(); } } + else if (FlxG.keys.justPressed.ANY && dialogueStarted) + swagDialogue.skip(); super.update(elapsed); } @@ -239,8 +242,10 @@ class DialogueBox extends FlxSpriteGroup { trace("dialogue finish"); handSelect.visible = true; + dialogueEnded = true; }; handSelect.visible = false; + dialogueEnded = false; switch (curCharacter) { From cb8c5ca7b71958a57dd289e4a744b0ab63ce3fac Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Tue, 30 Mar 2021 11:15:34 -0700 Subject: [PATCH 06/22] moved animate bullshit into CoolUtil and gave up --- source/CoolUtil.hx | 67 +++++++++++++++++++++++++++ source/TitleState.hx | 6 ++- source/animate/Animation.hx | 11 ----- source/animate/AnimationAtlas.hx | 78 -------------------------------- 4 files changed, 71 insertions(+), 91 deletions(-) delete mode 100644 source/animate/Animation.hx delete mode 100644 source/animate/AnimationAtlas.hx diff --git a/source/CoolUtil.hx b/source/CoolUtil.hx index 8c24449bb..dea229ee4 100644 --- a/source/CoolUtil.hx +++ b/source/CoolUtil.hx @@ -1,5 +1,13 @@ package; +import flixel.FlxG; +import flixel.graphics.FlxGraphic; +import flixel.graphics.frames.FlxAtlasFrames; +import flixel.math.FlxPoint; +import flixel.math.FlxRect; +import flixel.system.FlxAssets.FlxGraphicAsset; +import haxe.Json; +import lime.math.Rectangle; import lime.utils.Assets; using StringTools; @@ -34,4 +42,63 @@ class CoolUtil } return dumbArray; } + + public static function fromAnimate(Source:FlxGraphicAsset, Description:String):FlxAtlasFrames + { + var graphic:FlxGraphic = FlxG.bitmap.add(Source); + if (graphic == null) + return null; + + var frames:FlxAtlasFrames = FlxAtlasFrames.findFrame(graphic); + if (frames != null) + return frames; + + if (graphic == null || Description == null) + return null; + + frames = new FlxAtlasFrames(graphic); + + var data:AnimateObject; + + var json:String = Description; + + trace(json); + + if (Assets.exists(json)) + json = Assets.getText(json); + + data = cast Json.parse(json).ATLAS; + + for (sprite in data.SPRITES) + { + // probably nicer way to do this? Oh well + var swagSprite:AnimateSprite = sprite.SPRITE; + + var rect = FlxRect.get(swagSprite.x, swagSprite.y, swagSprite.w, swagSprite.h); + + var size = new Rectangle(0, 0, rect.width, rect.height); + + var offset = FlxPoint.get(-size.left, -size.top); + var sourceSize = FlxPoint.get(size.width, size.height); + + frames.addAtlasFrame(rect, sourceSize, offset, swagSprite.name); + } + + return frames; + } +} + +typedef AnimateObject = +{ + SPRITES:Array +} + +typedef AnimateSprite = +{ + var name:String; + var x:Int; + var y:Int; + var w:Int; + var h:Int; + var rotated:Bool; } diff --git a/source/TitleState.hx b/source/TitleState.hx index bdb394bcf..b658244a1 100644 --- a/source/TitleState.hx +++ b/source/TitleState.hx @@ -53,8 +53,6 @@ class TitleState extends MusicBeatState polymod.Polymod.init({modRoot: "mods", dirs: ['introMod'], framework: OPENFL}); #end - AnimationAtlas.fromAnimate(Paths.image('money'), Paths.file('images/money.json')); - swagShader = new ColorSwap(); FlxG.sound.muteKeys = [ZERO]; @@ -198,6 +196,10 @@ class TitleState extends MusicBeatState blackScreen = new FlxSprite().makeGraphic(FlxG.width, FlxG.height, FlxColor.BLACK); credGroup.add(blackScreen); + var atlasBullShit:FlxSprite = new FlxSprite(); + atlasBullShit.frames = CoolUtil.fromAnimate(Paths.image('money'), Paths.file('images/money.json')); + credGroup.add(atlasBullShit); + credTextShit = new Alphabet(0, 0, "ninjamuffin99\nPhantomArcade\nkawaisprite\nevilsk8er", true); credTextShit.screenCenter(); diff --git a/source/animate/Animation.hx b/source/animate/Animation.hx deleted file mode 100644 index eec2c6c60..000000000 --- a/source/animate/Animation.hx +++ /dev/null @@ -1,11 +0,0 @@ -package animate; - -import flixel.group.FlxGroup; - -class Aniamtion extends FlxGroup -{ - public function new(symbolName:String, atlas:AnimationAtlas):Void - { - super(); - } -} diff --git a/source/animate/AnimationAtlas.hx b/source/animate/AnimationAtlas.hx deleted file mode 100644 index cd87c39d0..000000000 --- a/source/animate/AnimationAtlas.hx +++ /dev/null @@ -1,78 +0,0 @@ -package animate; - -import flixel.FlxG; -import flixel.addons.ui.FlxUIColorSwatchSelecter.SwatchGraphic; -import flixel.graphics.FlxGraphic; -import flixel.graphics.frames.FlxAtlasFrames; -import flixel.math.FlxPoint; -import flixel.math.FlxRect; -import flixel.system.FlxAssets.FlxGraphicAsset; -import haxe.Json; -import openfl.Assets; -import openfl.geom.Rectangle; - -class AnimationAtlas -{ - public function new(data:Dynamic, atlas:FlxAtlasFrames):Void {} - - public static function fromAnimate(Source:FlxGraphicAsset, Description:String):FlxAtlasFrames - { - var graphic:FlxGraphic = FlxG.bitmap.add(Source); - if (graphic == null) - return null; - - var frames:FlxAtlasFrames = FlxAtlasFrames.findFrame(graphic); - if (frames != null) - return frames; - - if (graphic == null || Description == null) - return null; - - frames = new FlxAtlasFrames(graphic); - - var data:AnimateObject; - - var json:String = Description; - - trace(json); - - if (Assets.exists(json)) - json = Assets.getText(json); - - trace(json); - - data = cast Json.parse(json).ATLAS; - - for (sprite in data.SPRITES) - { - // probably nicer way to do this? Oh well - var swagSprite:AnimateSprite = sprite.SPRITE; - - var rect = FlxRect.get(swagSprite.x, swagSprite.y, swagSprite.w, swagSprite.h); - - var size = new Rectangle(0, 0, rect.width, rect.height); - - var offset = FlxPoint.get(-size.left, -size.top); - var sourceSize = FlxPoint.get(size.width, size.height); - - frames.addAtlasFrame(rect, sourceSize, offset, swagSprite.name); - } - - return frames; - } -} - -typedef AnimateObject = -{ - SPRITES:Array -} - -typedef AnimateSprite = -{ - var name:String; - var x:Int; - var y:Int; - var w:Int; - var h:Int; - var rotated:Bool; -} From 554dfbf60b539eff893780cdf4f11d3d8fdd45ff Mon Sep 17 00:00:00 2001 From: MtH Date: Tue, 30 Mar 2021 20:52:24 +0200 Subject: [PATCH 07/22] tighten main menu security to prevent weird crashes during transitions --- source/MainMenuState.hx | 6 +++++- source/ui/MenuList.hx | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/source/MainMenuState.hx b/source/MainMenuState.hx index bdcbd277c..abfc753aa 100644 --- a/source/MainMenuState.hx +++ b/source/MainMenuState.hx @@ -218,6 +218,7 @@ class MainMenuState extends MusicBeatState function startExitState(state:FlxState) { + menuItems.enabled = false; // disable for exit var duration = 0.4; menuItems.forEach(function(item) { @@ -241,7 +242,10 @@ class MainMenuState extends MusicBeatState FlxG.sound.music.volume += 0.5 * FlxG.elapsed; } - if (menuItems.enabled && controls.BACK) + if (_exiting) + menuItems.enabled = false; + + if (controls.BACK && menuItems.enabled && !menuItems.busy) FlxG.switchState(new TitleState()); super.update(elapsed); diff --git a/source/ui/MenuList.hx b/source/ui/MenuList.hx index 6d20d7d82..cee2f78b4 100644 --- a/source/ui/MenuList.hx +++ b/source/ui/MenuList.hx @@ -24,7 +24,8 @@ class MenuTypedList extends FlxTypedGroup var byName = new Map(); /** Set to true, internally to disable controls, without affecting vars like `enabled` */ - var busy:Bool = false; + public var busy(default, null):Bool = false; + // bit awkward because BACK is also a menu control and this doesn't affect that public function new (navControls:NavControls = Vertical, ?wrapMode:WrapMode) { From 5b2412cf6fe0dd515c30cbd4fc6a4eac26e4734d Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Tue, 30 Mar 2021 13:58:05 -0700 Subject: [PATCH 08/22] tankman/picospeaker better syncs --- source/Character.hx | 2 ++ source/PlayState.hx | 45 +++++++++++++++++++++++++------------------- source/TankmenBG.hx | 12 ++++++------ source/TitleState.hx | 1 - 4 files changed, 34 insertions(+), 26 deletions(-) diff --git a/source/Character.hx b/source/Character.hx index 042778b78..3e203e61d 100644 --- a/source/Character.hx +++ b/source/Character.hx @@ -501,6 +501,8 @@ class Character extends FlxSprite } } + TankmenBG.animationNotes = animationNotes; + trace(animationNotes); } diff --git a/source/PlayState.hx b/source/PlayState.hx index 505d9267e..5c7e5584f 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -492,7 +492,7 @@ class PlayState extends MusicBeatState */ case 'guns' | 'stress' | 'ugh': - // defaultCamZoom = 0.95; + defaultCamZoom = 0.90; curStage = 'tank'; var bg:BGSprite = new BGSprite('tankSky', 0, -200, 0, 0); @@ -591,6 +591,13 @@ class PlayState extends MusicBeatState case 'pico-speaker': gf.x -= 50; gf.y -= 200; + + for (i in 0...TankmenBG.animationNotes.length) + { + var tankman:TankmenBG = new TankmenBG(500, 200 + FlxG.random.int(0, 150), TankmenBG.animationNotes[i][1] < 2); + tankman.strumTime = TankmenBG.animationNotes[i][0]; + tankmanRun.add(tankman); + } } dad = new Character(100, 100, SONG.player2); @@ -2017,8 +2024,18 @@ class PlayState extends MusicBeatState { // control arrays, order L D R U var holdArray:Array = [controls.NOTE_LEFT, controls.NOTE_DOWN, controls.NOTE_UP, controls.NOTE_RIGHT]; - var pressArray:Array = [controls.NOTE_LEFT_P, controls.NOTE_DOWN_P, controls.NOTE_UP_P, controls.NOTE_RIGHT_P]; - var releaseArray:Array = [controls.NOTE_LEFT_R, controls.NOTE_DOWN_R, controls.NOTE_UP_R, controls.NOTE_RIGHT_R]; + var pressArray:Array = [ + controls.NOTE_LEFT_P, + controls.NOTE_DOWN_P, + controls.NOTE_UP_P, + controls.NOTE_RIGHT_P + ]; + var releaseArray:Array = [ + controls.NOTE_LEFT_R, + controls.NOTE_DOWN_R, + controls.NOTE_UP_R, + controls.NOTE_RIGHT_R + ]; // HOLDS, check for sustain notes if (holdArray.contains(true) && /*!boyfriend.stunned && */ generatedMusic) @@ -2048,13 +2065,13 @@ class PlayState extends MusicBeatState for (coolNote in possibleNotes) { if (coolNote.noteData == daNote.noteData && Math.abs(daNote.strumTime - coolNote.strumTime) < 10) - { // if it's the same note twice at < 10ms distance, just delete it + { // if it's the same note twice at < 10ms distance, just delete it // EXCEPT u cant delete it in this loop cuz it fucks with the collection lol dumbNotes.push(daNote); break; } else if (coolNote.noteData == daNote.noteData && daNote.strumTime < coolNote.strumTime) - { // if daNote is earlier than existing note (coolNote), replace + { // if daNote is earlier than existing note (coolNote), replace possibleNotes.remove(coolNote); possibleNotes.push(daNote); break; @@ -2071,7 +2088,7 @@ class PlayState extends MusicBeatState for (note in dumbNotes) { - FlxG.log.add("killing dumb ass note at "+note.strumTime); + FlxG.log.add("killing dumb ass note at " + note.strumTime); note.kill(); notes.remove(note, true); note.destroy(); @@ -2084,7 +2101,7 @@ class PlayState extends MusicBeatState else if (possibleNotes.length > 0) { for (shit in 0...pressArray.length) - { // if a direction is hit that shouldn't be + { // if a direction is hit that shouldn't be if (pressArray[shit] && !directionList.contains(shit)) badNoteHit(); } @@ -2321,7 +2338,8 @@ class PlayState extends MusicBeatState override function stepHit() { super.stepHit(); - if (Math.abs(FlxG.sound.music.time - Conductor.songPosition) > 20 || (SONG.needsVoices && Math.abs(vocals.time - Conductor.songPosition) > 20)) + if (Math.abs(FlxG.sound.music.time - Conductor.songPosition) > 20 + || (SONG.needsVoices && Math.abs(vocals.time - Conductor.songPosition) > 20)) { resyncVocals(); } @@ -2455,17 +2473,6 @@ class PlayState extends MusicBeatState } } - switch (curSong.toLowerCase()) - { - case 'stress': - if (FlxG.random.bool()) - { - var tank:TankmenBG = new TankmenBG(500, 200); - tank.strumTime = Conductor.songPosition + (Conductor.crochet * 4); - tankmanRun.add(tank); - } - } - if (isHalloween && FlxG.random.bool(10) && curBeat > lightningStrikeBeat + lightningOffset) { lightningStrikeShit(); diff --git a/source/TankmenBG.hx b/source/TankmenBG.hx index bdd56e8a3..6a703151a 100644 --- a/source/TankmenBG.hx +++ b/source/TankmenBG.hx @@ -6,13 +6,15 @@ import haxe.display.Display.Package; class TankmenBG extends FlxSprite { + public static var animationNotes:Array = []; + public var strumTime:Float = 0; public var goingRight:Bool = false; public var tankSpeed:Float = 0.7; public var endingOffset:Float; - public function new(x:Float, y:Float) + public function new(x:Float, y:Float, isGoingRight:Bool) { super(x, y); @@ -25,12 +27,10 @@ class TankmenBG extends FlxSprite animation.play('run'); - y += FlxG.random.int(-40, 100); + goingRight = isGoingRight; + endingOffset = FlxG.random.float(50, 200); - goingRight = FlxG.random.bool(); - endingOffset = FlxG.random.float(0, 120); - - tankSpeed = FlxG.random.float(0.65, 0.8); + tankSpeed = FlxG.random.float(0.6, 1); if (goingRight) flipX = true; diff --git a/source/TitleState.hx b/source/TitleState.hx index b658244a1..81f8244df 100644 --- a/source/TitleState.hx +++ b/source/TitleState.hx @@ -1,6 +1,5 @@ package; -import animate.AnimationAtlas; import flixel.FlxG; import flixel.FlxSprite; import flixel.addons.transition.FlxTransitionSprite.GraphicTransTileDiamond; From 82fba0eb8b470b538436585ee5a54518e2d12a86 Mon Sep 17 00:00:00 2001 From: MtH Date: Tue, 30 Mar 2021 23:32:57 +0200 Subject: [PATCH 09/22] have notes show up properly on scroll speeds below 1 --- source/PlayState.hx | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/source/PlayState.hx b/source/PlayState.hx index 505d9267e..c460bac90 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -1604,16 +1604,13 @@ class PlayState extends MusicBeatState } } - if (unspawnNotes[0] != null) + while (unspawnNotes[0] != null &&unspawnNotes[0].strumTime - Conductor.songPosition < 1500 / SONG.speed) { - if (unspawnNotes[0].strumTime - Conductor.songPosition < 1500) - { - var dunceNote:Note = unspawnNotes[0]; - notes.add(dunceNote); + var dunceNote:Note = unspawnNotes[0]; + notes.add(dunceNote); - var index:Int = unspawnNotes.indexOf(dunceNote); - unspawnNotes.splice(index, 1); - } + var index:Int = unspawnNotes.indexOf(dunceNote); + unspawnNotes.splice(index, 1); } if (generatedMusic) From b6e8cc93b8fb6849f7c39d51e200cc9a2860e7b5 Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Tue, 30 Mar 2021 15:10:15 -0700 Subject: [PATCH 10/22] basically down scroll --- source/Note.hx | 4 ++++ source/PlayState.hx | 21 +++++++++++++++++++-- source/ui/PreferencesMenu.hx | 2 +- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/source/Note.hx b/source/Note.hx index 786a23e53..d0b582e50 100644 --- a/source/Note.hx +++ b/source/Note.hx @@ -7,6 +7,7 @@ import flixel.math.FlxMath; import flixel.util.FlxColor; import flixel.util.FlxTimer; import shaderslmfao.ColorSwap; +import ui.PreferencesMenu; using StringTools; @@ -144,6 +145,9 @@ class Note extends FlxSprite noteScore * 0.2; alpha = 0.6; + if (PreferencesMenu.getPref('downscroll')) + angle = 180; + x += width / 2; switch (noteData) diff --git a/source/PlayState.hx b/source/PlayState.hx index 5c7e5584f..0dd29b668 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -708,6 +708,12 @@ class PlayState extends MusicBeatState Conductor.songPosition = -5000; strumLine = new FlxSprite(0, 50).makeGraphic(FlxG.width, 10); + + if (PreferencesMenu.getPref('downscroll')) + { + strumLine.y = FlxG.height - 150; // 150 just random ass number lol + } + strumLine.scrollFactor.set(); strumLineNotes = new FlxTypedGroup(); @@ -747,6 +753,9 @@ class PlayState extends MusicBeatState healthBarBG.scrollFactor.set(); add(healthBarBG); + if (PreferencesMenu.getPref('downscroll')) + healthBarBG.y = FlxG.height * 0.1; + healthBar = new FlxBar(healthBarBG.x + 4, healthBarBG.y + 4, RIGHT_TO_LEFT, Std.int(healthBarBG.width - 8), Std.int(healthBarBG.height - 8), this, 'health', 0, 2); healthBar.scrollFactor.set(); @@ -1638,7 +1647,10 @@ class PlayState extends MusicBeatState daNote.active = true; } - daNote.y = (strumLine.y - (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(SONG.speed, 2))); + if (PreferencesMenu.getPref('downscroll')) + daNote.y = (strumLine.y + (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(SONG.speed, 2))); + else + daNote.y = (strumLine.y - (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(SONG.speed, 2))); // i am so fucking sorry for this if condition if (daNote.isSustainNote @@ -1690,7 +1702,12 @@ class PlayState extends MusicBeatState // WIP interpolation shit? Need to fix the pause issue // daNote.y = (strumLine.y - (songTime - daNote.strumTime) * (0.45 * PlayState.SONG.speed)); - if (daNote.y < -daNote.height) + var noteMiss:Bool = daNote.y < -daNote.height; + + if (PreferencesMenu.getPref('downscroll')) + noteMiss = daNote.y > FlxG.height; + + if (noteMiss) { if (daNote.tooLate || !daNote.wasGoodHit) { diff --git a/source/ui/PreferencesMenu.hx b/source/ui/PreferencesMenu.hx index eadd31ec0..d9038d004 100644 --- a/source/ui/PreferencesMenu.hx +++ b/source/ui/PreferencesMenu.hx @@ -34,7 +34,7 @@ class PreferencesMenu extends ui.OptionsState.Page public static function initPrefs():Void { preferenceCheck('censor-naughty', false); - preferenceCheck('downscroll', false); + preferenceCheck('downscroll', true); preferenceCheck('flashing-menu', true); preferenceCheck('camera-zoom', true); } From 242443810c2dfe724723a0c0e103e2b7167a2ea3 Mon Sep 17 00:00:00 2001 From: MtH Date: Wed, 31 Mar 2021 03:02:12 +0200 Subject: [PATCH 11/22] susnote clip for downscroll still looks like shit tho --- source/Note.hx | 2 ++ source/PlayState.hx | 32 +++++++++++++++++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/source/Note.hx b/source/Note.hx index d0b582e50..e3c8913cb 100644 --- a/source/Note.hx +++ b/source/Note.hx @@ -184,6 +184,8 @@ class Note extends FlxSprite } prevNote.scale.y *= Conductor.stepCrochet / 100 * 1.5 * PlayState.SONG.speed; + if (PreferencesMenu.getPref('downscroll')) + prevNote.angle = 0; prevNote.updateHitbox(); // prevNote.setGraphicSize(); } diff --git a/source/PlayState.hx b/source/PlayState.hx index 0dd29b668..6565c4eb1 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -1647,21 +1647,35 @@ class PlayState extends MusicBeatState daNote.active = true; } + var strumLineMid = strumLine.y + Note.swagWidth / 2; + if (PreferencesMenu.getPref('downscroll')) + { daNote.y = (strumLine.y + (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(SONG.speed, 2))); + + if (daNote.isSustainNote && (!daNote.mustPress || (daNote.wasGoodHit || (daNote.prevNote.wasGoodHit && !daNote.canBeHit))) + && daNote.y - daNote.offset.y * daNote.scale.y + daNote.height >= strumLineMid) + { + // div by scale because cliprect is affected by scale i THINK + var swagRect:FlxRect = new FlxRect(0, 0, daNote.width / daNote.scale.x, daNote.height / daNote.scale.y); + + swagRect.height = (strumLineMid - daNote.y) / daNote.scale.y; + daNote.clipRect = swagRect; + } + } else + { daNote.y = (strumLine.y - (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(SONG.speed, 2))); - // i am so fucking sorry for this if condition - if (daNote.isSustainNote - && daNote.y + daNote.offset.y <= strumLine.y + Note.swagWidth / 2 - && (!daNote.mustPress || (daNote.wasGoodHit || (daNote.prevNote.wasGoodHit && !daNote.canBeHit)))) - { - var swagRect = new FlxRect(0, strumLine.y + Note.swagWidth / 2 - daNote.y, daNote.width * 2, daNote.height * 2); - swagRect.y /= daNote.scale.y; - swagRect.height -= swagRect.y; + if (daNote.isSustainNote && (!daNote.mustPress || (daNote.wasGoodHit || (daNote.prevNote.wasGoodHit && !daNote.canBeHit))) + && daNote.y + daNote.offset.y * daNote.scale.y <= strumLineMid) + { + var swagRect:FlxRect = new FlxRect(0, 0, daNote.width / daNote.scale.x, daNote.height / daNote.scale.y); - daNote.clipRect = swagRect; + swagRect.y = (strumLineMid - daNote.y) / daNote.scale.y; + swagRect.height -= swagRect.y; + daNote.clipRect = swagRect; + } } if (!daNote.mustPress && daNote.wasGoodHit) From 96e6226c0417245295acea0905944b971a8ff4c4 Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Tue, 30 Mar 2021 20:51:17 -0700 Subject: [PATCH 12/22] FPS counter toggle --- source/Main.hx | 5 ++++- source/TitleState.hx | 3 +-- source/ui/PreferencesMenu.hx | 13 +++++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/source/Main.hx b/source/Main.hx index 95b4e792f..b5f1dcb87 100644 --- a/source/Main.hx +++ b/source/Main.hx @@ -64,6 +64,8 @@ class Main extends Sprite var netStream:NetStream; private var overlay:Sprite; + public static var fpsCounter:FPS; + private function setupGame():Void { var stageWidth:Int = Lib.current.stage.stageWidth; @@ -85,7 +87,8 @@ class Main extends Sprite addChild(new FlxGame(gameWidth, gameHeight, initialState, zoom, framerate, framerate, skipSplash, startFullscreen)); #if !mobile - addChild(new FPS(10, 3, 0xFFFFFF)); + fpsCounter = new FPS(10, 3, 0xFFFFFF); + addChild(fpsCounter); #end /* video = new Video(); diff --git a/source/TitleState.hx b/source/TitleState.hx index 81f8244df..552d63fba 100644 --- a/source/TitleState.hx +++ b/source/TitleState.hx @@ -62,9 +62,8 @@ class TitleState extends MusicBeatState super.create(); - PreferencesMenu.initPrefs(); - FlxG.save.bind('funkin', 'ninjamuffin99'); + PreferencesMenu.initPrefs(); PlayerSettings.init(); Highscore.load(); diff --git a/source/ui/PreferencesMenu.hx b/source/ui/PreferencesMenu.hx index d9038d004..20cd56f3f 100644 --- a/source/ui/PreferencesMenu.hx +++ b/source/ui/PreferencesMenu.hx @@ -24,6 +24,7 @@ class PreferencesMenu extends ui.OptionsState.Page createPrefItem('downscroll', 'downscroll', false); createPrefItem('flashing menu', 'flashing-menu', true); createPrefItem('Camera Zooming on Beat', 'camera-zoom', true); + createPrefItem('FPS Counter', 'fps-counter', true); } public static function getPref(pref:String):Dynamic @@ -37,6 +38,10 @@ class PreferencesMenu extends ui.OptionsState.Page preferenceCheck('downscroll', true); preferenceCheck('flashing-menu', true); preferenceCheck('camera-zoom', true); + preferenceCheck('fps-counter', true); + + if (!getPref('fps-counter')) + FlxG.stage.removeChild(Main.fpsCounter); } private function createPrefItem(prefName:String, prefString:String, prefValue:Dynamic):Void @@ -84,6 +89,14 @@ class PreferencesMenu extends ui.OptionsState.Page preferences.set(prefName, daSwap); checkboxes[items.selectedIndex].daValue = daSwap; trace('toggled? ' + preferences.get(prefName)); + + if (prefName == 'fps-counter') + { + if (getPref('fps-counter')) + FlxG.stage.addChild(Main.fpsCounter); + else + FlxG.stage.removeChild(Main.fpsCounter); + } } override function update(elapsed:Float) From 82d0490f1637a61e6b35cf4b2d221c43ca280664 Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Tue, 30 Mar 2021 21:01:18 -0700 Subject: [PATCH 13/22] lil options cleaning --- source/ui/PreferencesMenu.hx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/source/ui/PreferencesMenu.hx b/source/ui/PreferencesMenu.hx index 20cd56f3f..128b729df 100644 --- a/source/ui/PreferencesMenu.hx +++ b/source/ui/PreferencesMenu.hx @@ -46,7 +46,7 @@ class PreferencesMenu extends ui.OptionsState.Page private function createPrefItem(prefName:String, prefString:String, prefValue:Dynamic):Void { - items.createItem(100, 100 * items.length, prefName, AtlasFont.Bold, function() + items.createItem(120, (120 * items.length) + 30, prefName, AtlasFont.Bold, function() { preferenceCheck(prefString, prefValue); @@ -74,7 +74,7 @@ class PreferencesMenu extends ui.OptionsState.Page function createCheckbox(prefString:String) { - var checkbox:CheckboxThingie = new CheckboxThingie(0, 100 * (items.length - 1), preferences.get(prefString)); + var checkbox:CheckboxThingie = new CheckboxThingie(0, 120 * (items.length - 1), preferences.get(prefString)); checkboxes.push(checkbox); add(checkbox); } @@ -102,6 +102,14 @@ class PreferencesMenu extends ui.OptionsState.Page override function update(elapsed:Float) { super.update(elapsed); + + items.forEach(function(daItem:TextMenuItem) + { + if (items.selectedItem == daItem) + daItem.x = 150; + else + daItem.x = 120; + }); } private static function preferenceCheck(prefString:String, prefValue:Dynamic):Void From 4518cbfbbc56919157ae6ca5b1d9aa5e20ce4936 Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Tue, 30 Mar 2021 21:25:41 -0700 Subject: [PATCH 14/22] pico note sort --- source/Character.hx | 12 ++++++++++++ source/PlayState.hx | 6 ++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/source/Character.hx b/source/Character.hx index 3e203e61d..06745f3b3 100644 --- a/source/Character.hx +++ b/source/Character.hx @@ -5,6 +5,7 @@ import flixel.FlxG; import flixel.FlxSprite; import flixel.animation.FlxBaseAnimation; import flixel.graphics.frames.FlxAtlasFrames; +import flixel.util.FlxSort; import haxe.io.Path; using StringTools; @@ -504,6 +505,12 @@ class Character extends FlxSprite TankmenBG.animationNotes = animationNotes; trace(animationNotes); + animationNotes.sort(sortAnims); + } + + function sortAnims(val1:Array, val2:Array):Int + { + return FlxSort.byValues(FlxSort.ASCENDING, val1[0], val2[0]); } function quickAnimAdd(name:String, prefix:String) @@ -573,6 +580,11 @@ class Character extends FlxSprite animationNotes.shift(); } } + + if (animation.curAnim.finished) + { + playAnim(animation.curAnim.name, false, false, animation.curAnim.numFrames - 3); + } } super.update(elapsed); diff --git a/source/PlayState.hx b/source/PlayState.hx index 6565c4eb1..f3bf44cca 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -1653,7 +1653,8 @@ class PlayState extends MusicBeatState { daNote.y = (strumLine.y + (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(SONG.speed, 2))); - if (daNote.isSustainNote && (!daNote.mustPress || (daNote.wasGoodHit || (daNote.prevNote.wasGoodHit && !daNote.canBeHit))) + if (daNote.isSustainNote + && (!daNote.mustPress || (daNote.wasGoodHit || (daNote.prevNote.wasGoodHit && !daNote.canBeHit))) && daNote.y - daNote.offset.y * daNote.scale.y + daNote.height >= strumLineMid) { // div by scale because cliprect is affected by scale i THINK @@ -1667,7 +1668,8 @@ class PlayState extends MusicBeatState { daNote.y = (strumLine.y - (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(SONG.speed, 2))); - if (daNote.isSustainNote && (!daNote.mustPress || (daNote.wasGoodHit || (daNote.prevNote.wasGoodHit && !daNote.canBeHit))) + if (daNote.isSustainNote + && (!daNote.mustPress || (daNote.wasGoodHit || (daNote.prevNote.wasGoodHit && !daNote.canBeHit))) && daNote.y + daNote.offset.y * daNote.scale.y <= strumLineMid) { var swagRect:FlxRect = new FlxRect(0, 0, daNote.width / daNote.scale.x, daNote.height / daNote.scale.y); From 393ab7733dd3b883aacd7484ffed51005a241e83 Mon Sep 17 00:00:00 2001 From: MtH Date: Wed, 31 Mar 2021 14:43:37 +0200 Subject: [PATCH 15/22] clip rotated sus --- source/Note.hx | 2 -- source/PlayState.hx | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/source/Note.hx b/source/Note.hx index e3c8913cb..d0b582e50 100644 --- a/source/Note.hx +++ b/source/Note.hx @@ -184,8 +184,6 @@ class Note extends FlxSprite } prevNote.scale.y *= Conductor.stepCrochet / 100 * 1.5 * PlayState.SONG.speed; - if (PreferencesMenu.getPref('downscroll')) - prevNote.angle = 0; prevNote.updateHitbox(); // prevNote.setGraphicSize(); } diff --git a/source/PlayState.hx b/source/PlayState.hx index f3bf44cca..3888d6b26 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -1661,6 +1661,7 @@ class PlayState extends MusicBeatState var swagRect:FlxRect = new FlxRect(0, 0, daNote.width / daNote.scale.x, daNote.height / daNote.scale.y); swagRect.height = (strumLineMid - daNote.y) / daNote.scale.y; + swagRect.y = daNote.height / daNote.scale.y - swagRect.height; daNote.clipRect = swagRect; } } From 3d20c2fd1275d0bb191b1bcb2c929a5bb21dae5e Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Wed, 31 Mar 2021 10:08:55 -0700 Subject: [PATCH 16/22] bullshit for working mac build? lol --- Project.xml | 2 +- source/Discord.hx | 21 +++++++++++++-------- source/PlayState.hx | 2 ++ source/TitleState.hx | 6 +++--- source/ui/PreferencesMenu.hx | 2 +- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/Project.xml b/Project.xml index c6eb34e14..be1f2cbed 100644 --- a/Project.xml +++ b/Project.xml @@ -126,7 +126,7 @@ - + diff --git a/source/Discord.hx b/source/Discord.hx index 253a4f59a..c28e5d9be 100644 --- a/source/Discord.hx +++ b/source/Discord.hx @@ -1,12 +1,16 @@ package; import Sys.sleep; -import discord_rpc.DiscordRpc; using StringTools; +#if discord_rpc +import discord_rpc.DiscordRpc; +#end + class DiscordClient { + #if discord_rpc public function new() { trace("Discord Client starting..."); @@ -22,7 +26,7 @@ class DiscordClient { DiscordRpc.process(); sleep(2); - //trace("Discord Client Update"); + // trace("Discord Client Update"); } DiscordRpc.shutdown(); @@ -57,9 +61,9 @@ class DiscordClient trace("Discord Client initialized"); } - public static function changePresence(details:String, state:Null, ?smallImageKey : String, ?hasStartTimestamp : Bool, ?endTimestamp: Float) + public static function changePresence(details:String, state:Null, ?smallImageKey:String, ?hasStartTimestamp:Bool, ?endTimestamp:Float) { - var startTimestamp:Float = if(hasStartTimestamp) Date.now().getTime() else 0; + var startTimestamp:Float = if (hasStartTimestamp) Date.now().getTime() else 0; if (endTimestamp > 0) { @@ -71,12 +75,13 @@ class DiscordClient state: state, largeImageKey: 'icon', largeImageText: "Friday Night Funkin'", - smallImageKey : smallImageKey, + smallImageKey: smallImageKey, // Obtained times are in milliseconds so they are divided so Discord can use it - startTimestamp : Std.int(startTimestamp / 1000), - endTimestamp : Std.int(endTimestamp / 1000) + startTimestamp: Std.int(startTimestamp / 1000), + endTimestamp: Std.int(endTimestamp / 1000) }); - //trace('Discord RPC Updated. Arguments: $details, $state, $smallImageKey, $hasStartTimestamp, $endTimestamp'); + // trace('Discord RPC Updated. Arguments: $details, $state, $smallImageKey, $hasStartTimestamp, $endTimestamp'); } + #end } diff --git a/source/PlayState.hx b/source/PlayState.hx index f3bf44cca..ff27fd3d5 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -194,7 +194,9 @@ class PlayState extends MusicBeatState dialogue = CoolUtil.coolTextFile(Paths.txt('thorns/thornsDialogue')); } + #if discord_rpc initDiscord(); + #end switch (SONG.song.toLowerCase()) { diff --git a/source/TitleState.hx b/source/TitleState.hx index 552d63fba..f20080570 100644 --- a/source/TitleState.hx +++ b/source/TitleState.hx @@ -194,9 +194,9 @@ class TitleState extends MusicBeatState blackScreen = new FlxSprite().makeGraphic(FlxG.width, FlxG.height, FlxColor.BLACK); credGroup.add(blackScreen); - var atlasBullShit:FlxSprite = new FlxSprite(); - atlasBullShit.frames = CoolUtil.fromAnimate(Paths.image('money'), Paths.file('images/money.json')); - credGroup.add(atlasBullShit); + // var atlasBullShit:FlxSprite = new FlxSprite(); + // atlasBullShit.frames = CoolUtil.fromAnimate(Paths.image('money'), Paths.file('images/money.json')); + // credGroup.add(atlasBullShit); credTextShit = new Alphabet(0, 0, "ninjamuffin99\nPhantomArcade\nkawaisprite\nevilsk8er", true); credTextShit.screenCenter(); diff --git a/source/ui/PreferencesMenu.hx b/source/ui/PreferencesMenu.hx index 128b729df..5e4cb8b85 100644 --- a/source/ui/PreferencesMenu.hx +++ b/source/ui/PreferencesMenu.hx @@ -35,7 +35,7 @@ class PreferencesMenu extends ui.OptionsState.Page public static function initPrefs():Void { preferenceCheck('censor-naughty', false); - preferenceCheck('downscroll', true); + preferenceCheck('downscroll', false); preferenceCheck('flashing-menu', true); preferenceCheck('camera-zoom', true); preferenceCheck('fps-counter', true); From e16588af62a53309d7c72cc57e40ba8c60f59514 Mon Sep 17 00:00:00 2001 From: MtH Date: Wed, 31 Mar 2021 19:11:05 +0200 Subject: [PATCH 17/22] downscroll susnotes positioning --- source/PlayState.hx | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/source/PlayState.hx b/source/PlayState.hx index b3476641f..fe23faac8 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -1620,7 +1620,7 @@ class PlayState extends MusicBeatState } } - while (unspawnNotes[0] != null &&unspawnNotes[0].strumTime - Conductor.songPosition < 1500 / SONG.speed) + while (unspawnNotes[0] != null && unspawnNotes[0].strumTime - Conductor.songPosition < 1800 / SONG.speed) { var dunceNote:Note = unspawnNotes[0]; notes.add(dunceNote); @@ -1650,16 +1650,23 @@ class PlayState extends MusicBeatState { daNote.y = (strumLine.y + (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(SONG.speed, 2))); - if (daNote.isSustainNote - && (!daNote.mustPress || (daNote.wasGoodHit || (daNote.prevNote.wasGoodHit && !daNote.canBeHit))) - && daNote.y - daNote.offset.y * daNote.scale.y + daNote.height >= strumLineMid) + if (daNote.isSustainNote) { - // div by scale because cliprect is affected by scale i THINK - var swagRect:FlxRect = new FlxRect(0, 0, daNote.width / daNote.scale.x, daNote.height / daNote.scale.y); + if (daNote.animation.curAnim.name.endsWith("end") && daNote.prevNote != null) + daNote.y += daNote.prevNote.height; + else + daNote.y += daNote.height / daNote.scale.y; - swagRect.height = (strumLineMid - daNote.y) / daNote.scale.y; - swagRect.y = daNote.height / daNote.scale.y - swagRect.height; - daNote.clipRect = swagRect; + if ((!daNote.mustPress || (daNote.wasGoodHit || (daNote.prevNote.wasGoodHit && !daNote.canBeHit))) + && daNote.y - daNote.offset.y * daNote.scale.y + daNote.height >= strumLineMid) + { + // div by scale because cliprect is affected by scale i THINK + var swagRect:FlxRect = new FlxRect(0, 0, daNote.width / daNote.scale.x, daNote.height / daNote.scale.y); + + swagRect.height = (strumLineMid - daNote.y) / daNote.scale.y; + swagRect.y = daNote.height / daNote.scale.y - swagRect.height; + daNote.clipRect = swagRect; + } } } else From f1b65fa92d035aa03ac5cf495380a9cdced4c789 Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Wed, 31 Mar 2021 12:41:45 -0700 Subject: [PATCH 18/22] smoke effects on tankstage --- source/BGSprite.hx | 4 ++-- source/PlayState.hx | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/source/BGSprite.hx b/source/BGSprite.hx index a1013b015..89bcb7f0c 100644 --- a/source/BGSprite.hx +++ b/source/BGSprite.hx @@ -9,7 +9,7 @@ class BGSprite extends FlxSprite */ public var idleAnim:String; - public function new(image:String, x:Float = 0, y:Float = 0, parX:Float = 1, parY:Float = 1, ?daAnimations:Array) + public function new(image:String, x:Float = 0, y:Float = 0, parX:Float = 1, parY:Float = 1, ?daAnimations:Array, ?loopingAnim:Bool = false) { super(x, y); @@ -18,7 +18,7 @@ class BGSprite extends FlxSprite frames = Paths.getSparrowAtlas(image); for (anims in daAnimations) { - animation.addByPrefix(anims, anims, 24, false); + animation.addByPrefix(anims, anims, 24, loopingAnim); animation.play(anims); if (idleAnim == null) diff --git a/source/PlayState.hx b/source/PlayState.hx index 87b3a3cfe..8c6b0c645 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -497,7 +497,7 @@ class PlayState extends MusicBeatState defaultCamZoom = 0.90; curStage = 'tank'; - var bg:BGSprite = new BGSprite('tankSky', 0, -200, 0, 0); + var bg:BGSprite = new BGSprite('tankSky', -400, -400, 0, 0); add(bg); var tankSky:BGSprite = new BGSprite('tankClouds', 0, 10, 0.1, 0.1); @@ -512,6 +512,12 @@ class PlayState extends MusicBeatState var tankRuins:BGSprite = new BGSprite('tankRuins', -200, 170, 0.35, 0.35); add(tankRuins); + var smokeLeft:BGSprite = new BGSprite('smokeLeft', -200, -100, 0.4, 0.4, ['SmokeBlurLeft'], true); + add(smokeLeft); + + var smokeRight:BGSprite = new BGSprite('smokeRight', 1100, -100, 0.4, 0.4, ['SmokeRight'], true); + add(smokeRight); + var tankWatchtower:BGSprite = new BGSprite('tankWatchtower', 300, 50, 0.5, 0.5); add(tankWatchtower); @@ -521,6 +527,8 @@ class PlayState extends MusicBeatState tankmanRun = new FlxTypedGroup(); add(tankmanRun); + // smokeLeft.screenCenter(); + var fgTank0:BGSprite = new BGSprite('tank0', -290, 400, 1.7, 1.5, ['fg']); foregroundSprites.add(fgTank0); @@ -1660,7 +1668,7 @@ class PlayState extends MusicBeatState daNote.y += daNote.height / daNote.scale.y; if ((!daNote.mustPress || (daNote.wasGoodHit || (daNote.prevNote.wasGoodHit && !daNote.canBeHit))) - && daNote.y - daNote.offset.y * daNote.scale.y + daNote.height >= strumLineMid) + && daNote.y - daNote.offset.y * daNote.scale.y + daNote.height >= strumLineMid) { // div by scale because cliprect is affected by scale i THINK var swagRect:FlxRect = new FlxRect(0, 0, daNote.width / daNote.scale.x, daNote.height / daNote.scale.y); From 916d6437db13d31ed96cd12d8a1bd6ba9c019b2d Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Thu, 1 Apr 2021 16:39:03 -0700 Subject: [PATCH 19/22] tank assets placements --- source/MusicBeatState.hx | 5 +++-- source/PlayState.hx | 35 +++++++++++++++++++++++------------ source/TankmenBG.hx | 1 + 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/source/MusicBeatState.hx b/source/MusicBeatState.hx index 28660b160..9442f990f 100644 --- a/source/MusicBeatState.hx +++ b/source/MusicBeatState.hx @@ -2,6 +2,7 @@ package; import Conductor.BPMChangeEvent; import flixel.FlxG; +import flixel.FlxGame; import flixel.addons.transition.FlxTransitionableState; import flixel.addons.ui.FlxUIState; import flixel.math.FlxRect; @@ -26,7 +27,7 @@ class MusicBeatState extends FlxUIState override function update(elapsed:Float) { - //everyStep(); + // everyStep(); var oldStep:Int = curStep; updateCurStep(); @@ -67,6 +68,6 @@ class MusicBeatState extends FlxUIState public function beatHit():Void { - //do literally nothing dumbass + // do literally nothing dumbass } } diff --git a/source/PlayState.hx b/source/PlayState.hx index 8c6b0c645..06a191fa2 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -35,6 +35,7 @@ import flixel.util.FlxStringUtil; import flixel.util.FlxTimer; import haxe.Json; import lime.utils.Assets; +import openfl.Lib; import openfl.display.BlendMode; import openfl.display.StageQuality; import openfl.filters.ShaderFilter; @@ -503,13 +504,15 @@ class PlayState extends MusicBeatState var tankSky:BGSprite = new BGSprite('tankClouds', 0, 10, 0.1, 0.1); add(tankSky); - var tankMountains:BGSprite = new BGSprite('tankMountains', -100, 150, 0.2, 0.2); + var tankMountains:BGSprite = new BGSprite('tankMountains', -200, 90, 0.2, 0.2); + tankMountains.setGraphicSize(Std.int(tankMountains.width * 1.1)); + tankMountains.updateHitbox(); add(tankMountains); - var tankBuildings:BGSprite = new BGSprite('tankBuildings', -200, 370, 0.25, 0.25); + var tankBuildings:BGSprite = new BGSprite('tankBuildings', -200, 200, 0.25, 0.25); add(tankBuildings); - var tankRuins:BGSprite = new BGSprite('tankRuins', -200, 170, 0.35, 0.35); + var tankRuins:BGSprite = new BGSprite('tankRuins', -200, 0, 0.35, 0.35); add(tankRuins); var smokeLeft:BGSprite = new BGSprite('smokeLeft', -200, -100, 0.4, 0.4, ['SmokeBlurLeft'], true); @@ -518,10 +521,12 @@ class PlayState extends MusicBeatState var smokeRight:BGSprite = new BGSprite('smokeRight', 1100, -100, 0.4, 0.4, ['SmokeRight'], true); add(smokeRight); - var tankWatchtower:BGSprite = new BGSprite('tankWatchtower', 300, 50, 0.5, 0.5); + var tankWatchtower:BGSprite = new BGSprite('tankWatchtower', 100, 50, 0.5, 0.5); add(tankWatchtower); - var tankGround:BGSprite = new BGSprite('tankGround', -200, -20); + var tankGround:BGSprite = new BGSprite('tankGround', -300, -300); + tankGround.setGraphicSize(Std.int(tankGround.width * 1.3)); + tankGround.updateHitbox(); add(tankGround); tankmanRun = new FlxTypedGroup(); @@ -529,23 +534,23 @@ class PlayState extends MusicBeatState // smokeLeft.screenCenter(); - var fgTank0:BGSprite = new BGSprite('tank0', -290, 400, 1.7, 1.5, ['fg']); + var fgTank0:BGSprite = new BGSprite('tank0', -500, 650, 1.7, 1.5, ['fg']); foregroundSprites.add(fgTank0); - var fgTank1:BGSprite = new BGSprite('tank1', -100, 680, 2, 0.2, ['fg']); + var fgTank1:BGSprite = new BGSprite('tank1', -300, 700, 2, 0.2, ['fg']); foregroundSprites.add(fgTank1); // just called 'foreground' just cuz small inconsistency no bbiggei - var fgTank2:BGSprite = new BGSprite('tank2', 450, 840, 1.5, 1.5, ['foreground']); + var fgTank2:BGSprite = new BGSprite('tank2', 450, 940, 1.5, 1.5, ['foreground']); foregroundSprites.add(fgTank2); - var fgTank4:BGSprite = new BGSprite('tank4', 1000, 880, 1.5, 1.5, ['fg']); + var fgTank4:BGSprite = new BGSprite('tank4', 1200, 1080, 1.5, 1.5, ['fg']); foregroundSprites.add(fgTank4); - var fgTank5:BGSprite = new BGSprite('tank5', 1400, 600, 1.5, 1.5, ['fg']); + var fgTank5:BGSprite = new BGSprite('tank5', 1800, 900, 1.5, 1.5, ['fg']); foregroundSprites.add(fgTank5); - var fgTank3:BGSprite = new BGSprite('tank3', 1300, 1130, 3.5, 2.5, ['fg']); + var fgTank3:BGSprite = new BGSprite('tank3', 1300, 1430, 3.5, 2.5, ['fg']); foregroundSprites.add(fgTank3); default: @@ -659,7 +664,7 @@ class PlayState extends MusicBeatState switch (SONG.player1) { case "bf-holding-gf": - boyfriend.y -= 140; + // boyfriend.y -= 140; } // REPOSITIONING PER STAGE @@ -696,6 +701,12 @@ class PlayState extends MusicBeatState boyfriend.y += 220; gf.x += 180; gf.y += 300; + case "tank": + gf.y -= 10; + boyfriend.x += 70; + boyfriend.y += 60; + dad.y += 90; + dad.x -= 80; } add(gf); diff --git a/source/TankmenBG.hx b/source/TankmenBG.hx index 6a703151a..0109b8ca5 100644 --- a/source/TankmenBG.hx +++ b/source/TankmenBG.hx @@ -26,6 +26,7 @@ class TankmenBG extends FlxSprite animation.addByPrefix('shot', 'John', 24, false); animation.play('run'); + animation.curAnim.curFrame = FlxG.random.int(0, animation.curAnim.numFrames - 1); goingRight = isGoingRight; endingOffset = FlxG.random.float(50, 200); From 3030ca4392b78e63e07de85b8e22e1ad694f4f9b Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Thu, 1 Apr 2021 18:35:10 -0700 Subject: [PATCH 20/22] placement shit for tnakstage again --- source/PlayState.hx | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/source/PlayState.hx b/source/PlayState.hx index 06a191fa2..edef71a90 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -501,7 +501,9 @@ class PlayState extends MusicBeatState var bg:BGSprite = new BGSprite('tankSky', -400, -400, 0, 0); add(bg); - var tankSky:BGSprite = new BGSprite('tankClouds', 0, 10, 0.1, 0.1); + var tankSky:BGSprite = new BGSprite('tankClouds', FlxG.random.int(-700, -100), FlxG.random.int(-20, 20), 0.1, 0.1); + tankSky.active = true; + tankSky.velocity.x = FlxG.random.float(5, 15); add(tankSky); var tankMountains:BGSprite = new BGSprite('tankMountains', -200, 90, 0.2, 0.2); @@ -524,8 +526,8 @@ class PlayState extends MusicBeatState var tankWatchtower:BGSprite = new BGSprite('tankWatchtower', 100, 50, 0.5, 0.5); add(tankWatchtower); - var tankGround:BGSprite = new BGSprite('tankGround', -300, -300); - tankGround.setGraphicSize(Std.int(tankGround.width * 1.3)); + var tankGround:BGSprite = new BGSprite('tankGround', -420, -150); + tankGround.setGraphicSize(Std.int(tankGround.width * 1.15)); tankGround.updateHitbox(); add(tankGround); @@ -609,9 +611,12 @@ class PlayState extends MusicBeatState for (i in 0...TankmenBG.animationNotes.length) { - var tankman:TankmenBG = new TankmenBG(500, 200 + FlxG.random.int(0, 150), TankmenBG.animationNotes[i][1] < 2); - tankman.strumTime = TankmenBG.animationNotes[i][0]; - tankmanRun.add(tankman); + if (FlxG.random.bool(50)) + { + var tankman:TankmenBG = new TankmenBG(500, 200 + FlxG.random.int(0, 150), TankmenBG.animationNotes[i][1] < 2); + tankman.strumTime = TankmenBG.animationNotes[i][0]; + tankmanRun.add(tankman); + } } } @@ -702,10 +707,11 @@ class PlayState extends MusicBeatState gf.x += 180; gf.y += 300; case "tank": - gf.y -= 10; - boyfriend.x += 70; - boyfriend.y += 60; - dad.y += 90; + gf.y += 10; + gf.x -= 30; + boyfriend.x += 40; + boyfriend.y += 0; + dad.y += 60; dad.x -= 80; } From 3cdfee90f2dd40430a16f7522c41504c6a888005 Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Thu, 1 Apr 2021 18:43:53 -0700 Subject: [PATCH 21/22] gf speaker placement tanky --- source/PlayState.hx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/PlayState.hx b/source/PlayState.hx index edef71a90..3b5545ced 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -713,6 +713,12 @@ class PlayState extends MusicBeatState boyfriend.y += 0; dad.y += 60; dad.x -= 80; + + if (gfVersion != 'pico-speaker') + { + gf.x -= 80; + gf.y -= 75; + } } add(gf); From 3eff5398f448464a5101d68520dad293b09e15ce Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Thu, 1 Apr 2021 19:28:20 -0700 Subject: [PATCH 22/22] dumbass sort maybe lol! --- source/PlayState.hx | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/source/PlayState.hx b/source/PlayState.hx index 3b5545ced..0987aa96e 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -149,6 +149,9 @@ class PlayState extends MusicBeatState if (FlxG.sound.music != null) FlxG.sound.music.stop(); + FlxG.sound.cache(Paths.inst(PlayState.SONG.song)); + FlxG.sound.cache(Paths.voices(PlayState.SONG.song)); + // var gameCam:FlxCamera = FlxG.camera; camGame = new FlxCamera(); camHUD = new FlxCamera(); @@ -157,6 +160,11 @@ class PlayState extends MusicBeatState FlxG.cameras.reset(camGame); FlxG.cameras.add(camHUD, false); + // fake notesplash cache type deal so that it loads in the graphic? + var noteSplash:NoteSplash = new NoteSplash(100, 100, 0); + add(noteSplash); + noteSplash.alpha = 0.1; + persistentUpdate = true; persistentDraw = true; @@ -1225,11 +1233,23 @@ class PlayState extends MusicBeatState generatedMusic = true; } + // Now you are probably wondering why I made 2 of these very similar functions + // sortByShit(), and sortNotes(). sortNotes is meant to be used by both sortByShit(), and the notes FlxGroup + // sortByShit() is meant to be used only by the unspawnNotes array. + // and the array sorting function doesnt need that order variable thingie + // this is good enough for now lololol HERE IS COMMENT FOR THIS SORTA DUMB DECISION LOL function sortByShit(Obj1:Note, Obj2:Note):Int { - return FlxSort.byValues(FlxSort.ASCENDING, Obj1.strumTime, Obj2.strumTime); + return sortNotes(FlxSort.ASCENDING, Obj1, Obj2); } + function sortNotes(order:Int = FlxSort.ASCENDING, Obj1:Note, Obj2:Note) + { + return FlxSort.byValues(order, Obj1.strumTime, Obj2.strumTime); + } + + // ^ These two sorts also look cute together ^ + private function generateStaticArrows(player:Int):Void { for (i in 0...4) @@ -1659,7 +1679,7 @@ class PlayState extends MusicBeatState notes.add(dunceNote); var index:Int = unspawnNotes.indexOf(dunceNote); - unspawnNotes.splice(index, 1); + unspawnNotes.shift(); } if (generatedMusic) @@ -2430,7 +2450,7 @@ class PlayState extends MusicBeatState if (generatedMusic) { - notes.sort(FlxSort.byY, FlxSort.DESCENDING); + notes.sort(sortNotes, FlxSort.DESCENDING); } if (SONG.notes[Math.floor(curStep / 16)] != null)