diff --git a/images/characters/swap-bf.json b/images/characters/swap-bf.json new file mode 100644 index 0000000..f40b9a1 --- /dev/null +++ b/images/characters/swap-bf.json @@ -0,0 +1,177 @@ +{ + "animations": [ + { + "offsets": [ + -5, + 0 + ], + "loop": false, + "fps": 24, + "anim": "idle", + "indices": [], + "name": "BF idle dance" + }, + { + "offsets": [ + 36, + -5 + ], + "loop": false, + "fps": 24, + "anim": "singLEFT", + "indices": [], + "name": "BF NOTE RIGHT0" + }, + { + "offsets": [ + -19, + -50 + ], + "loop": false, + "fps": 24, + "anim": "singDOWN", + "indices": [], + "name": "BF NOTE DOWN0" + }, + { + "offsets": [ + 0, + 27 + ], + "loop": false, + "fps": 24, + "anim": "singUP", + "indices": [], + "name": "BF NOTE UP0" + }, + { + "offsets": [ + -38, + -7 + ], + "loop": false, + "fps": 24, + "anim": "singRIGHT", + "indices": [], + "name": "BF NOTE LEFT0" + }, + { + "offsets": [ + -13, + -20 + ], + "loop": false, + "fps": 24, + "anim": "singDOWNmiss", + "indices": [], + "name": "BF NOTE DOWN MISS" + }, + { + "offsets": [ + 2, + 24 + ], + "loop": false, + "fps": 24, + "anim": "singUPmiss", + "indices": [], + "name": "BF NOTE UP MISS" + }, + { + "offsets": [ + -39, + 19 + ], + "loop": false, + "fps": 24, + "anim": "singRIGHTmiss", + "indices": [], + "name": "BF NOTE LEFT MISS" + }, + { + "offsets": [ + -3, + 5 + ], + "loop": false, + "fps": 24, + "anim": "hey", + "indices": [], + "name": "BF HEY" + }, + { + "offsets": [ + 20, + 19 + ], + "loop": false, + "fps": 24, + "anim": "hurt", + "indices": [], + "name": "BF hit" + }, + { + "offsets": [ + -4, + 1 + ], + "loop": true, + "fps": 24, + "anim": "scared", + "indices": [], + "name": "BF idle shaking" + }, + { + "offsets": [ + -31, + -16 + ], + "loop": false, + "fps": 24, + "anim": "dodge", + "indices": [], + "name": "boyfriend dodge" + }, + { + "offsets": [ + -3, + 266 + ], + "loop": false, + "fps": 24, + "anim": "attack", + "indices": [], + "name": "boyfriend attack" + }, + { + "offsets": [ + 0, + -34 + ], + "loop": false, + "fps": 24, + "anim": "pre-attack", + "indices": [], + "name": "bf pre attack" + } + ], + "no_antialiasing": false, + "image": "characters/BOYFRIEND", + "position": [ + -650, + 350 + ], + "healthicon": "bf", + "flip_x": false, + "healthbar_colors": [ + 49, + 176, + 209 + ], + "camera_position": [ + -300, + 0 + ], + "sing_duration": 4, + "scale": 1 +} \ No newline at end of file diff --git a/images/characters/swap-dad.json b/images/characters/swap-dad.json new file mode 100644 index 0000000..c1a581c --- /dev/null +++ b/images/characters/swap-dad.json @@ -0,0 +1,142 @@ +{ + "animations": [ + { + "offsets": [ + 43, + 26 + ], + "loop": false, + "anim": "singLEFT", + "fps": 24, + "name": "Dad Sing Note RIGHT", + "indices": [] + }, + { + "offsets": [ + 44, + -31 + ], + "loop": false, + "anim": "singDOWN", + "fps": 24, + "name": "Dad Sing Note DOWN", + "indices": [] + }, + { + "offsets": [ + -12, + 51 + ], + "loop": false, + "anim": "singUP", + "fps": 24, + "name": "Dad Sing Note UP", + "indices": [] + }, + { + "offsets": [ + -40, + 10 + ], + "loop": false, + "anim": "singRIGHT", + "fps": 24, + "name": "Dad Sing Note LEFT", + "indices": [] + }, + { + "offsets": [ + 0, + -1 + ], + "loop": false, + "anim": "idle", + "fps": 24, + "name": "Dad idle dance", + "indices": [] + }, + { + "offsets": [ + 0, + -1 + ], + "loop": true, + "fps": 24, + "anim": "idle-loop", + "indices": [ + 10, + 11, + 12, + 12 + ], + "name": "Dad idle dance" + }, + { + "offsets": [ + 42, + 26 + ], + "loop": true, + "fps": 24, + "anim": "singLEFT-loop", + "indices": [ + 12, + 13, + 14, + 15 + ], + "name": "Dad Sing Note RIGHT" + }, + { + "offsets": [ + -40, + 10 + ], + "loop": true, + "fps": 24, + "anim": "singRIGHT-loop", + "indices": [ + 15, + 16, + 17, + 18 + ], + "name": "Dad Sing Note LEFT" + }, + { + "offsets": [ + -13, + 51 + ], + "loop": true, + "fps": 24, + "anim": "singUP-loop", + "indices": [ + 56, + 57, + 58, + 59 + ], + "name": "Dad Sing Note UP" + } + ], + "no_antialiasing": false, + "image": "characters/DADDY_DEAREST", + "position": [ + 850, + 0 + ], + "healthicon": "dad", + "flip_x": true, + "healthbar_colors": [ + 175, + 102, + 206 + ], + "camera_position": [ + -350, + 0 + ], + "sing_duration": 6.1, + "scale": 1 +} \ No newline at end of file diff --git a/images/custom_events/Change Note Pos.txt b/images/custom_events/Change Note Pos.txt new file mode 100644 index 0000000..3dea533 --- /dev/null +++ b/images/custom_events/Change Note Pos.txt @@ -0,0 +1,3 @@ +Switches player and opponent strums! + +Value 1: Will it be switch strums? (On or Off) \ No newline at end of file diff --git a/images/custom_events/Remove Fake Icons.txt b/images/custom_events/Remove Fake Icons.txt new file mode 100644 index 0000000..fc34cef --- /dev/null +++ b/images/custom_events/Remove Fake Icons.txt @@ -0,0 +1,4 @@ +Removes the swap icons! + +Value 1: Fake icon tag of boyfriend +Value 2: Fake icon tag of dad \ No newline at end of file diff --git a/images/custom_events/Switch Health.txt b/images/custom_events/Switch Health.txt new file mode 100644 index 0000000..af560d7 --- /dev/null +++ b/images/custom_events/Switch Health.txt @@ -0,0 +1,3 @@ +Switches the health when swapping icons! + +Value1: Will it be swap? (true or false) \ No newline at end of file diff --git a/images/custom_events/Switch Icons.txt b/images/custom_events/Switch Icons.txt new file mode 100644 index 0000000..17ff7ec --- /dev/null +++ b/images/custom_events/Switch Icons.txt @@ -0,0 +1,11 @@ +Switches the icons! + +Value 1: +[0] = Fake icon tag of boyfriend +[1] = Fake icon path of boyfriend + +Value 2: +[0] = Fake icon tag of dad +[1] = Fake icon path of dad + +Note: Remember the tag of the fake icon when removing it! \ No newline at end of file diff --git a/images/example/fresh.json b/images/example/fresh.json new file mode 100644 index 0000000..a6b9a90 --- /dev/null +++ b/images/example/fresh.json @@ -0,0 +1,2238 @@ +{ + "song": { + "player1": "bf", + "player2": "dad", + "notes": [ + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 0, + 1, + 0 + ], + [ + 250, + 1, + 0 + ], + [ + 500, + 3, + 0 + ], + [ + 875, + 3, + 0 + ], + [ + 1125, + 1, + 0 + ], + [ + 1250, + 0, + 0 + ], + [ + 1500, + 3, + 0 + ], + [ + 1500, + 2, + 0 + ], + [ + 1750, + 1, + 0 + ], + [ + 1875, + 0, + 125 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 2000, + 1, + 0 + ], + [ + 2250, + 1, + 0 + ], + [ + 2500, + 3, + 0 + ], + [ + 2875, + 3, + 0 + ], + [ + 3125, + 1, + 0 + ], + [ + 3250, + 0, + 0 + ], + [ + 3500, + 2, + 0 + ], + [ + 3500, + 3, + 0 + ], + [ + 3750, + 1, + 0 + ], + [ + 3875, + 0, + 125 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 4000, + 1, + 0 + ], + [ + 4250, + 1, + 0 + ], + [ + 4500, + 3, + 0 + ], + [ + 4875, + 3, + 0 + ], + [ + 5125, + 1, + 0 + ], + [ + 5250, + 0, + 0 + ], + [ + 5500, + 3, + 0 + ], + [ + 5500, + 2, + 0 + ], + [ + 5750, + 3, + 125 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 6000, + 1, + 0 + ], + [ + 6250, + 1, + 0 + ], + [ + 6500, + 3, + 0 + ], + [ + 6875, + 3, + 0 + ], + [ + 7125, + 1, + 0 + ], + [ + 7250, + 0, + 0 + ], + [ + 7500, + 3, + 0 + ], + [ + 7500, + 2, + 0 + ], + [ + 7750, + 3, + 125 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 8250, + 0, + 0 + ], + [ + 8500, + 1, + 0 + ], + [ + 9000, + 2, + 0 + ], + [ + 8250, + 1, + 0 + ], + [ + 8500, + 3, + 0 + ], + [ + 9000, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 10250, + 0, + 0 + ], + [ + 10500, + 1, + 0 + ], + [ + 11000, + 2, + 0 + ], + [ + 10250, + 1, + 0 + ], + [ + 10500, + 3, + 0 + ], + [ + 11000, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 12250, + 0, + 0 + ], + [ + 12500, + 2, + 0 + ], + [ + 12750, + 3, + 0 + ], + [ + 13000, + 0, + 0 + ], + [ + 12250, + 3, + 0 + ], + [ + 12500, + 1, + 0 + ], + [ + 12750, + 2, + 0 + ], + [ + 13000, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 14250, + 0, + 0 + ], + [ + 14500, + 2, + 0 + ], + [ + 14750, + 3, + 0 + ], + [ + 15000, + 0, + 0 + ], + [ + 14250, + 3, + 0 + ], + [ + 14500, + 1, + 0 + ], + [ + 14750, + 2, + 0 + ], + [ + 15000, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 16250.001, + 0, + 0 + ], + [ + 16500, + 1, + 0 + ], + [ + 16750, + 3, + 0 + ], + [ + 17000, + 0, + 0 + ], + [ + 17500, + 2, + 0 + ], + [ + 16250, + 2, + 0 + ], + [ + 16500, + 3, + 0 + ], + [ + 16750, + 2, + 0 + ], + [ + 17000, + 1, + 0 + ], + [ + 17500, + 3, + 0 + ], + [ + 17500, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 18250, + 0, + 0 + ], + [ + 18500, + 1, + 0 + ], + [ + 18750, + 3, + 0 + ], + [ + 19000, + 0, + 0 + ], + [ + 19500, + 2, + 0 + ], + [ + 18250, + 2, + 0 + ], + [ + 18500, + 3, + 0 + ], + [ + 18750, + 2, + 0 + ], + [ + 19000, + 1, + 0 + ], + [ + 19500, + 1, + 0 + ], + [ + 19500, + 3, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 20000, + 3, + 0 + ], + [ + 20250, + 1, + 0 + ], + [ + 20750, + 2, + 0 + ], + [ + 21000, + 3, + 0 + ], + [ + 21250, + 1, + 0 + ], + [ + 21750, + 0, + 0 + ], + [ + 20000, + 0, + 0 + ], + [ + 20250, + 2, + 0 + ], + [ + 20750, + 1, + 0 + ], + [ + 21000, + 2, + 0 + ], + [ + 21250, + 0, + 0 + ], + [ + 21750, + 3, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 22000, + 3, + 0 + ], + [ + 22250, + 1, + 0 + ], + [ + 22750, + 2, + 0 + ], + [ + 23000, + 3, + 0 + ], + [ + 23250, + 1, + 0 + ], + [ + 23750, + 0, + 0 + ], + [ + 22000, + 0, + 0 + ], + [ + 22250, + 2, + 0 + ], + [ + 22750, + 1, + 0 + ], + [ + 23000, + 2, + 0 + ], + [ + 23250, + 0, + 0 + ], + [ + 23750, + 3, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 24000, + 3, + 0 + ], + [ + 24500, + 0, + 0 + ], + [ + 25000, + 1, + 0 + ], + [ + 25250, + 1, + 0 + ], + [ + 25500, + 0, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 26000, + 1, + 0 + ], + [ + 26250, + 2, + 0 + ], + [ + 26500, + 3, + 0 + ], + [ + 26750, + 0, + 0 + ], + [ + 27000, + 2, + 0 + ], + [ + 27250, + 3, + 0 + ], + [ + 27500, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 28000, + 3, + 0 + ], + [ + 28500, + 0, + 0 + ], + [ + 29000, + 1, + 0 + ], + [ + 29250, + 1, + 0 + ], + [ + 29500, + 0, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 30000, + 1, + 0 + ], + [ + 30250, + 2, + 0 + ], + [ + 30500, + 3, + 0 + ], + [ + 30750, + 0, + 0 + ], + [ + 31000, + 2, + 0 + ], + [ + 31250, + 3, + 0 + ], + [ + 31500, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 32500.002, + 0, + 0 + ], + [ + 32750.002, + 3, + 0 + ], + [ + 33000, + 1, + 0 + ], + [ + 33250, + 3, + 0 + ], + [ + 33500, + 1, + 0 + ], + [ + 33750, + 2, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 34250, + 0, + 0 + ], + [ + 34500, + 3, + 0 + ], + [ + 34750, + 0, + 0 + ], + [ + 35000, + 2, + 375 + ], + [ + 35500, + 1, + 375 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 36500, + 0, + 0 + ], + [ + 36750, + 3, + 0 + ], + [ + 37000, + 1, + 0 + ], + [ + 37250, + 3, + 0 + ], + [ + 37500, + 1, + 0 + ], + [ + 37750, + 2, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 38250, + 0, + 0 + ], + [ + 38500, + 3, + 0 + ], + [ + 38750, + 0, + 0 + ], + [ + 39000, + 2, + 375 + ], + [ + 39500, + 1, + 375 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 40250, + 0, + 0 + ], + [ + 40500, + 1, + 0 + ], + [ + 41000, + 2, + 0 + ], + [ + 41500, + 2, + 0 + ], + [ + 41750, + 2, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 42250, + 0, + 0 + ], + [ + 42500, + 1, + 0 + ], + [ + 43000, + 2, + 0 + ], + [ + 43500, + 2, + 0 + ], + [ + 43750, + 2, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 44250, + 0, + 0 + ], + [ + 44500, + 2, + 0 + ], + [ + 44750, + 3, + 0 + ], + [ + 45000, + 0, + 0 + ], + [ + 45750, + 0, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 46250, + 0, + 0 + ], + [ + 46500, + 2, + 0 + ], + [ + 46750, + 3, + 0 + ], + [ + 47000, + 0, + 0 + ], + [ + 47750, + 0, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 48250, + 0, + 0 + ], + [ + 48500, + 1, + 0 + ], + [ + 48750, + 3, + 0 + ], + [ + 49000, + 0, + 0 + ], + [ + 49750, + 2, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 50250, + 0, + 0 + ], + [ + 50500, + 1, + 0 + ], + [ + 50750, + 3, + 0 + ], + [ + 51000, + 0, + 0 + ], + [ + 51750, + 2, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 52000, + 3, + 0 + ], + [ + 52250, + 1, + 0 + ], + [ + 52500, + 1, + 0 + ], + [ + 52750, + 2, + 0 + ], + [ + 53000, + 3, + 0 + ], + [ + 53250, + 1, + 0 + ], + [ + 53750, + 0, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 54000, + 3, + 0 + ], + [ + 54250, + 1, + 0 + ], + [ + 54500, + 1, + 0 + ], + [ + 54750, + 2, + 0 + ], + [ + 55000, + 3, + 0 + ], + [ + 55250, + 1, + 0 + ], + [ + 55750, + 0, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 56000, + 3, + 0 + ], + [ + 56500, + 0, + 0 + ], + [ + 57000, + 1, + 0 + ], + [ + 57250, + 1, + 0 + ], + [ + 57500, + 0, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 58000, + 1, + 0 + ], + [ + 58250, + 2, + 0 + ], + [ + 58500, + 3, + 0 + ], + [ + 58750, + 0, + 0 + ], + [ + 59000, + 2, + 0 + ], + [ + 59250, + 3, + 0 + ], + [ + 59500, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 60000, + 3, + 0 + ], + [ + 60500, + 0, + 0 + ], + [ + 61000, + 1, + 0 + ], + [ + 61250, + 1, + 0 + ], + [ + 61500, + 0, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 62000, + 1, + 0 + ], + [ + 62250, + 2, + 0 + ], + [ + 62500, + 3, + 0 + ], + [ + 62750, + 0, + 0 + ], + [ + 63000, + 2, + 0 + ], + [ + 63250, + 3, + 0 + ], + [ + 63500, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 64500.0039, + 0, + 0 + ], + [ + 64750.0039, + 3, + 0 + ], + [ + 65000.0039, + 1, + 0 + ], + [ + 65250.0039, + 3, + 0 + ], + [ + 65500.0039, + 1, + 0 + ], + [ + 65750, + 2, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 66250, + 0, + 0 + ], + [ + 66500, + 3, + 0 + ], + [ + 66750, + 0, + 0 + ], + [ + 67000, + 2, + 375 + ], + [ + 67500, + 1, + 375 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 68500, + 0, + 0 + ], + [ + 68750, + 3, + 0 + ], + [ + 69000, + 1, + 0 + ], + [ + 69250, + 3, + 0 + ], + [ + 69500, + 1, + 0 + ], + [ + 69750, + 2, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 70250, + 0, + 0 + ], + [ + 70500, + 3, + 0 + ], + [ + 70750, + 0, + 0 + ], + [ + 71000, + 2, + 375 + ], + [ + 71500, + 1, + 375 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 72000, + 1, + 0 + ], + [ + 72000, + 5, + 0 + ], + [ + 72250, + 1, + 0 + ], + [ + 72250, + 5, + 0 + ], + [ + 72500, + 3, + 0 + ], + [ + 72500, + 7, + 0 + ], + [ + 72875, + 3, + 0 + ], + [ + 72875, + 7, + 0 + ], + [ + 73125, + 1, + 0 + ], + [ + 73125, + 5, + 0 + ], + [ + 73250, + 0, + 0 + ], + [ + 73250, + 4, + 0 + ], + [ + 73500, + 3, + 0 + ], + [ + 73500, + 2, + 0 + ], + [ + 73500, + 7, + 0 + ], + [ + 73500, + 6, + 0 + ], + [ + 73750, + 1, + 0 + ], + [ + 73750, + 5, + 0 + ], + [ + 73875, + 0, + 125 + ], + [ + 73875, + 4, + 125 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 74000, + 1, + 0 + ], + [ + 74250, + 1, + 0 + ], + [ + 74500, + 3, + 0 + ], + [ + 74875, + 3, + 0 + ], + [ + 75125, + 1, + 0 + ], + [ + 75250, + 0, + 0 + ], + [ + 75500, + 3, + 0 + ], + [ + 75500, + 2, + 0 + ], + [ + 75750, + 1, + 0 + ], + [ + 75875, + 0, + 125 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 76000, + 1, + 0 + ], + [ + 76000, + 5, + 0 + ], + [ + 76250, + 1, + 0 + ], + [ + 76250, + 5, + 0 + ], + [ + 76500, + 3, + 0 + ], + [ + 76500, + 7, + 0 + ], + [ + 76875, + 3, + 0 + ], + [ + 76875, + 7, + 0 + ], + [ + 77125, + 1, + 0 + ], + [ + 77125, + 5, + 0 + ], + [ + 77250, + 0, + 0 + ], + [ + 77250, + 4, + 0 + ], + [ + 77500, + 3, + 0 + ], + [ + 77500, + 2, + 0 + ], + [ + 77500, + 7, + 0 + ], + [ + 77500, + 6, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 78000, + 1, + 0 + ], + [ + 78250, + 1, + 0 + ], + [ + 78500, + 3, + 0 + ], + [ + 78875, + 3, + 0 + ], + [ + 79125, + 1, + 0 + ], + [ + 79250, + 0, + 0 + ], + [ + 79500, + 3, + 0 + ], + [ + 79500, + 2, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [], + "mustHitSection": true + }, + { + "sectionBeats": 4, + "sectionNotes": [], + "typeOfSection": 0, + "gfSection": false, + "altAnim": false, + "mustHitSection": true, + "changeBPM": false, + "bpm": 120 + }, + { + "sectionBeats": 4, + "sectionNotes": [], + "typeOfSection": 0, + "gfSection": false, + "altAnim": false, + "mustHitSection": true, + "changeBPM": false, + "bpm": 120 + }, + { + "sectionBeats": 4, + "sectionNotes": [], + "typeOfSection": 0, + "gfSection": false, + "altAnim": false, + "mustHitSection": true, + "changeBPM": false, + "bpm": 120 + }, + { + "sectionBeats": 4, + "sectionNotes": [], + "typeOfSection": 0, + "gfSection": false, + "altAnim": false, + "mustHitSection": true, + "changeBPM": false, + "bpm": 120 + }, + { + "sectionBeats": 4, + "sectionNotes": [], + "typeOfSection": 0, + "gfSection": false, + "altAnim": false, + "mustHitSection": true, + "changeBPM": false, + "bpm": 120 + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "typeOfSection": 0, + "sectionNotes": [], + "sectionBeats": 4, + "altAnim": false, + "gfSection": false, + "bpm": 120, + "changeBPM": false, + "mustHitSection": true + }, + { + "sectionBeats": 4, + "sectionNotes": [], + "typeOfSection": 0, + "gfSection": false, + "altAnim": false, + "mustHitSection": true, + "changeBPM": false, + "bpm": 120 + }, + { + "gfSection": false, + "altAnim": false, + "typeOfSection": 0, + "sectionNotes": [], + "bpm": 120, + "sectionBeats": 4, + "changeBPM": false, + "mustHitSection": true + } + ], + "gfVersion": "gf", + "events": [ + [ + 8000, + [ + [ + "Change Note Pos", + "On", + "" + ], + [ + "Change Character", + "dad", + "swap-dad" + ], + [ + "Change Character", + "bf", + "swap-bf" + ] + ] + ], + [ + 8125, + [ + [ + "Switch Health", + "true", + "" + ], + [ + "Switch Icons", + "iconBf, bf", + "iconDad, dad" + ] + ] + ], + [ + 24000, + [ + [ + "Change Note Pos", + "Off", + "" + ], + [ + "Change Character", + "dad", + "dad" + ], + [ + "Change Character", + "bf", + "bf" + ] + ] + ], + [ + 24125, + [ + [ + "Switch Health", + "false", + "" + ], + [ + "Remove Fake Icons", + "iconBf", + "iconDad" + ] + ] + ] + ], + "player3": null, + "song": "Fresh", + "validScore": true, + "needsVoices": true, + "stage": "stage", + "speed": 1.8, + "bpm": 120 + } +} \ No newline at end of file diff --git a/images/images/faky icons/icon-bf.png b/images/images/faky icons/icon-bf.png new file mode 100644 index 0000000..c20f9c8 Binary files /dev/null and b/images/images/faky icons/icon-bf.png differ diff --git a/images/images/faky icons/icon-bf.xml b/images/images/faky icons/icon-bf.xml new file mode 100644 index 0000000..39b8ffc --- /dev/null +++ b/images/images/faky icons/icon-bf.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/images/images/faky icons/icon-dad.png b/images/images/faky icons/icon-dad.png new file mode 100644 index 0000000..1ecfaf5 Binary files /dev/null and b/images/images/faky icons/icon-dad.png differ diff --git a/images/pack.json b/images/pack.json new file mode 100644 index 0000000..c2a0951 --- /dev/null +++ b/images/pack.json @@ -0,0 +1,7 @@ +{ + "name": "Swapy Icons", + "description": "Da script", + "restart": false, + "runsGlobally": true, + "color": [123, 0, 15] +} diff --git a/images/pack.png b/images/pack.png new file mode 100644 index 0000000..ee40e76 Binary files /dev/null and b/images/pack.png differ diff --git a/images/scripts/Swap Icons.lua b/images/scripts/Swap Icons.lua new file mode 100644 index 0000000..3de4455 --- /dev/null +++ b/images/scripts/Swap Icons.lua @@ -0,0 +1,241 @@ +function onCreateIcon(tag, image) + makeAnimatedLuaSprite(tag, image, 0, 0) + addAnimationByPrefix(tag, 'neutral', 'Icon', 24, true) + addAnimationByPrefix(tag, 'lose', 'Icon', 24, true) + addAnimationByIndices(tag, 'neutral', 'Icon', 0, true) + addAnimationByIndices(tag, 'lose', 'Icon', 1, true) + playAnim(tag, 'neutral') + setObjectCamera(tag, 'camHUD') + setObjectOrder(tag, getObjectOrder('iconP1') + 1) + addLuaSprite(tag, true) +end + +switch = false +function onEvent(name, value1, value2) + if name == 'Switch Health' then + if value1 == 'true' then + onSwitchCode(true) + switch = true + elseif value1 == 'false' then + onSwitchCode(false) + switch = false + end + end + + if name == 'Switch Icons' and not hideHud then + valSwitch1 = stringSplit(value1, ', ') + valSwitch2 = stringSplit(value2, ', ') + + onCreateIcon(valSwitch1[1], 'faky icons/icon-'..valSwitch1[2]) + onCreateIcon(valSwitch2[1], 'faky icons/icon-'..valSwitch2[2]) + + setProperty(valSwitch1[1]..'.flipX', false) + setProperty(valSwitch2[1]..'.flipX', true) + + setProperty('iconP1.visible', false) + setProperty('iconP2.visible', false) + setHealthBarColors(getIconColor('boyfriend'), getIconColor('dad')) + end + + if name == 'Remove Fake Icons' then + removeLuaSprite(valSwitch1[1], true) + removeLuaSprite(valSwitch2[1], true) + + setProperty('iconP1.visible', true) + setProperty('iconP2.visible', true) + setHealthBarColors(getIconColor('dad'), getIconColor('boyfriend')) + end + + local PlayerStrumX = {defaultPlayerStrumX0, defaultPlayerStrumX1, defaultPlayerStrumX2, defaultPlayerStrumX3} + local OpponentStrumX = {defaultOpponentStrumX0, defaultOpponentStrumX1, defaultOpponentStrumX2, defaultOpponentStrumX3} + local StrumNum = {0, 1, 2, 3} + if name == 'Change Note Pos' and not middlescroll then + for i = 1, #PlayerStrumX or #OpponentStrumX or #StrumNum do + if value1 == 'On' then + setPropertyFromGroup('opponentStrums', StrumNum[i], 'x', PlayerStrumX[i] + StrumNum[i] - 3) -- better method + setPropertyFromGroup('playerStrums', StrumNum[i], 'x', OpponentStrumX[i] + StrumNum[i] - 3) + end + if value1 == 'Off' then + setPropertyFromGroup('opponentStrums', StrumNum[i], 'x', OpponentStrumX[i] + StrumNum[i] - 3) + setPropertyFromGroup('playerStrums', StrumNum[i], 'x', PlayerStrumX[i] + StrumNum[i] - 3) + end + end + end +end + +function onUpdate(elapsed) + notetypes = {''} -- le note types lol + health = getProperty('health') + + if switch == true then + if health == 2 then + setProperty('health', -1) + end + if health <= 0.01 then + setProperty('health', 0.01) + end + + for i = 0, getProperty('notes.length')-1 do + for i = 1, #notetypes do + if getPropertyFromGroup('notes', i, 'noteType') == notetypes[i] then + setPropertyFromGroup('notes', i, 'hitHealth', -0.023); --Default value is: 0.023, health gained on hit + setPropertyFromGroup('notes', i, 'missHealth', -0.0475); --Default value is: 0.0475, health lost on miss + end + end + end + else + for i = 0, getProperty('notes.length')-1 do + for i = 1, #notetypes do + if getPropertyFromGroup('notes', i, 'noteType') == notetypes[i] then + setPropertyFromGroup('notes', i, 'hitHealth', 0.023); --Default value is: 0.023, health gained on hit + setPropertyFromGroup('notes', i, 'missHealth', 0.0475); --Default value is: 0.0475, health lost on miss + end + end + end + end +end + +function onUpdatePost(elapsed) + local iconFrame1 = getProperty('iconP1.animation.curAnim.curFrame') + local iconFrame2 = getProperty('iconP2.animation.curAnim.curFrame') + + setProperty(valSwitch2[1]..'.scale.x', getProperty('iconP1.scale.x')) + setProperty(valSwitch2[1]..'.scale.y', getProperty('iconP1.scale.y')) + + setProperty(valSwitch1[1]..'.scale.x', getProperty('iconP2.scale.x')) + setProperty(valSwitch1[1]..'.scale.y', getProperty('iconP2.scale.y')) + + if iconFrame1 == 0 then + playAnim(valSwitch2[1], 'neutral') + else + playAnim(valSwitch2[1], 'lose') + end + + if iconFrame2 == 0 then + playAnim(valSwitch1[1], 'neutral') + else + playAnim(valSwitch1[1], 'lose') + end +end + +function getIconColor(char) + local colorR = getProperty(char..".healthColorArray")[1] + local colorG = getProperty(char..".healthColorArray")[2] + local colorB = getProperty(char..".healthColorArray")[3] + return DEC_HEX(colorR) .. DEC_HEX(colorG) .. DEC_HEX(colorB) +end + +function DEC_HEX(IN) + local B, K, OUT, I, D, addZero = 16, "0123456789ABCDEF", "", 0, false + if IN == 0 then + return "00" + elseif IN <= 15 and IN ~= 0 then + addZero = true + end + while IN > 0 do + I = I + 1 + IN, D = math.floor(IN / B), math.mod(IN, B) + 1 + OUT = string.sub(K, D, D)..OUT + end + if addZero then + OUT = "0"..OUT + end + return OUT +end + +function round(num, dp) -- i stole this + local mult = 10^(dp or 0); + return math.floor(num * mult + 0.5)/mult; +end + +function onSwitchCode(flip) -- worst code in human existence + local healthRound1 = round(health, 3) + local healthRound2 = round(health, 1) + local healthFor = healthRound1 - healthPosRound2 + + if flip == true then + if health == 2 then + setProperty('health', 0.01) + elseif healthRound1 == 1.9 + healthFor then + setProperty('health', 0.1 + healthFor) + elseif healthRound1 == 1.8 + healthFor then + setProperty('health', 0.2 + healthFor) + elseif healthRound1 == 1.7 + healthFor then + setProperty('health', 0.3 + healthFor) + elseif healthRound1 == 1.6 + healthFor then + setProperty('health', 0.4 + healthFor) + elseif healthRound1 == 1.5 + healthFor then + setProperty('health', 0.5 + healthFor) + elseif healthRound1 == 1.4 + healthFor then + setProperty('health', 0.4 + healthFor) + elseif healthRound1 == 1.3 + healthFor then + setProperty('health', 0.5 + healthFor) + elseif healthRound1 == 1.2 + healthFor then + setProperty('health', 0.6 + healthFor) + elseif healthRound1 == 1.1 + healthFor then + setProperty('health', 0.9 + healthFor) + elseif healthRound1 == 1 + healthFor then + setProperty('health', 1 + healthFor) + elseif healthRound1 == 0.9 + healthFor then + setProperty('health', 1.1 + healthFor) + elseif healthRound1 == 0.8 + healthFor then + setProperty('health', 1.2 + healthFor) + elseif healthRound1 == 0.7 + healthFor then + setProperty('health', 1.3 + healthFor) + elseif healthRound1 == 0.6 + healthFor then + setProperty('health', 1.4 + healthFor) + elseif healthRound1 == 0.5 + healthFor then + setProperty('health', 1.5 + healthFor) + elseif healthRound1 == 0.4 + healthFor then + setProperty('health', 1.4 + healthFor) + elseif healthRound1 == 0.3 + healthFor then + setProperty('health', 1.5 + healthFor) + elseif healthRound1 == 0.2 + healthFor then + setProperty('health', 1.6 + healthFor) + elseif healthRound1 == 0.1 + healthFor then + setProperty('health', 1.9 + healthFor) + end + else + if health < 0.1 then + setProperty('health', 2) + elseif healthRound == 0.1 + healthFor then + setProperty('health', 1.9 + healthFor) + elseif healthRound == 0.2 + healthFor then + setProperty('health', 1.8 + healthFor) + elseif healthRound == 0.3 + healthFor then + setProperty('health', 1.7 + healthFor) + elseif healthRound == 0.4 + healthFor then + setProperty('health', 1.6 + healthFor) + elseif healthRound == 0.5 + healthFor then + setProperty('health', 1.5 + healthFor) + elseif healthRound == 0.6 + healthFor then + setProperty('health', 1.4 + healthFor) + elseif healthRound == 0.7 + healthFor then + setProperty('health', 1.3 + healthFor) + elseif healthRound == 0.8 + healthFor then + setProperty('health', 1.2 + healthFor) + elseif healthRound == 0.9 + healthFor then + setProperty('health', 1.1 + healthFor) + elseif healthRound == 1 + healthFor then + setProperty('health', 1 + healthFor) + elseif healthRound == 1.1 + healthFor then + setProperty('health', 0.9 + healthFor) + elseif healthRound == 1.2 + healthFor then + setProperty('health', 0.8 + healthFor) + elseif healthRound == 1.3 + healthFor then + setProperty('health', 0.7 + healthFor) + elseif healthRound == 1.4 + healthFor then + setProperty('health', 0.6 + healthFor) + elseif healthRound == 1.5 + healthFor then + setProperty('health', 0.5 + healthFor) + elseif healthRound == 1.6 + healthFor then + setProperty('health', 0.4 + healthFor) + elseif healthRound == 1.7 + healthFor then + setProperty('health', 0.3 + healthFor) + elseif healthRound == 1.8 + healthFor then + setProperty('health', 0.2 + healthFor) + elseif healthRound == 1.9 + healthFor then + setProperty('health', 0.1 + healthFor) + end + end +end \ No newline at end of file