Changes for the future, etc.
This commit is contained in:
parent
8c028d6bbe
commit
05d4cda780
11
Project.xml
11
Project.xml
|
@ -63,6 +63,7 @@
|
|||
<library name="weeks" preload="true" />
|
||||
<library name="scripts" preload="true" />
|
||||
<library name="shaders" preload="true" />
|
||||
<library name="characters" preload="true" />
|
||||
</section>
|
||||
|
||||
<section if="NO_PRELOAD_ALL">
|
||||
|
@ -79,6 +80,7 @@
|
|||
<library name="weeks" preload="false" />
|
||||
<library name="scripts" preload="false" />
|
||||
<library name="shaders" preload="false" />
|
||||
<library name="characters" preload="false" />
|
||||
</section>
|
||||
|
||||
<assets path="assets/songs" library="songs" exclude="*.fla|*.ogg" if="web"/>
|
||||
|
@ -107,6 +109,8 @@
|
|||
<assets path="assets/scripts" library="scripts" exclude="*.fla|*.mp3" unless="web"/>
|
||||
<assets path="assets/shaders" library="shaders" exclude="*.fla|*.ogg" if="web"/>
|
||||
<assets path="assets/shaders" library="shaders" exclude="*.fla|*.mp3" unless="web"/>
|
||||
<assets path="assets/characters" library="characters" exclude="*.fla|*.ogg" if="web"/>
|
||||
<assets path="assets/characters" library="characters" exclude="*.fla|*.mp3" unless="web"/>
|
||||
|
||||
<template path="example_mods" rename="mods" />
|
||||
|
||||
|
@ -134,9 +138,9 @@
|
|||
<haxelib name="flixel-ui" />
|
||||
<haxelib name="newgrounds" unless="switch"/>
|
||||
<haxelib name="faxe" if='switch'/>
|
||||
<haxelib name="polymod" if="desktop || mobile"/>
|
||||
<haxelib name="polymod" if="desktop"/>
|
||||
<haxelib name="hxcpp-debug-server" if="desktop debug"/>
|
||||
<haxelib name="hxCodec" if="desktop || mobile" />
|
||||
<haxelib name="hxCodec" if="desktop || mobile" unless="32bits" />
|
||||
<haxelib name="linc_luajit" if="desktop || mobile" />
|
||||
|
||||
<!-- <haxelib name="flixel-animate" /> -->
|
||||
|
@ -190,6 +194,9 @@
|
|||
<!--Error Dialog-->
|
||||
<haxedef name="ErrorDialog" if="desktop" />
|
||||
|
||||
<haxedef name="HXCPP_CHECK_POINTER" if="CRASH_HANDLER" />
|
||||
<haxedef name="HXCPP_STACK_LINE" if="CRASH_HANDLER" />
|
||||
|
||||
<!-- Show debug traces for hxCodec -->
|
||||
<haxedef name="HXC_DEBUG_TRACE" if="debug" />
|
||||
|
||||
|
|
|
@ -44,8 +44,6 @@ Run build-Itch-WINDOWS.bat in /art/ and build.
|
|||
* nennneko5787 - Programmer
|
||||
* ShadowMario - StrumNote.hx code, Lua code and shader code that I stole and modified from [PsychEngine](https://github.com/ShadowMario/FNF-PsychEngine).
|
||||
* k.net(brightfyre) - Window focus & unfocus source code I stole from [Indie Cross](https://github.com/brightfyregit/Indie-Cross-Public)
|
||||
* Leather128 - Part of the 5K+ support code stolen from [LeatherEngine](https://github.com/Leather128/LeatherEngine) and part of the Mod Menu code
|
||||
* tposejank - Part of the 5K+ support code stolen from [Psych Engine With Extra Keys](https://gamebanana.com/mods/333373)
|
||||
## Funkin
|
||||
* ninjamuffin99 - Programmer
|
||||
* PhantomArcade3K and Evilsk8r - Art
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
{
|
||||
"texture":"characters/bfCar",
|
||||
"onInit":"idle",
|
||||
"antialiasing": true,
|
||||
"animations":[
|
||||
{
|
||||
"name":"idle",
|
||||
"anim":"BF idle dance",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singUP",
|
||||
"anim":"BF NOTE UP0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singLEFT",
|
||||
"anim":"BF NOTE LEFT0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singRIGHT",
|
||||
"anim":"BF NOTE RIGHT0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singDOWN",
|
||||
"anim":"BF NOTE DOWN0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singUPmiss",
|
||||
"anim":"BF NOTE UP MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singLEFTmiss",
|
||||
"anim":"BF NOTE LEFT MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singRIGHTmiss",
|
||||
"anim":"BF NOTE RIGHT MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singDOWNmiss",
|
||||
"anim":"BF NOTE DOWN MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"hey",
|
||||
"anim":"BF HEY",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"idleHair",
|
||||
"anim":"BF idle dance",
|
||||
"framerate":24,
|
||||
"loop": true,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"indices",
|
||||
"indices":[10, 11, 12, 13]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
"texture":"characters/bfChristmas",
|
||||
"onInit":"idle",
|
||||
"antialiasing": true,
|
||||
"animations":[
|
||||
{
|
||||
"name":"idle",
|
||||
"anim":"BF idle dance",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singUP",
|
||||
"anim":"BF NOTE UP0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singLEFT",
|
||||
"anim":"BF NOTE LEFT0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singRIGHT",
|
||||
"anim":"BF NOTE RIGHT0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singDOWN",
|
||||
"anim":"BF NOTE DOWN0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singUPmiss",
|
||||
"anim":"BF NOTE UP MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singLEFTmiss",
|
||||
"anim":"BF NOTE LEFT MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singRIGHTmiss",
|
||||
"anim":"BF NOTE RIGHT MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singDOWNmiss",
|
||||
"anim":"BF NOTE DOWN MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"hey",
|
||||
"anim":"BF HEY",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"texture":"characters/bfPixelsDEAD",
|
||||
"onInit":"firstDeath",
|
||||
"antialiasing": true,
|
||||
"animations":[
|
||||
{
|
||||
"name":"singUP",
|
||||
"anim":"BF Dead with GF Loop",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"firstDeath",
|
||||
"anim":"BF Dies with GF",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"deathLoop",
|
||||
"anim":"BF Dead with GF Loop",
|
||||
"framerate":24,
|
||||
"loop": true,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"deathConfirm",
|
||||
"anim":"RETRY confirm holding gf",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"texture":"characters/bfPixelsDEAD",
|
||||
"onInit":"firstDeath",
|
||||
"antialiasing": false,
|
||||
"animations":[
|
||||
{
|
||||
"name":"singUP",
|
||||
"anim":"BF Dies pixel",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"firstDeath",
|
||||
"anim":"BF Dies pixel",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"deathLoop",
|
||||
"anim":"Retry Loop",
|
||||
"framerate":24,
|
||||
"loop": true,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"deathConfirm",
|
||||
"anim":"RETRY CONFIRM",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
"texture":"characters/bfChristmas",
|
||||
"onInit":"idle",
|
||||
"antialiasing": false,
|
||||
"animations":[
|
||||
{
|
||||
"name":"idle",
|
||||
"anim":"BF IDLE",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singUP",
|
||||
"anim":"BF UP NOTE",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singLEFT",
|
||||
"anim":"BF LEFT NOTE",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singRIGHT",
|
||||
"anim":"BF RIGHT NOTE",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singDOWN",
|
||||
"anim":"BF DOWN NOTE",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singUPmiss",
|
||||
"anim":"BF UP MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singLEFTmiss",
|
||||
"anim":"BF LEFT MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singRIGHTmiss",
|
||||
"anim":"BF RIGHT MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singDOWNmiss",
|
||||
"anim":"BF DOWN MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"hey",
|
||||
"anim":"BF HEY",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,133 @@
|
|||
{
|
||||
"texture":"characters/BOYFRIEND",
|
||||
"onInit":"idle",
|
||||
"antialiasing": true,
|
||||
"animations":[
|
||||
{
|
||||
"name":"idle",
|
||||
"anim":"BF idle dance",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"UP",
|
||||
"anim":"BF NOTE UP0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"LEFT",
|
||||
"anim":"BF NOTE LEFT0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"RIGHT",
|
||||
"anim":"BF NOTE RIGHT0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"DOWN",
|
||||
"anim":"BF NOTE DOWN0",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"UPmiss",
|
||||
"anim":"BF NOTE UP MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"LEFTmiss",
|
||||
"anim":"BF NOTE LEFT MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"RIGHTmiss",
|
||||
"anim":"BF NOTE RIGHT MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"DOWNmiss",
|
||||
"anim":"BF NOTE DOWN MISS",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"hey",
|
||||
"anim":"BF HEY",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"firstDeath",
|
||||
"anim":"BF dies",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"deathLoop",
|
||||
"anim":"BF Dead Loop",
|
||||
"framerate":24,
|
||||
"loop": true,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"deathConfirm",
|
||||
"anim":"BF Dead confirm",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"scared",
|
||||
"anim":"BF idle shaking",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"texture":"characters/DADDY_DEAREST",
|
||||
"onInit":"idle",
|
||||
"antialiasing": true,
|
||||
"animations":[
|
||||
{
|
||||
"name":"idle",
|
||||
"anim":"Dad idle dance",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singUP",
|
||||
"anim":"Dad Sing Note UP",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singRIGHT",
|
||||
"anim":"Dad Sing Note RIGHT",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singDOWN",
|
||||
"anim":"Dad Sing Note DOWN",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singLEFT",
|
||||
"anim":"Dad Sing Note LEFT",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": true,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,111 @@
|
|||
{
|
||||
"texture":"characters/GF_assets",
|
||||
"onInit":"danceRight",
|
||||
"antialiasing": true,
|
||||
"animations":[
|
||||
{
|
||||
"name":"cheer",
|
||||
"anim":"GF Cheer",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singLEFT",
|
||||
"anim":"GF left note",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singRIGHT",
|
||||
"anim":"GF Right Note",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singUP",
|
||||
"anim":"GF Up Note",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"singDOWN",
|
||||
"anim":"GF Down Note",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
},
|
||||
{
|
||||
"name":"sad",
|
||||
"anim":"gf sad",
|
||||
"framerate":24,
|
||||
"loop": true,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"indices",
|
||||
"indices":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
|
||||
},
|
||||
{
|
||||
"name":"danceLeft",
|
||||
"anim":"GF Dancing Beat",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"indices",
|
||||
"indices":[30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
|
||||
},
|
||||
{
|
||||
"name":"danceRight",
|
||||
"anim":"GF Dancing Beat",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"indices",
|
||||
"indices":[15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
|
||||
},
|
||||
{
|
||||
"name":"hairBlow",
|
||||
"anim":"GF Dancing Beat Hair blowing",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"indices",
|
||||
"indices":[0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"name":"hairFall",
|
||||
"anim":"GF Dancing Beat Hair Landing",
|
||||
"framerate":24,
|
||||
"loop": false,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"indices",
|
||||
"indices":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
|
||||
},
|
||||
{
|
||||
"name":"scared",
|
||||
"anim":"GF FEAR",
|
||||
"framerate":24,
|
||||
"loop": true,
|
||||
"flipx": false,
|
||||
"flipy": false,
|
||||
"type":"prefix"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -7,9 +7,34 @@ import flixel.animation.FlxBaseAnimation;
|
|||
import flixel.graphics.frames.FlxAtlasFrames;
|
||||
import flixel.util.FlxSort;
|
||||
import haxe.io.Path;
|
||||
import ui.PreferencesMenu;
|
||||
#if desktop
|
||||
import lime.utils.AssetType;
|
||||
import lime.utils.Assets;
|
||||
import haxe.Json;
|
||||
import haxe.format.JsonParser;
|
||||
#end
|
||||
|
||||
using StringTools;
|
||||
|
||||
typedef CharacterFile = {
|
||||
var texture:String;
|
||||
var onInit:String;
|
||||
var antialiasing:Bool;
|
||||
var animations:Array<AnimArray>;
|
||||
}
|
||||
|
||||
typedef AnimArray = {
|
||||
var name:String;
|
||||
var anim:String;
|
||||
var framerate:Int;
|
||||
var loop:Bool;
|
||||
var flipx:Bool;
|
||||
var flipy:Bool;
|
||||
var type:String;
|
||||
var indices:Array<Int>;
|
||||
}
|
||||
|
||||
class Character extends FlxSprite
|
||||
{
|
||||
public var animOffsets:Map<String, Array<Dynamic>>;
|
||||
|
@ -22,6 +47,8 @@ class Character extends FlxSprite
|
|||
|
||||
public var animationNotes:Array<Dynamic> = [];
|
||||
|
||||
public var healthColorArray:Array<Int> = [255, 0, 0];
|
||||
|
||||
public function new(x:Float, y:Float, ?character:String = "bf", ?isPlayer:Bool = false)
|
||||
{
|
||||
super(x, y);
|
||||
|
@ -31,11 +58,13 @@ class Character extends FlxSprite
|
|||
this.isPlayer = isPlayer;
|
||||
|
||||
var tex:FlxAtlasFrames;
|
||||
antialiasing = true;
|
||||
antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
|
||||
switch (curCharacter)
|
||||
{
|
||||
case 'gf':
|
||||
// Color Set
|
||||
healthColorArray = [165,0,77];
|
||||
// GIRLFRIEND CODE
|
||||
tex = Paths.getSparrowAtlas('characters/GF_assets');
|
||||
frames = tex;
|
||||
|
@ -56,6 +85,9 @@ class Character extends FlxSprite
|
|||
playAnim('danceRight');
|
||||
|
||||
case 'gf-christmas':
|
||||
// Color Set
|
||||
healthColorArray = [165,0,77];
|
||||
|
||||
tex = Paths.getSparrowAtlas('characters/gfChristmas');
|
||||
frames = tex;
|
||||
quickAnimAdd('cheer', 'GF Cheer');
|
||||
|
@ -74,6 +106,9 @@ class Character extends FlxSprite
|
|||
|
||||
playAnim('danceRight');
|
||||
case 'gf-tankmen':
|
||||
// Color Set
|
||||
healthColorArray = [165,0,77];
|
||||
|
||||
frames = Paths.getSparrowAtlas('characters/gfTankmen');
|
||||
animation.addByIndices('sad', 'GF Crying at Gunpoint', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "", 24, true);
|
||||
animation.addByIndices('danceLeft', 'GF Dancing at Gunpoint', [30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false);
|
||||
|
@ -83,6 +118,9 @@ class Character extends FlxSprite
|
|||
playAnim('danceRight');
|
||||
|
||||
case 'bf-holding-gf':
|
||||
// Color Set
|
||||
healthColorArray = [49,176,209];
|
||||
|
||||
frames = Paths.getSparrowAtlas('characters/bfAndGF');
|
||||
quickAnimAdd('idle', 'BF idle dance');
|
||||
quickAnimAdd('singDOWN', 'BF NOTE DOWN0');
|
||||
|
@ -103,6 +141,9 @@ class Character extends FlxSprite
|
|||
flipX = true;
|
||||
|
||||
case 'gf-car':
|
||||
// Color Set
|
||||
healthColorArray = [165,0,77];
|
||||
|
||||
tex = Paths.getSparrowAtlas('characters/gfCar');
|
||||
frames = tex;
|
||||
animation.addByIndices('singUP', 'GF Dancing Beat Hair blowing CAR', [0], "", 24, false);
|
||||
|
@ -116,6 +157,9 @@ class Character extends FlxSprite
|
|||
playAnim('danceRight');
|
||||
|
||||
case 'gf-pixel':
|
||||
// Color Set
|
||||
healthColorArray = [165,0,77];
|
||||
|
||||
tex = Paths.getSparrowAtlas('characters/gfPixel');
|
||||
frames = tex;
|
||||
animation.addByIndices('singUP', 'GF IDLE', [2], "", 24, false);
|
||||
|
@ -131,6 +175,9 @@ class Character extends FlxSprite
|
|||
antialiasing = false;
|
||||
|
||||
case 'dad':
|
||||
// Color Set
|
||||
healthColorArray = [175,102,206];
|
||||
|
||||
// DAD ANIMATION LOADING CODE
|
||||
tex = Paths.getSparrowAtlas('characters/DADDY_DEAREST');
|
||||
frames = tex;
|
||||
|
@ -144,6 +191,9 @@ class Character extends FlxSprite
|
|||
|
||||
playAnim('idle');
|
||||
case 'spooky':
|
||||
// Color Set
|
||||
healthColorArray = [213,126,0];
|
||||
|
||||
tex = Paths.getSparrowAtlas('characters/spooky_kids_assets');
|
||||
frames = tex;
|
||||
quickAnimAdd('singUP', 'spooky UP NOTE');
|
||||
|
@ -157,6 +207,9 @@ class Character extends FlxSprite
|
|||
|
||||
playAnim('danceRight');
|
||||
case 'mom':
|
||||
// Color Set
|
||||
healthColorArray = [216,85,142];
|
||||
|
||||
tex = Paths.getSparrowAtlas('characters/Mom_Assets');
|
||||
frames = tex;
|
||||
|
||||
|
@ -173,6 +226,9 @@ class Character extends FlxSprite
|
|||
playAnim('idle');
|
||||
|
||||
case 'mom-car':
|
||||
// Color Set
|
||||
healthColorArray = [216,85,142];
|
||||
|
||||
tex = Paths.getSparrowAtlas('characters/momCar');
|
||||
frames = tex;
|
||||
|
||||
|
@ -189,6 +245,9 @@ class Character extends FlxSprite
|
|||
|
||||
playAnim('idle');
|
||||
case 'monster':
|
||||
// Color Set
|
||||
healthColorArray = [243,110,245];
|
||||
|
||||
tex = Paths.getSparrowAtlas('characters/Monster_Assets');
|
||||
frames = tex;
|
||||
quickAnimAdd('idle', 'monster idle');
|
||||
|
@ -201,6 +260,9 @@ class Character extends FlxSprite
|
|||
|
||||
playAnim('idle');
|
||||
case 'monster-christmas':
|
||||
// Color Set
|
||||
healthColorArray = [216,85,142];
|
||||
|
||||
tex = Paths.getSparrowAtlas('characters/monsterChristmas');
|
||||
frames = tex;
|
||||
quickAnimAdd('idle', 'monster idle');
|
||||
|
@ -213,6 +275,9 @@ class Character extends FlxSprite
|
|||
|
||||
playAnim('idle');
|
||||
case 'pico':
|
||||
// Color Set
|
||||
healthColorArray = [183,216,85];
|
||||
|
||||
tex = Paths.getSparrowAtlas('characters/Pico_FNF_assetss');
|
||||
frames = tex;
|
||||
quickAnimAdd('idle', "Pico Idle Dance");
|
||||
|
@ -244,6 +309,9 @@ class Character extends FlxSprite
|
|||
flipX = true;
|
||||
|
||||
case 'pico-speaker':
|
||||
// Color Set
|
||||
healthColorArray = [183,216,85];
|
||||
|
||||
frames = Paths.getSparrowAtlas('characters/picoSpeaker');
|
||||
|
||||
quickAnimAdd('shoot1', "Pico shoot 1");
|
||||
|
@ -258,6 +326,9 @@ class Character extends FlxSprite
|
|||
loadMappedAnims();
|
||||
|
||||
case 'bf':
|
||||
// Color Set
|
||||
healthColorArray = [49,176,209];
|
||||
|
||||
var tex = Paths.getSparrowAtlas('characters/BOYFRIEND');
|
||||
frames = tex;
|
||||
quickAnimAdd('idle', 'BF idle dance');
|
||||
|
@ -286,6 +357,9 @@ class Character extends FlxSprite
|
|||
loadOffsetFile(curCharacter);
|
||||
|
||||
case 'bf-christmas':
|
||||
// Color Set
|
||||
healthColorArray = [49,176,209];
|
||||
|
||||
var tex = Paths.getSparrowAtlas('characters/bfChristmas');
|
||||
frames = tex;
|
||||
quickAnimAdd('idle', 'BF idle dance');
|
||||
|
@ -305,6 +379,9 @@ class Character extends FlxSprite
|
|||
|
||||
flipX = true;
|
||||
case 'bf-car':
|
||||
// Color Set
|
||||
healthColorArray = [49,176,209];
|
||||
|
||||
var tex = Paths.getSparrowAtlas('characters/bfCar');
|
||||
frames = tex;
|
||||
quickAnimAdd('idle', 'BF idle dance');
|
||||
|
@ -324,6 +401,9 @@ class Character extends FlxSprite
|
|||
|
||||
flipX = true;
|
||||
case 'bf-pixel':
|
||||
// Color Set
|
||||
healthColorArray = [49,176,209];
|
||||
|
||||
frames = Paths.getSparrowAtlas('characters/bfPixel');
|
||||
quickAnimAdd('idle', 'BF IDLE');
|
||||
quickAnimAdd('singUP', 'BF UP NOTE');
|
||||
|
@ -349,6 +429,9 @@ class Character extends FlxSprite
|
|||
|
||||
flipX = true;
|
||||
case 'bf-pixel-dead':
|
||||
// Color Set
|
||||
healthColorArray = [49,176,209];
|
||||
|
||||
frames = Paths.getSparrowAtlas('characters/bfPixelsDEAD');
|
||||
quickAnimAdd('singUP', "BF Dies pixel");
|
||||
quickAnimAdd('firstDeath', "BF Dies pixel");
|
||||
|
@ -366,6 +449,9 @@ class Character extends FlxSprite
|
|||
flipX = true;
|
||||
|
||||
case 'bf-holding-gf-dead':
|
||||
// Color Set
|
||||
healthColorArray = [49,176,209];
|
||||
|
||||
frames = Paths.getSparrowAtlas('characters/bfHoldingGF-DEAD');
|
||||
quickAnimAdd('singUP', 'BF Dead with GF Loop');
|
||||
quickAnimAdd('firstDeath', 'BF Dies with GF');
|
||||
|
@ -379,6 +465,9 @@ class Character extends FlxSprite
|
|||
flipX = true;
|
||||
|
||||
case 'senpai':
|
||||
// Color Set
|
||||
healthColorArray = [255,170,111];
|
||||
|
||||
frames = Paths.getSparrowAtlas('characters/senpai');
|
||||
quickAnimAdd('idle', 'Senpai Idle');
|
||||
// at framerate 16.8 animation plays over 2 beats at 144bpm,
|
||||
|
@ -400,6 +489,9 @@ class Character extends FlxSprite
|
|||
|
||||
antialiasing = false;
|
||||
case 'senpai-angry':
|
||||
// Color Set
|
||||
healthColorArray = [255,170,111];
|
||||
|
||||
frames = Paths.getSparrowAtlas('characters/senpai');
|
||||
quickAnimAdd('idle', 'Angry Senpai Idle');
|
||||
quickAnimAdd('singUP', 'Angry Senpai UP NOTE');
|
||||
|
@ -417,6 +509,9 @@ class Character extends FlxSprite
|
|||
antialiasing = false;
|
||||
|
||||
case 'spirit':
|
||||
// Color Set
|
||||
healthColorArray = [255,60,110];
|
||||
|
||||
frames = Paths.getPackerAtlas('characters/spirit');
|
||||
quickAnimAdd('idle', "idle spirit_");
|
||||
quickAnimAdd('singUP', "up_");
|
||||
|
@ -434,6 +529,9 @@ class Character extends FlxSprite
|
|||
antialiasing = false;
|
||||
|
||||
case 'parents-christmas':
|
||||
// Color Set
|
||||
healthColorArray = [196,94,174];
|
||||
|
||||
frames = Paths.getSparrowAtlas('characters/mom_dad_christmas_assets');
|
||||
quickAnimAdd('idle', 'Parent Christmas Idle');
|
||||
quickAnimAdd('singUP', 'Parent Up Note Dad');
|
||||
|
@ -451,6 +549,9 @@ class Character extends FlxSprite
|
|||
|
||||
playAnim('idle');
|
||||
case 'tankman':
|
||||
// Color Set
|
||||
healthColorArray = [225,225,225];
|
||||
|
||||
frames = Paths.getSparrowAtlas('characters/tankmanCaptain');
|
||||
|
||||
quickAnimAdd('idle', "Tankman Idle Dance");
|
||||
|
@ -487,6 +588,24 @@ class Character extends FlxSprite
|
|||
playAnim('idle');
|
||||
|
||||
flipX = true;
|
||||
#if desktop
|
||||
default:
|
||||
var characterJson:String = Assets.getText(Paths.character(curCharacter+".json"));
|
||||
var characterParseJson:CharacterFile = haxe.Json.parse(characterJson);
|
||||
frames = Paths.getSparrowAtlas(characterParseJson.texture);
|
||||
for (i in characterParseJson.animations){
|
||||
if (i.type == "prefix"){
|
||||
animation.addByPrefix(i.name, i.anim, i.framerate, i.loop, i.flipx, i.flipy);
|
||||
}
|
||||
|
||||
if (i.type == "indices"){
|
||||
animation.addByIndices(i.name, i.anim, i.indices, "", i.framerate, i.loop, i.flipx, i.flipy);
|
||||
}
|
||||
}
|
||||
playAnim(characterParseJson.onInit);
|
||||
if ((characterParseJson.antialiasing && PreferencesMenu.getPref('antialiasing')) || !characterParseJson.antialiasing)
|
||||
antialiasing = characterParseJson.antialiasing;
|
||||
#end
|
||||
}
|
||||
|
||||
dance();
|
||||
|
|
|
@ -69,6 +69,7 @@ class ChartingState extends MusicBeatState
|
|||
var _song:SwagSong;
|
||||
|
||||
var typingShit:FlxInputText;
|
||||
var typingShitt:FlxInputText;
|
||||
/*
|
||||
* WILL BE THE CURRENT / LAST PLACED NOTE
|
||||
**/
|
||||
|
@ -114,6 +115,7 @@ class ChartingState extends MusicBeatState
|
|||
{
|
||||
_song = {
|
||||
song: 'Test',
|
||||
stage: 'stage',
|
||||
notes: [],
|
||||
bpm: 150,
|
||||
needsVoices: true,
|
||||
|
@ -224,7 +226,11 @@ class ChartingState extends MusicBeatState
|
|||
stepperBPM.value = Conductor.bpm;
|
||||
stepperBPM.name = 'song_bpm';
|
||||
|
||||
var characters:Array<String> = CoolUtil.coolTextFile(Paths.txt('characterList'));
|
||||
var characters:Array<String> = Paths.txt("characterList").trim().split('\n');
|
||||
var charactersRaw:Array<String> = Paths.filelist(openfl.utils.AssetType.CHARACTER);
|
||||
for (i in charactersRaw) {
|
||||
characters.push(i.replace(".json",""));
|
||||
}
|
||||
|
||||
var player1DropDown = new FlxUIDropDownMenu(10, 100, FlxUIDropDownMenu.makeStrIdLabelArray(characters, true), function(character:String)
|
||||
{
|
||||
|
@ -240,6 +246,9 @@ class ChartingState extends MusicBeatState
|
|||
});
|
||||
player2DropDown.selectedLabel = _song.player2;
|
||||
|
||||
var UI_songStage = new FlxUIInputText(10, 120, 70, _song.stage, 8);
|
||||
typingShitt = UI_songStage;
|
||||
|
||||
var tab_group_song = new FlxUI(null, UI_box);
|
||||
tab_group_song.name = "Song";
|
||||
tab_group_song.add(UI_songTitle);
|
||||
|
@ -254,6 +263,7 @@ class ChartingState extends MusicBeatState
|
|||
tab_group_song.add(stepperSpeed);
|
||||
tab_group_song.add(player1DropDown);
|
||||
tab_group_song.add(player2DropDown);
|
||||
tab_group_song.add(UI_songStage);
|
||||
|
||||
UI_box.addGroup(tab_group_song);
|
||||
UI_box.scrollFactor.set();
|
||||
|
@ -490,6 +500,7 @@ class ChartingState extends MusicBeatState
|
|||
|
||||
Conductor.songPosition = FlxG.sound.music.time;
|
||||
_song.song = typingShit.text;
|
||||
_song.stage = typingShitt.text;
|
||||
|
||||
strumLine.y = getYfromStrum((Conductor.songPosition - sectionStartTime()) % (Conductor.stepCrochet * _song.notes[curSection].lengthInSteps));
|
||||
|
||||
|
@ -593,7 +604,7 @@ class ChartingState extends MusicBeatState
|
|||
}
|
||||
}
|
||||
|
||||
if (!typingShit.hasFocus)
|
||||
if (!typingShit.hasFocus || !typingShitt.hasFocus)
|
||||
{
|
||||
if (FlxG.keys.justPressed.SPACE)
|
||||
{
|
||||
|
|
|
@ -59,6 +59,10 @@ import ui.PreferencesMenu;
|
|||
import Discord;
|
||||
#end
|
||||
|
||||
#if hxCodec
|
||||
import hxcodec.VideoHandler;
|
||||
#end
|
||||
|
||||
using StringTools;
|
||||
|
||||
class LuaHandler {
|
||||
|
@ -162,6 +166,44 @@ class LuaHandler {
|
|||
DiscordClient.changePresence(details, state, smallImageKey, hasStartTimestamp, endTimestamp);
|
||||
#end
|
||||
});
|
||||
|
||||
Lua_helper.add_callback(lua, "playCutscene", function (name:String, atEndOfSong:Bool = false) {
|
||||
#if hxCodec
|
||||
PlayState.instance.inCutscene = true;
|
||||
FlxG.sound.music.stop();
|
||||
|
||||
var video:VideoHandler = new VideoHandler();
|
||||
video.finishCallback = function()
|
||||
{
|
||||
PlayState.instance.inCutscene = false;
|
||||
if (atEndOfSong)
|
||||
{
|
||||
if (PlayState.storyPlaylist.length <= 0)
|
||||
FlxG.switchState(new StoryMenuState());
|
||||
else
|
||||
{
|
||||
PlayState.SONG = Song.loadFromJson(PlayState.storyPlaylist[0].toLowerCase());
|
||||
FlxG.switchState(new PlayState());
|
||||
}
|
||||
}
|
||||
else
|
||||
FlxTween.tween(FlxG.camera, {zoom: PlayState.defaultCamZoom}, (Conductor.crochet / 1000) * 5, {ease: FlxEase.quadInOut});
|
||||
PlayState.instance.startCountdown();
|
||||
PlayState.instance.cameraMovement();
|
||||
}
|
||||
video.playVideo(Paths.video(name).replace("videos:",""));
|
||||
#else
|
||||
PlayState.instance.inCutscene = true;
|
||||
var vid:FlxVideo = new FlxVideo(name);
|
||||
vid.finishCallback = function()
|
||||
{
|
||||
FlxTween.tween(FlxG.camera, {zoom: PlayState.defaultCamZoom}, (Conductor.crochet / 1000) * 5, {ease: FlxEase.quadInOut});
|
||||
PlayState.instance.startCountdown();
|
||||
PlayState.instance.cameraMovement();
|
||||
PlayState.instance.inCutscene = false;
|
||||
};
|
||||
#end
|
||||
});
|
||||
#end
|
||||
}
|
||||
|
||||
|
@ -321,6 +363,19 @@ class DebugLuaText extends FlxText
|
|||
}
|
||||
}
|
||||
|
||||
class ModchartSprite extends FlxSprite
|
||||
{
|
||||
public var wasAdded:Bool = false;
|
||||
public var animOffsets:Map<String, Array<Float>> = new Map<String, Array<Float>>();
|
||||
//public var isInFront:Bool = false;
|
||||
|
||||
public function new(?x:Float = 0, ?y:Float = 0)
|
||||
{
|
||||
super(x, y);
|
||||
antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
}
|
||||
}
|
||||
|
||||
#if hscript
|
||||
class HScript
|
||||
{
|
||||
|
|
|
@ -93,6 +93,7 @@ class Note extends FlxSprite
|
|||
animation.add('bluehold', [1]);
|
||||
}
|
||||
|
||||
antialiasing = false;
|
||||
setGraphicSize(Std.int(width * PlayState.daPixelZoom));
|
||||
updateHitbox();
|
||||
|
||||
|
@ -116,7 +117,7 @@ class Note extends FlxSprite
|
|||
|
||||
setGraphicSize(Std.int(width * 0.7));
|
||||
updateHitbox();
|
||||
antialiasing = true;
|
||||
antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
|
||||
// colorSwap.colorToReplace = 0xFFF9393F;
|
||||
// colorSwap.newColor = 0xFF00FF00;
|
||||
|
@ -235,8 +236,10 @@ class Note extends FlxSprite
|
|||
|
||||
if (strumTime <= Conductor.songPosition)
|
||||
wasGoodHit = true;
|
||||
if (PreferencesMenu.getPref('middlescroll'))
|
||||
alpha = 0;
|
||||
|
||||
if(PlayState.ismiddlescroll) {
|
||||
alpha = 1 * 0.35;
|
||||
}
|
||||
}
|
||||
|
||||
if (tooLate)
|
||||
|
|
|
@ -32,7 +32,7 @@ class NoteSplash extends FlxSprite
|
|||
alpha = 0.6;
|
||||
|
||||
animation.play('note' + noteData + '-' + FlxG.random.int(0, 1), true);
|
||||
animation.curAnim.frameRate += FlxG.random.int(-2, 2);
|
||||
if(animation.curAnim != null)animation.curAnim.frameRate = 24 + FlxG.random.int(-2, 2);
|
||||
updateHitbox();
|
||||
|
||||
offset.set(width * 0.3, height * 0.3);
|
||||
|
@ -40,7 +40,7 @@ class NoteSplash extends FlxSprite
|
|||
|
||||
override function update(elapsed:Float)
|
||||
{
|
||||
if (animation.curAnim.finished)
|
||||
if (animation.curAnim != null && animation.curAnim.finished)
|
||||
kill();
|
||||
|
||||
super.update(elapsed);
|
||||
|
|
|
@ -135,6 +135,16 @@ class Paths
|
|||
return file('$key',"shaders");
|
||||
}
|
||||
|
||||
inline static public function character(key:String)
|
||||
{
|
||||
return file('$key.json',"characters");
|
||||
}
|
||||
|
||||
inline static public function stage(key:String)
|
||||
{
|
||||
return file('$key.json',"stages");
|
||||
}
|
||||
|
||||
inline static public function filelist(type:AssetType = TEXT):Array<String>
|
||||
{
|
||||
return OpenFlAssets.list(type);
|
||||
|
|
|
@ -108,6 +108,7 @@ class PlayState extends MusicBeatState
|
|||
private var gfSpeed:Int = 1;
|
||||
private var health:Float = 1;
|
||||
private var combo:Int = 0;
|
||||
private var maxcombo:Int = 0;
|
||||
|
||||
private var healthBarBG:FlxSprite;
|
||||
private var healthBar:FlxBar;
|
||||
|
@ -154,17 +155,21 @@ class PlayState extends MusicBeatState
|
|||
var songScore:Int = 0;
|
||||
var scoreTxt:FlxText;
|
||||
var scoreTxtTween:FlxTween;
|
||||
var judgementCounter:FlxText;
|
||||
var judgementCounterTween:FlxTween;
|
||||
var msTimingTxt:FlxText = new FlxText(0, 0, 0, "0ms");
|
||||
var msTimingTxtTween:FlxTween;
|
||||
|
||||
var grpNoteSplashes:FlxTypedGroup<NoteSplash>;
|
||||
|
||||
public static var campaignScore:Int = 0;
|
||||
|
||||
var defaultCamZoom:Float = 1.05;
|
||||
public static var defaultCamZoom:Float = 1.05;
|
||||
|
||||
// how big to stretch the pixel art assets
|
||||
public static var daPixelZoom:Float = 6;
|
||||
|
||||
var inCutscene:Bool = false;
|
||||
public var inCutscene:Bool = false;
|
||||
|
||||
#if discord_rpc
|
||||
// Discord RPC variables
|
||||
|
@ -185,9 +190,9 @@ class PlayState extends MusicBeatState
|
|||
var shits:Int = 0;
|
||||
var misses:Int = 0;
|
||||
|
||||
//settings
|
||||
public static var isdownscroll:Bool = PreferencesMenu.getPref('downscroll');
|
||||
public static var ismiddlescroll:Bool = PreferencesMenu.getPref('middlescroll');
|
||||
//GamePlay Settings
|
||||
public static var isdownscroll:Bool = false;
|
||||
public static var ismiddlescroll:Bool = false;
|
||||
|
||||
//lua shit
|
||||
//public var boyfriendMap:Map<String, Boyfriend> = new Map();
|
||||
|
@ -205,21 +210,13 @@ class PlayState extends MusicBeatState
|
|||
|
||||
override public function create()
|
||||
{
|
||||
//GamePlay Settings
|
||||
isdownscroll = PreferencesMenu.getPref('downscroll');
|
||||
ismiddlescroll = PreferencesMenu.getPref('middlescroll');
|
||||
|
||||
// for lua
|
||||
instance = this;
|
||||
|
||||
//lua shit
|
||||
#if linc_luajit
|
||||
var luaFileList:Array<String> = Paths.filelist(openfl.utils.AssetType.SCRIPT);
|
||||
for (lua in luaFileList)
|
||||
{
|
||||
if(lua.endsWith('.lua'))
|
||||
{
|
||||
luaArray.push(new LuaHandler(Paths.file(lua,openfl.utils.AssetType.SCRIPT,"default")));
|
||||
}
|
||||
}
|
||||
#end
|
||||
|
||||
if (FlxG.sound.music != null)
|
||||
FlxG.sound.music.stop();
|
||||
|
||||
|
@ -291,7 +288,7 @@ class PlayState extends MusicBeatState
|
|||
halloweenBG.animation.addByPrefix('idle', 'halloweem bg0');
|
||||
halloweenBG.animation.addByPrefix('lightning', 'halloweem bg lightning strike', 24, false);
|
||||
halloweenBG.animation.play('idle');
|
||||
halloweenBG.antialiasing = true;
|
||||
halloweenBG.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
add(halloweenBG);
|
||||
|
||||
isHalloween = true;
|
||||
|
@ -320,7 +317,7 @@ class PlayState extends MusicBeatState
|
|||
light.visible = false;
|
||||
light.setGraphicSize(Std.int(light.width * 0.85));
|
||||
light.updateHitbox();
|
||||
light.antialiasing = true;
|
||||
light.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
light.shader = lightFadeShader.shader;
|
||||
phillyCityLights.add(light);
|
||||
}
|
||||
|
@ -374,7 +371,7 @@ class PlayState extends MusicBeatState
|
|||
limo.frames = Paths.getSparrowAtlas('limo/limoDrive');
|
||||
limo.animation.addByPrefix('drive', "Limo stage", 24);
|
||||
limo.animation.play('drive');
|
||||
limo.antialiasing = true;
|
||||
limo.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
|
||||
fastCar = new FlxSprite(-300, 160).loadGraphic(Paths.image('limo/fastCarLol'));
|
||||
// add(limo);
|
||||
|
@ -384,7 +381,7 @@ class PlayState extends MusicBeatState
|
|||
defaultCamZoom = 0.80;
|
||||
|
||||
var bg:FlxSprite = new FlxSprite(-1000, -500).loadGraphic(Paths.image('christmas/bgWalls'));
|
||||
bg.antialiasing = true;
|
||||
bg.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
bg.scrollFactor.set(0.2, 0.2);
|
||||
bg.active = false;
|
||||
bg.setGraphicSize(Std.int(bg.width * 0.8));
|
||||
|
@ -394,14 +391,14 @@ class PlayState extends MusicBeatState
|
|||
upperBoppers = new FlxSprite(-240, -90);
|
||||
upperBoppers.frames = Paths.getSparrowAtlas('christmas/upperBop');
|
||||
upperBoppers.animation.addByPrefix('bop', "Upper Crowd Bob", 24, false);
|
||||
upperBoppers.antialiasing = true;
|
||||
upperBoppers.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
upperBoppers.scrollFactor.set(0.33, 0.33);
|
||||
upperBoppers.setGraphicSize(Std.int(upperBoppers.width * 0.85));
|
||||
upperBoppers.updateHitbox();
|
||||
add(upperBoppers);
|
||||
|
||||
var bgEscalator:FlxSprite = new FlxSprite(-1100, -600).loadGraphic(Paths.image('christmas/bgEscalator'));
|
||||
bgEscalator.antialiasing = true;
|
||||
bgEscalator.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
bgEscalator.scrollFactor.set(0.3, 0.3);
|
||||
bgEscalator.active = false;
|
||||
bgEscalator.setGraphicSize(Std.int(bgEscalator.width * 0.9));
|
||||
|
@ -409,14 +406,14 @@ class PlayState extends MusicBeatState
|
|||
add(bgEscalator);
|
||||
|
||||
var tree:FlxSprite = new FlxSprite(370, -250).loadGraphic(Paths.image('christmas/christmasTree'));
|
||||
tree.antialiasing = true;
|
||||
tree.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
tree.scrollFactor.set(0.40, 0.40);
|
||||
add(tree);
|
||||
|
||||
bottomBoppers = new FlxSprite(-300, 140);
|
||||
bottomBoppers.frames = Paths.getSparrowAtlas('christmas/bottomBop');
|
||||
bottomBoppers.animation.addByPrefix('bop', 'Bottom Level Boppers', 24, false);
|
||||
bottomBoppers.antialiasing = true;
|
||||
bottomBoppers.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
bottomBoppers.scrollFactor.set(0.9, 0.9);
|
||||
bottomBoppers.setGraphicSize(Std.int(bottomBoppers.width * 1));
|
||||
bottomBoppers.updateHitbox();
|
||||
|
@ -424,18 +421,18 @@ class PlayState extends MusicBeatState
|
|||
|
||||
var fgSnow:FlxSprite = new FlxSprite(-600, 700).loadGraphic(Paths.image('christmas/fgSnow'));
|
||||
fgSnow.active = false;
|
||||
fgSnow.antialiasing = true;
|
||||
fgSnow.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
add(fgSnow);
|
||||
|
||||
santa = new FlxSprite(-840, 150);
|
||||
santa.frames = Paths.getSparrowAtlas('christmas/santa');
|
||||
santa.animation.addByPrefix('idle', 'santa idle in fear', 24, false);
|
||||
santa.antialiasing = true;
|
||||
santa.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
add(santa);
|
||||
case 'winter-horrorland':
|
||||
curStage = 'mallEvil';
|
||||
var bg:FlxSprite = new FlxSprite(-400, -500).loadGraphic(Paths.image('christmas/evilBG'));
|
||||
bg.antialiasing = true;
|
||||
bg.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
bg.scrollFactor.set(0.2, 0.2);
|
||||
bg.active = false;
|
||||
bg.setGraphicSize(Std.int(bg.width * 0.8));
|
||||
|
@ -443,12 +440,12 @@ class PlayState extends MusicBeatState
|
|||
add(bg);
|
||||
|
||||
var evilTree:FlxSprite = new FlxSprite(300, -300).loadGraphic(Paths.image('christmas/evilTree'));
|
||||
evilTree.antialiasing = true;
|
||||
evilTree.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
evilTree.scrollFactor.set(0.2, 0.2);
|
||||
add(evilTree);
|
||||
|
||||
var evilSnow:FlxSprite = new FlxSprite(-200, 700).loadGraphic(Paths.image("christmas/evilSnow"));
|
||||
evilSnow.antialiasing = true;
|
||||
evilSnow.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
add(evilSnow);
|
||||
case 'senpai' | 'roses':
|
||||
curStage = 'school';
|
||||
|
@ -649,7 +646,7 @@ class PlayState extends MusicBeatState
|
|||
var fgTank3:BGSprite = new BGSprite('tank3', 1300, 1200, 3.5, 2.5, ['fg']);
|
||||
foregroundSprites.add(fgTank3);
|
||||
|
||||
default:
|
||||
case "bopeepo" | "fresh" | "dadbattle" | "tutorial" | "test":
|
||||
defaultCamZoom = 0.9;
|
||||
curStage = 'stage';
|
||||
|
||||
|
@ -659,7 +656,7 @@ class PlayState extends MusicBeatState
|
|||
var stageFront:FlxSprite = new FlxSprite(-650, 600).loadGraphic(Paths.image('stagefront'));
|
||||
stageFront.setGraphicSize(Std.int(stageFront.width * 1.1));
|
||||
stageFront.updateHitbox();
|
||||
stageFront.antialiasing = true;
|
||||
stageFront.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
stageFront.scrollFactor.set(0.9, 0.9);
|
||||
stageFront.active = false;
|
||||
add(stageFront);
|
||||
|
@ -667,11 +664,14 @@ class PlayState extends MusicBeatState
|
|||
var stageCurtains:FlxSprite = new FlxSprite(-500, -300).loadGraphic(Paths.image('stagecurtains'));
|
||||
stageCurtains.setGraphicSize(Std.int(stageCurtains.width * 0.9));
|
||||
stageCurtains.updateHitbox();
|
||||
stageCurtains.antialiasing = true;
|
||||
stageCurtains.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
stageCurtains.scrollFactor.set(1.3, 1.3);
|
||||
stageCurtains.active = false;
|
||||
|
||||
add(stageCurtains);
|
||||
default:
|
||||
defaultCamZoom = 0.9;
|
||||
curStage = SONG.stage;
|
||||
}
|
||||
|
||||
var gfVersion:String = 'gf';
|
||||
|
@ -890,9 +890,9 @@ class PlayState extends MusicBeatState
|
|||
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();
|
||||
healthBar.createFilledBar(0xFFFF0000, 0xFF66FF33);
|
||||
// healthBar
|
||||
add(healthBar);
|
||||
reloadHealthBarColors();
|
||||
|
||||
scoreTxt = new FlxText(0, healthBarBG.y + 36, FlxG.width, "", 20);
|
||||
scoreTxt.setFormat(Paths.font("vcr.ttf"), 20, FlxColor.WHITE, CENTER, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK);
|
||||
|
@ -900,6 +900,18 @@ class PlayState extends MusicBeatState
|
|||
scoreTxt.borderSize = 1.25;
|
||||
add(scoreTxt);
|
||||
|
||||
if (PreferencesMenu.getPref('judgementCounter'))
|
||||
{
|
||||
judgementCounter = new FlxText(20, 0, 0, "", 20);
|
||||
judgementCounter.setFormat(Paths.font("vcr.ttf"), 20, FlxColor.WHITE, FlxTextAlign.LEFT, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK);
|
||||
judgementCounter.borderSize = 2;
|
||||
judgementCounter.borderQuality = 2;
|
||||
judgementCounter.scrollFactor.set();
|
||||
judgementCounter.screenCenter(Y);
|
||||
judgementCounter.text = 'Sicks: ${sicks}\nGoods: ${goods}\nBads: ${bads}\nShits: ${shits}\nCombo: ${combo} / ${maxcombo}';
|
||||
add(judgementCounter);
|
||||
}
|
||||
|
||||
iconP1 = new HealthIcon(SONG.player1, true);
|
||||
iconP1.y = healthBar.y - (iconP1.height / 2);
|
||||
add(iconP1);
|
||||
|
@ -916,6 +928,7 @@ class PlayState extends MusicBeatState
|
|||
iconP1.cameras = [camHUD];
|
||||
iconP2.cameras = [camHUD];
|
||||
scoreTxt.cameras = [camHUD];
|
||||
judgementCounter.cameras = [camHUD];
|
||||
doof.cameras = [camHUD];
|
||||
|
||||
// if (SONG.song == 'South')
|
||||
|
@ -924,6 +937,18 @@ class PlayState extends MusicBeatState
|
|||
|
||||
// cameras = [FlxG.cameras.list[1]];
|
||||
|
||||
//lua shit
|
||||
#if linc_luajit
|
||||
var luaFileList:Array<String> = Paths.filelist(openfl.utils.AssetType.SCRIPT);
|
||||
for (lua in luaFileList)
|
||||
{
|
||||
if(lua.endsWith('.lua'))
|
||||
{
|
||||
luaArray.push(new LuaHandler(Paths.script(lua).replace("scripts:","")));
|
||||
}
|
||||
}
|
||||
#end
|
||||
|
||||
startingSong = true;
|
||||
|
||||
if (isStoryMode && !seenCutscene)
|
||||
|
@ -1018,7 +1043,7 @@ class PlayState extends MusicBeatState
|
|||
startCountdown();
|
||||
cameraMovement();
|
||||
}
|
||||
video.playVideo(Paths.video(name));
|
||||
video.playVideo(Paths.video(name).replace("videos:",""));
|
||||
#else
|
||||
inCutscene = true;
|
||||
var vid:FlxVideo = new FlxVideo(name);
|
||||
|
@ -1058,7 +1083,7 @@ class PlayState extends MusicBeatState
|
|||
tankCutscene.animation.addByPrefix('wellWell', 'TANK TALK 1 P1', 24, false);
|
||||
tankCutscene.animation.addByPrefix('killYou', 'TANK TALK 1 P2', 24, false);
|
||||
tankCutscene.animation.play('wellWell');
|
||||
tankCutscene.antialiasing = true;
|
||||
tankCutscene.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
gfCutsceneLayer.add(tankCutscene);
|
||||
|
||||
camHUD.visible = false;
|
||||
|
@ -1139,7 +1164,7 @@ class PlayState extends MusicBeatState
|
|||
tankCutscene.frames = Paths.getSparrowAtlas('cutsceneStuff/tankTalkSong2');
|
||||
tankCutscene.animation.addByPrefix('tankyguy', 'TANK TALK 2', 24, false);
|
||||
tankCutscene.animation.play('tankyguy');
|
||||
tankCutscene.antialiasing = true;
|
||||
tankCutscene.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
gfCutsceneLayer.add(tankCutscene); // add();
|
||||
|
||||
tankCutscene.startSyncAudio = FlxG.sound.load(Paths.sound('tankSong2'));
|
||||
|
@ -1218,7 +1243,7 @@ class PlayState extends MusicBeatState
|
|||
gfTankmen.frames = Paths.getSparrowAtlas('characters/gfTankmen');
|
||||
gfTankmen.animation.addByPrefix('loop', 'GF Dancing at Gunpoint', 24, true);
|
||||
gfTankmen.animation.play('loop');
|
||||
gfTankmen.antialiasing = true;
|
||||
gfTankmen.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
gfCutsceneLayer.add(gfTankmen);
|
||||
|
||||
var tankCutscene:TankCutscene = new TankCutscene(-70, 320);
|
||||
|
@ -1227,13 +1252,13 @@ class PlayState extends MusicBeatState
|
|||
// tankCutscene.animation.addByPrefix('weed', 'sexAmbig', 24, false);
|
||||
tankCutscene.animation.play('tankyguy');
|
||||
|
||||
tankCutscene.antialiasing = true;
|
||||
tankCutscene.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
bfTankCutsceneLayer.add(tankCutscene); // add();
|
||||
|
||||
var alsoTankCutscene:FlxSprite = new FlxSprite(20, 320);
|
||||
alsoTankCutscene.frames = Paths.getSparrowAtlas('cutsceneStuff/tankTalkSong3-pt2');
|
||||
alsoTankCutscene.animation.addByPrefix('swagTank', 'TANK TALK 3 P2 UNCUT', 24, false);
|
||||
alsoTankCutscene.antialiasing = true;
|
||||
alsoTankCutscene.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
|
||||
bfTankCutsceneLayer.add(alsoTankCutscene);
|
||||
|
||||
|
@ -1265,7 +1290,7 @@ class PlayState extends MusicBeatState
|
|||
var bfCatchGf:FlxSprite = new FlxSprite(boyfriend.x - 10, boyfriend.y - 90);
|
||||
bfCatchGf.frames = Paths.getSparrowAtlas('cutsceneStuff/bfCatchesGF');
|
||||
bfCatchGf.animation.addByPrefix('catch', 'BF catches GF', 24, false);
|
||||
bfCatchGf.antialiasing = true;
|
||||
bfCatchGf.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
add(bfCatchGf);
|
||||
bfCatchGf.visible = false;
|
||||
|
||||
|
@ -1541,13 +1566,13 @@ class PlayState extends MusicBeatState
|
|||
var startTimer:FlxTimer = new FlxTimer();
|
||||
var perfectMode:Bool = false;
|
||||
|
||||
function startCountdown():Void
|
||||
public function startCountdown():Void
|
||||
{
|
||||
inCutscene = false;
|
||||
camHUD.visible = true;
|
||||
|
||||
generateStaticArrows(0,4);
|
||||
generateStaticArrows(1,4);
|
||||
generateStaticArrows(1);
|
||||
generateStaticArrows(0);
|
||||
|
||||
talking = false;
|
||||
startedCountdown = true;
|
||||
|
@ -1563,12 +1588,12 @@ class PlayState extends MusicBeatState
|
|||
gf.dance();
|
||||
if (swagCounter % 2 == 0)
|
||||
{
|
||||
if (!boyfriend.animation.curAnim.name.startsWith("sing"))
|
||||
if (getAnimName(boyfriend).startsWith("sing"))
|
||||
boyfriend.playAnim('idle');
|
||||
if (!dad.animation.curAnim.name.startsWith("sing"))
|
||||
if (getAnimName(dad).startsWith("sing"))
|
||||
dad.dance();
|
||||
}
|
||||
else if (dad.curCharacter == 'spooky' && !dad.animation.curAnim.name.startsWith("sing"))
|
||||
else if (dad.curCharacter == 'spooky' && getAnimName(dad).startsWith("sing"))
|
||||
dad.dance();
|
||||
if (generatedMusic)
|
||||
notes.sort(sortNotes, FlxSort.DESCENDING);
|
||||
|
@ -1715,13 +1740,34 @@ class PlayState extends MusicBeatState
|
|||
sustainNote.mustPress = gottaHitNote;
|
||||
|
||||
if (sustainNote.mustPress)
|
||||
{
|
||||
sustainNote.x += FlxG.width / 2; // general offset
|
||||
}
|
||||
else if(ismiddlescroll)
|
||||
{
|
||||
sustainNote.x += 310;
|
||||
if(daNoteData > 1) //Up and Right
|
||||
{
|
||||
sustainNote.x += FlxG.width / 2 + 25;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
swagNote.mustPress = gottaHitNote;
|
||||
|
||||
|
||||
if (swagNote.mustPress)
|
||||
{
|
||||
swagNote.x += FlxG.width / 2; // general offset
|
||||
}
|
||||
else if(ismiddlescroll)
|
||||
{
|
||||
swagNote.x += 310;
|
||||
if(daNoteData > 1) //Up and Right
|
||||
{
|
||||
swagNote.x += FlxG.width / 2 + 25;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1747,12 +1793,16 @@ class PlayState extends MusicBeatState
|
|||
|
||||
// ^ These two sorts also look cute together ^
|
||||
|
||||
private function generateStaticArrows(player:Int, keyCount:Int = 4):Void
|
||||
private function generateStaticArrows(player:Int):Void
|
||||
{
|
||||
for (i in 0...keyCount)
|
||||
for (i in 0...4)
|
||||
{
|
||||
// FlxG.log.add(i);
|
||||
var babyArrow:StrumNote = new StrumNote(0, strumLine.y, i, player, keyCount);
|
||||
var targetAlpha:Float = 1;
|
||||
if (player == 0)
|
||||
if(ismiddlescroll) targetAlpha = 0.35;
|
||||
|
||||
var babyArrow:StrumNote = new StrumNote(0, strumLine.y, i, player);
|
||||
var colorswap:ColorSwap = new ColorSwap();
|
||||
babyArrow.shader = colorswap.shader;
|
||||
colorswap.update(Note.arrowColors[i]);
|
||||
|
@ -1764,7 +1814,7 @@ class PlayState extends MusicBeatState
|
|||
|
||||
babyArrow.y -= 10;
|
||||
// babyArrow.alpha = 0;
|
||||
FlxTween.tween(babyArrow, {y: babyArrow.y + 10, alpha: 1}, 1, {ease: FlxEase.circOut, startDelay: 0.5 + (0.2 * i)});
|
||||
FlxTween.tween(babyArrow, {y: babyArrow.y + 10, alpha: targetAlpha}, 1, {ease: FlxEase.circOut, startDelay: 0.5 + (0.2 * i)});
|
||||
|
||||
if (player == 0)
|
||||
opponentStrums.add(babyArrow);
|
||||
|
@ -1775,9 +1825,20 @@ class PlayState extends MusicBeatState
|
|||
babyArrow.x += 110;
|
||||
babyArrow.x += ((FlxG.width / 2) * player);
|
||||
|
||||
if (PreferencesMenu.getPref('middlescroll'))
|
||||
if(ismiddlescroll)
|
||||
babyArrow.x -= 320;
|
||||
|
||||
if (player == 0)
|
||||
{
|
||||
if(ismiddlescroll)
|
||||
{
|
||||
babyArrow.x += 310;
|
||||
if(i > 1) { //Up and Right
|
||||
babyArrow.x += FlxG.width / 2 + 25;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
strumLineNotes.add(babyArrow);
|
||||
}
|
||||
}
|
||||
|
@ -1878,6 +1939,9 @@ class PlayState extends MusicBeatState
|
|||
perfectMode = false;
|
||||
#end
|
||||
|
||||
if (practiceMode)
|
||||
SONG.validScore = false;
|
||||
|
||||
// do this BEFORE super.update() so songPosition is accurate
|
||||
if (startingSong)
|
||||
{
|
||||
|
@ -2150,7 +2214,7 @@ class PlayState extends MusicBeatState
|
|||
|
||||
if (daNote.isSustainNote)
|
||||
{
|
||||
if (daNote.animation.curAnim.name.endsWith("end") && daNote.prevNote != null)
|
||||
if (getAnimName(daNote).endsWith("end") && daNote.prevNote != null)
|
||||
daNote.y += daNote.prevNote.height;
|
||||
else
|
||||
daNote.y += daNote.height / 2;
|
||||
|
@ -2239,7 +2303,7 @@ class PlayState extends MusicBeatState
|
|||
if (combo != 0)
|
||||
{
|
||||
combo = 0;
|
||||
displayCombo();
|
||||
displayCombo(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2376,23 +2440,20 @@ class PlayState extends MusicBeatState
|
|||
|
||||
var isSick:Bool = true;
|
||||
|
||||
if (msTimingTxtTween != null)
|
||||
msTimingTxtTween.cancel();
|
||||
|
||||
if (noteDiff > Conductor.safeZoneOffset * 0.9)
|
||||
{
|
||||
daRating = 'shit';
|
||||
score = 50;
|
||||
isSick = false; // shitty copypaste on this literally just because im lazy and tired lol!
|
||||
}
|
||||
else if (noteDiff > Conductor.safeZoneOffset * 0.75)
|
||||
{
|
||||
daRating = 'bad';
|
||||
score = 100;
|
||||
isSick = false;
|
||||
}
|
||||
else if (noteDiff > Conductor.safeZoneOffset * 0.2)
|
||||
{
|
||||
daRating = 'good';
|
||||
score = 200;
|
||||
isSick = false;
|
||||
}
|
||||
|
||||
if (isSick)
|
||||
|
@ -2406,17 +2467,37 @@ class PlayState extends MusicBeatState
|
|||
switch (daRating){
|
||||
case "sick":
|
||||
sicks++;
|
||||
msTimingTxt.color = FlxColor.CYAN;
|
||||
case "good":
|
||||
goods++;
|
||||
score = 200;
|
||||
isSick = false;
|
||||
msTimingTxt.color = FlxColor.GREEN;
|
||||
case "bad":
|
||||
bads++;
|
||||
score = 100;
|
||||
isSick = false;
|
||||
msTimingTxt.color = FlxColor.ORANGE;
|
||||
case "shit":
|
||||
shits++;
|
||||
score = 50;
|
||||
isSick = false; // shitty copypaste on this literally just because im lazy and tired lol!
|
||||
msTimingTxt.color = FlxColor.RED;
|
||||
}
|
||||
reloadHUD(true);
|
||||
|
||||
msTimingTxt.borderStyle = OUTLINE;
|
||||
msTimingTxt.borderSize = 1;
|
||||
msTimingTxt.borderColor = FlxColor.BLACK;
|
||||
msTimingTxt.text = Std.string(Math.round(Conductor.songPosition - strumtime)) + "ms";
|
||||
|
||||
msTimingTxt.size = 20;
|
||||
|
||||
if (msTimingTxt.alpha != 1)
|
||||
msTimingTxt.alpha = 1;
|
||||
|
||||
// Only add the score if you're not on practice mode
|
||||
if (!practiceMode)
|
||||
songScore += score;
|
||||
songScore += score;
|
||||
|
||||
// ludum dare rating system
|
||||
/* if (combo > 60)
|
||||
|
@ -2454,7 +2535,7 @@ class PlayState extends MusicBeatState
|
|||
else
|
||||
{
|
||||
rating.setGraphicSize(Std.int(rating.width * 0.7));
|
||||
rating.antialiasing = true;
|
||||
rating.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
}
|
||||
rating.updateHitbox();
|
||||
|
||||
|
@ -2465,10 +2546,11 @@ class PlayState extends MusicBeatState
|
|||
},
|
||||
startDelay: Conductor.crochet * 0.001
|
||||
});
|
||||
displayCombo();
|
||||
|
||||
displayCombo(true,rating);
|
||||
}
|
||||
|
||||
function displayCombo():Void
|
||||
function displayCombo(flag:Bool = false, rating:FlxSprite = null):Void
|
||||
{
|
||||
var pixelShitPart1:String = "";
|
||||
var pixelShitPart2:String = '';
|
||||
|
@ -2504,7 +2586,7 @@ class PlayState extends MusicBeatState
|
|||
else
|
||||
{
|
||||
comboSpr.setGraphicSize(Std.int(comboSpr.width * 0.7));
|
||||
comboSpr.antialiasing = true;
|
||||
comboSpr.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
}
|
||||
comboSpr.updateHitbox();
|
||||
|
||||
|
@ -2541,7 +2623,7 @@ class PlayState extends MusicBeatState
|
|||
}
|
||||
else
|
||||
{
|
||||
numScore.antialiasing = true;
|
||||
numScore.antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
numScore.setGraphicSize(Std.int(numScore.width * 0.5));
|
||||
}
|
||||
numScore.updateHitbox();
|
||||
|
@ -2553,7 +2635,7 @@ class PlayState extends MusicBeatState
|
|||
|
||||
add(numScore);
|
||||
|
||||
FlxTween.tween(numScore, {alpha: 0}, 0.2, {
|
||||
FlxTween.tween(numScore, {alpha: 1}, 0.2, {
|
||||
onComplete: function(tween:FlxTween)
|
||||
{
|
||||
numScore.destroy();
|
||||
|
@ -2563,11 +2645,29 @@ class PlayState extends MusicBeatState
|
|||
|
||||
daLoop++;
|
||||
}
|
||||
|
||||
if (flag){
|
||||
add(msTimingTxt);
|
||||
|
||||
msTimingTxt.screenCenter();
|
||||
msTimingTxt.x = comboSpr.x + 100;
|
||||
msTimingTxt.y = rating.y + 100;
|
||||
msTimingTxt.acceleration.y = 600;
|
||||
msTimingTxt.velocity.y -= 150;
|
||||
|
||||
msTimingTxt.velocity.x += comboSpr.velocity.x;
|
||||
|
||||
msTimingTxtTween = FlxTween.tween(msTimingTxt, {alpha: 0}, 1, {
|
||||
onComplete: function(twn:FlxTween) {
|
||||
msTimingTxtTween = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var cameraRightSide:Bool = false;
|
||||
|
||||
function cameraMovement()
|
||||
public function cameraMovement()
|
||||
{
|
||||
if (camFollow.x != dad.getMidpoint().x + 150 && !cameraRightSide)
|
||||
{
|
||||
|
@ -2712,7 +2812,7 @@ class PlayState extends MusicBeatState
|
|||
|
||||
if (boyfriend.holdTimer > Conductor.stepCrochet * 4 * 0.001 && !holdArray.contains(true))
|
||||
{
|
||||
if (boyfriend.animation.curAnim.name.startsWith('sing') && !boyfriend.animation.curAnim.name.endsWith('miss'))
|
||||
if (getAnimName(boyfriend).startsWith('sing') && getAnimName(boyfriend).endsWith('miss'))
|
||||
{
|
||||
boyfriend.playAnim('idle');
|
||||
}
|
||||
|
@ -2720,7 +2820,7 @@ class PlayState extends MusicBeatState
|
|||
|
||||
playerStrums.forEach(function(spr:StrumNote)
|
||||
{
|
||||
if (pressArray[spr.noteData] && spr.animation.curAnim.name != 'confirm')
|
||||
if (pressArray[spr.noteData] && getAnimName(spr) != 'confirm')
|
||||
spr.animation.play('pressed');
|
||||
if (!holdArray[spr.noteData])
|
||||
spr.animation.play('static');
|
||||
|
@ -2736,7 +2836,7 @@ class PlayState extends MusicBeatState
|
|||
});
|
||||
}
|
||||
|
||||
function getAnimName(spr:FlxSprite):String
|
||||
public function getAnimName(spr:FlxSprite):String
|
||||
{
|
||||
if (spr == null)
|
||||
return "";
|
||||
|
@ -2805,7 +2905,7 @@ class PlayState extends MusicBeatState
|
|||
function opponentNoteHit(note:Note):Void
|
||||
{
|
||||
var time:Float = 0.15;
|
||||
if(note.isSustainNote && !note.animation.curAnim.name.endsWith('end')) {
|
||||
if(note.isSustainNote && getAnimName(note).endsWith('end')) {
|
||||
time += 0.15;
|
||||
}
|
||||
|
||||
|
@ -2869,6 +2969,8 @@ class PlayState extends MusicBeatState
|
|||
if (!note.isSustainNote)
|
||||
{
|
||||
combo += 1;
|
||||
if (combo > maxcombo)
|
||||
maxcombo = combo;
|
||||
popUpScore(note.strumTime, note);
|
||||
}
|
||||
|
||||
|
@ -3085,14 +3187,14 @@ class PlayState extends MusicBeatState
|
|||
|
||||
if (curBeat % 2 == 0)
|
||||
{
|
||||
if (!boyfriend.animation.curAnim.name.startsWith("sing"))
|
||||
if (getAnimName(boyfriend).startsWith("sing"))
|
||||
boyfriend.playAnim('idle');
|
||||
if (!dad.animation.curAnim.name.startsWith("sing"))
|
||||
if (getAnimName(dad).startsWith("sing"))
|
||||
dad.dance();
|
||||
}
|
||||
else if (dad.curCharacter == 'spooky')
|
||||
{
|
||||
if (!dad.animation.curAnim.name.startsWith("sing"))
|
||||
if (getAnimName(dad).startsWith("sing"))
|
||||
dad.dance();
|
||||
}
|
||||
|
||||
|
@ -3172,6 +3274,7 @@ class PlayState extends MusicBeatState
|
|||
|
||||
function reloadHUD(hop:Bool = false){
|
||||
scoreTxt.text = "Score: " + songScore + " | Misses: " + misses;
|
||||
judgementCounter.text = 'Sicks: ${sicks}\nGoods: ${goods}\nBads: ${bads}\nShits: ${shits}\nCombo: ${combo} / ${maxcombo}';
|
||||
if (hop){
|
||||
if(scoreTxtTween != null) {
|
||||
scoreTxtTween.cancel();
|
||||
|
@ -3183,7 +3286,26 @@ class PlayState extends MusicBeatState
|
|||
scoreTxtTween = null;
|
||||
}
|
||||
});
|
||||
|
||||
if(judgementCounterTween != null) {
|
||||
judgementCounterTween.cancel();
|
||||
}
|
||||
judgementCounter.scale.x = 1.075;
|
||||
judgementCounter.scale.y = 1.075;
|
||||
judgementCounterTween = FlxTween.tween(judgementCounter.scale, {x: 1, y: 1}, 0.2, {
|
||||
onComplete: function(twn:FlxTween) {
|
||||
judgementCounterTween = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
callOnLuas('onUpdateScore', [sicks,goods,bads,shits,misses]);
|
||||
}
|
||||
|
||||
function reloadHealthBarColors(){
|
||||
healthBar.createFilledBar(FlxColor.fromRGB(dad.healthColorArray[0], dad.healthColorArray[1], dad.healthColorArray[2]),
|
||||
FlxColor.fromRGB(boyfriend.healthColorArray[0], boyfriend.healthColorArray[1], boyfriend.healthColorArray[2]));
|
||||
|
||||
healthBar.updateBar();
|
||||
}
|
||||
|
||||
function onWindowFocusOut():Void
|
||||
|
|
|
@ -14,4 +14,5 @@ class Preference {
|
|||
public static var vcombospr = PreferencesMenu.getPref('vcombospr');
|
||||
public static var shaders = PreferencesMenu.getPref('shaders');
|
||||
public static var antialiasing = PreferencesMenu.getPref('antialiasing');
|
||||
public static var judgementCounter = PreferencesMenu.getPref('judgementCounter');
|
||||
}
|
|
@ -10,6 +10,7 @@ using StringTools;
|
|||
typedef SwagSong =
|
||||
{
|
||||
var song:String;
|
||||
var stage:Null<String>;
|
||||
var notes:Array<SwagSection>;
|
||||
var bpm:Float;
|
||||
var needsVoices:Bool;
|
||||
|
@ -23,6 +24,7 @@ typedef SwagSong =
|
|||
class Song
|
||||
{
|
||||
public var song:String;
|
||||
public var stage:Null<String>;
|
||||
public var notes:Array<SwagSection>;
|
||||
public var bpm:Float;
|
||||
public var needsVoices:Bool = true;
|
||||
|
|
|
@ -17,7 +17,6 @@ class StrumNote extends FlxSprite
|
|||
public var direction:Float = 90;//plan on doing scroll directions soon -bb
|
||||
public var downScroll:Bool = false;//plan on doing scroll directions soon -bb
|
||||
public var sustainReduce:Bool = true;
|
||||
public var keyCount:Int = 4;
|
||||
|
||||
private var player:Int;
|
||||
|
||||
|
@ -30,14 +29,13 @@ class StrumNote extends FlxSprite
|
|||
return value;
|
||||
}
|
||||
|
||||
public function new(x:Float, y:Float, leData:Int, player:Int, keyCount:Int = 4) {
|
||||
public function new(x:Float, y:Float, leData:Int, player:Int) {
|
||||
x += Note.swagWidth * leData;
|
||||
colorSwap = new ColorSwap();
|
||||
shader = colorSwap.shader;
|
||||
noteData = leData;
|
||||
this.player = player;
|
||||
this.noteData = leData;
|
||||
this.keyCount = keyCount;
|
||||
super(x, y);
|
||||
|
||||
var skin:String = 'NOTE_assets';
|
||||
|
|
|
@ -52,7 +52,6 @@ import polymod.Polymod;
|
|||
class TitleState extends MusicBeatState
|
||||
{
|
||||
public static var initialized:Bool = false;
|
||||
var startedIntro:Bool;
|
||||
|
||||
var blackScreen:FlxSprite;
|
||||
var credGroup:FlxGroup;
|
||||
|
@ -126,8 +125,6 @@ class TitleState extends MusicBeatState
|
|||
return;
|
||||
}
|
||||
|
||||
startedIntro = false;
|
||||
|
||||
FlxG.game.focusLostFramerate = 60;
|
||||
|
||||
swagShader = new ColorSwap();
|
||||
|
@ -207,10 +204,15 @@ class TitleState extends MusicBeatState
|
|||
|
||||
// netConnection.addEventListener(MouseEvent.MOUSE_DOWN, overlay_onMouseDown);
|
||||
#else
|
||||
new FlxTimer().start(1, function(tmr:FlxTimer)
|
||||
{
|
||||
if (initialized)
|
||||
startIntro();
|
||||
});
|
||||
else
|
||||
{
|
||||
new FlxTimer().start(1, function(tmr:FlxTimer)
|
||||
{
|
||||
startIntro();
|
||||
});
|
||||
}
|
||||
#end
|
||||
|
||||
#if discord_rpc
|
||||
|
@ -278,11 +280,9 @@ class TitleState extends MusicBeatState
|
|||
FlxTransitionableState.defaultTransOut = new TransitionData(FADE, FlxColor.BLACK, 0.7, new FlxPoint(0, 1),
|
||||
{asset: diamond, width: 32, height: 32}, new FlxRect(-200, -200, FlxG.width * 1.4, FlxG.height * 1.4));
|
||||
}
|
||||
|
||||
if (FlxG.sound.music == null || !FlxG.sound.music.playing)
|
||||
{
|
||||
|
||||
if(FlxG.sound.music == null) {
|
||||
FlxG.sound.playMusic(Paths.music('freakyMenu'), 0);
|
||||
FlxG.sound.music.fadeIn(4, 0, 0.7);
|
||||
}
|
||||
|
||||
Conductor.changeBPM(102);
|
||||
|
@ -379,7 +379,6 @@ class TitleState extends MusicBeatState
|
|||
FlxG.sound.music.onComplete = function() FlxG.switchState(new VideoState());
|
||||
*/
|
||||
|
||||
startedIntro = true;
|
||||
// credGroup.add(credTextShit);
|
||||
}
|
||||
|
||||
|
@ -450,8 +449,6 @@ class TitleState extends MusicBeatState
|
|||
|
||||
if (pressedEnter && !transitioning && skippedIntro)
|
||||
{
|
||||
if (FlxG.sound.music != null)
|
||||
FlxG.sound.music.onComplete = null;
|
||||
// netStream.play(Paths.file('music/kickstarterTrailer.mp4'));
|
||||
//NGio.unlockMedal(60960);
|
||||
|
||||
|
@ -498,11 +495,13 @@ class TitleState extends MusicBeatState
|
|||
new FlxTimer().start(1, function(tmr:FlxTimer)
|
||||
{
|
||||
FlxG.switchState(new MainMenuState());
|
||||
closedState = true;
|
||||
});
|
||||
#else
|
||||
new FlxTimer().start(1, function(tmr:FlxTimer)
|
||||
{
|
||||
FlxG.switchState(new MainMenuState());
|
||||
closedState = true;
|
||||
});
|
||||
#end
|
||||
// FlxG.sound.play(Paths.music('titleShoot'), 0.7);
|
||||
|
@ -565,88 +564,85 @@ class TitleState extends MusicBeatState
|
|||
}
|
||||
}
|
||||
|
||||
private var sickBeats:Int = 0; //Basically curBeat but won't be skipped if you hold the tab or resize the screen
|
||||
public static var closedState:Bool = false;
|
||||
var isRainbow:Bool = false;
|
||||
|
||||
override function beatHit()
|
||||
{
|
||||
super.beatHit();
|
||||
|
||||
if (!startedIntro)
|
||||
return ;
|
||||
|
||||
if (skippedIntro)
|
||||
{
|
||||
if(logoBl != null)
|
||||
logoBl.animation.play('bump', true);
|
||||
|
||||
if(gfDance != null) {
|
||||
danceLeft = !danceLeft;
|
||||
|
||||
if (danceLeft)
|
||||
gfDance.animation.play('danceRight');
|
||||
else
|
||||
gfDance.animation.play('danceLeft');
|
||||
}
|
||||
else
|
||||
|
||||
if (!closedState)
|
||||
{
|
||||
FlxG.log.add(curBeat);
|
||||
FlxG.log.add(sickBeats);
|
||||
// if the user is draggin the window some beats will
|
||||
// be missed so this is just to compensate
|
||||
if (curBeat > lastBeat)
|
||||
sickBeats++;
|
||||
switch (sickBeats)
|
||||
{
|
||||
for (i in lastBeat...curBeat)
|
||||
{
|
||||
switch (i + 1)
|
||||
{
|
||||
case 1:
|
||||
createCoolText(['ninjamuffin99', 'phantomArcade', 'kawaisprite', 'evilsk8er']);
|
||||
// credTextShit.visible = true;
|
||||
case 3:
|
||||
addMoreText('present');
|
||||
// credTextShit.text += '\npresent...';
|
||||
// credTextShit.addText();
|
||||
case 4:
|
||||
deleteCoolText();
|
||||
// credTextShit.visible = false;
|
||||
// credTextShit.text = 'In association \nwith';
|
||||
// credTextShit.screenCenter();
|
||||
case 5:
|
||||
createCoolText(['In association', 'with']);
|
||||
case 7:
|
||||
addMoreText('newgrounds');
|
||||
ngSpr.visible = true;
|
||||
// credTextShit.text += '\nNewgrounds';
|
||||
case 8:
|
||||
deleteCoolText();
|
||||
ngSpr.visible = false;
|
||||
// credTextShit.visible = false;
|
||||
case 1:
|
||||
FlxG.sound.playMusic(Paths.music('freakyMenu'), 0);
|
||||
FlxG.sound.music.fadeIn(4, 0, 0.7);
|
||||
case 2:
|
||||
createCoolText(['ninjamuffin99', 'phantomArcade', 'kawaisprite', 'evilsk8er']);
|
||||
// credTextShit.visible = true;
|
||||
case 4:
|
||||
addMoreText('present');
|
||||
// credTextShit.text += '\npresent...';
|
||||
// credTextShit.addText();
|
||||
case 5:
|
||||
deleteCoolText();
|
||||
// credTextShit.visible = false;
|
||||
// credTextShit.text = 'In association \nwith';
|
||||
// credTextShit.screenCenter();
|
||||
case 6:
|
||||
createCoolText(['In association', 'with']);
|
||||
case 8:
|
||||
addMoreText('newgrounds');
|
||||
ngSpr.visible = true;
|
||||
// credTextShit.text += '\nNewgrounds';
|
||||
case 9:
|
||||
deleteCoolText();
|
||||
ngSpr.visible = false;
|
||||
// credTextShit.visible = false;
|
||||
|
||||
// credTextShit.text = 'Shoutouts Tom Fulp';
|
||||
// credTextShit.screenCenter();
|
||||
case 9:
|
||||
createCoolText([curWacky[0]]);
|
||||
// credTextShit.visible = true;
|
||||
case 11:
|
||||
addMoreText(curWacky[1]);
|
||||
// credTextShit.text += '\nlmao';
|
||||
case 12:
|
||||
deleteCoolText();
|
||||
// credTextShit.visible = false;
|
||||
// credTextShit.text = "Friday";
|
||||
// credTextShit.screenCenter();
|
||||
case 13:
|
||||
addMoreText('Friday');
|
||||
// credTextShit.visible = true;
|
||||
case 14:
|
||||
addMoreText('Night');
|
||||
// credTextShit.text += '\nNight';
|
||||
case 15:
|
||||
addMoreText('Funkin'); // credTextShit.text += '\nFunkin';
|
||||
// credTextShit.text = 'Shoutouts Tom Fulp';
|
||||
// credTextShit.screenCenter();
|
||||
case 10:
|
||||
createCoolText([curWacky[0]]);
|
||||
// credTextShit.visible = true;
|
||||
case 12:
|
||||
addMoreText(curWacky[1]);
|
||||
// credTextShit.text += '\nlmao';
|
||||
case 13:
|
||||
deleteCoolText();
|
||||
// credTextShit.visible = false;
|
||||
// credTextShit.text = "Friday";
|
||||
// credTextShit.screenCenter();
|
||||
case 14:
|
||||
addMoreText('Friday');
|
||||
// credTextShit.visible = true;
|
||||
case 15:
|
||||
addMoreText('Night');
|
||||
// credTextShit.text += '\nNight';
|
||||
case 16:
|
||||
addMoreText('Funkin'); // credTextShit.text += '\nFunkin';
|
||||
|
||||
case 16:
|
||||
skipIntro();
|
||||
}
|
||||
}
|
||||
case 17:
|
||||
skipIntro();
|
||||
}
|
||||
lastBeat = curBeat;
|
||||
lastBeat = sickBeats;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,14 +9,16 @@ package openfl.utils;
|
|||
public var DATA = "DATA";
|
||||
public var FONT = "FONT";
|
||||
public var SHARED = "SHARED";
|
||||
public var SONG = "SONGS";
|
||||
public var SONG = "SONG";
|
||||
public var MUSIC = "MUSIC";
|
||||
public var SOUND = "SOUNDS";
|
||||
public var SCRIPT = "SCRIPTS";
|
||||
public var SHADER = "SHADERS";
|
||||
public var WEEK = "WEEKS";
|
||||
public var IMAGE = "IMAGES";
|
||||
public var VIDEO = "VIDEOS";
|
||||
public var SOUND = "SOUND";
|
||||
public var SCRIPT = "SCRIPT";
|
||||
public var SHADER = "SHADER";
|
||||
public var WEEK = "WEEK";
|
||||
public var IMAGE = "IMAGE";
|
||||
public var VIDEO = "VIDEO";
|
||||
public var STAGE = "STAGE";
|
||||
public var CHARACTER = "CHARACTERS";
|
||||
public var MOVIE_CLIP = "MOVIE_CLIP";
|
||||
public var TEXT = "TEXT";
|
||||
}
|
||||
|
|
|
@ -125,7 +125,7 @@ class OptionsState extends MusicBeatState
|
|||
File.saveContent(ModMenu.MOD_PATH + "/modList.txt", rawEnabledMods.trim());
|
||||
ModMenu.enabledMods = rawEnabledMods.trim().split('\n');
|
||||
FlxG.sound.play(Paths.sound('cancelMenu'));
|
||||
FlxG.switchState(new OptionsState());
|
||||
switchPage(Options);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ class PreferencesMenu extends ui.OptionsState.Page
|
|||
createPrefItem('Visible Combo Sprite', 'vcombospr', false);
|
||||
createPrefItem('Shaders', 'shaders', true);
|
||||
createPrefItem('Antialiasing', 'antialiasing', true);
|
||||
createPrefItem('JudgementCounter', 'judgementCounter', true);
|
||||
|
||||
camFollow = new FlxObject(FlxG.width / 2, 0, 140, 70);
|
||||
if (items != null)
|
||||
|
@ -82,6 +83,7 @@ class PreferencesMenu extends ui.OptionsState.Page
|
|||
preferenceCheck('vcombospr', false);
|
||||
preferenceCheck('shaders', true);
|
||||
preferenceCheck('antialiasing', true);
|
||||
preferenceCheck('judgementCounter', true);
|
||||
|
||||
#if muted
|
||||
setPref('master-volume', 0);
|
||||
|
|
Loading…
Reference in New Issue