latest halloween

This commit is contained in:
Brandon 2020-10-31 21:11:14 -04:00
parent 774af58274
commit 4a901c1cb6
46 changed files with 1048 additions and 197 deletions

Binary file not shown.

BIN
art/funkinpause.fla Normal file

Binary file not shown.

BIN
art/funkinpauseyellow.fla Normal file

Binary file not shown.

BIN
art/halloween_bg.fla Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<TextureAtlas imagePath="FNF_main_menu_assets.png">
<!-- Created with Adobe Animate version 20.0.0.17400 -->
<!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="donate basic0000" x="0" y="0" width="444" height="117"/>
<SubTexture name="donate basic0001" x="0" y="0" width="444" height="117"/>
<SubTexture name="donate basic0002" x="0" y="0" width="444" height="117"/>
<SubTexture name="donate basic0003" x="454" y="0" width="444" height="117"/>
<SubTexture name="donate basic0004" x="454" y="0" width="444" height="117"/>
<SubTexture name="donate basic0005" x="454" y="0" width="444" height="117"/>
<SubTexture name="donate basic0006" x="908" y="0" width="444" height="117"/>
<SubTexture name="donate basic0007" x="908" y="0" width="444" height="117"/>
<SubTexture name="donate basic0008" x="908" y="0" width="444" height="117"/>
<SubTexture name="donate white0000" x="1362" y="0" width="590" height="157" frameX="0" frameY="-2" frameWidth="590" frameHeight="159"/>
<SubTexture name="donate white0001" x="0" y="167" width="587" height="154" frameX="-1" frameY="-5" frameWidth="590" frameHeight="159"/>
<SubTexture name="donate white0002" x="597" y="167" width="585" height="155" frameX="-3" frameY="0" frameWidth="590" frameHeight="159"/>
<SubTexture name="freeplay basic0000" x="1192" y="167" width="484" height="122"/>
<SubTexture name="freeplay basic0001" x="1192" y="167" width="484" height="122"/>
<SubTexture name="freeplay basic0002" x="1192" y="167" width="484" height="122"/>
<SubTexture name="freeplay basic0003" x="0" y="332" width="484" height="122"/>
<SubTexture name="freeplay basic0004" x="0" y="332" width="484" height="122"/>
<SubTexture name="freeplay basic0005" x="0" y="332" width="484" height="122"/>
<SubTexture name="freeplay basic0006" x="494" y="332" width="484" height="122"/>
<SubTexture name="freeplay basic0007" x="494" y="332" width="484" height="122"/>
<SubTexture name="freeplay basic0008" x="494" y="332" width="484" height="122"/>
<SubTexture name="freeplay white0000" x="988" y="332" width="627" height="169" frameX="0" frameY="0" frameWidth="635" frameHeight="174"/>
<SubTexture name="freeplay white0001" x="0" y="511" width="632" height="170" frameX="-3" frameY="-1" frameWidth="635" frameHeight="174"/>
<SubTexture name="freeplay white0002" x="642" y="511" width="629" height="173" frameX="-4" frameY="-1" frameWidth="635" frameHeight="174"/>
<SubTexture name="options basic0000" x="1281" y="511" width="487" height="111"/>
<SubTexture name="options basic0001" x="1281" y="511" width="487" height="111"/>
<SubTexture name="options basic0002" x="1281" y="511" width="487" height="111"/>
<SubTexture name="options basic0003" x="0" y="694" width="487" height="111"/>
<SubTexture name="options basic0004" x="0" y="694" width="487" height="111"/>
<SubTexture name="options basic0005" x="0" y="694" width="487" height="111"/>
<SubTexture name="options basic0006" x="497" y="694" width="487" height="111"/>
<SubTexture name="options basic0007" x="497" y="694" width="487" height="111"/>
<SubTexture name="options basic0008" x="497" y="694" width="487" height="111"/>
<SubTexture name="options white0000" x="994" y="694" width="606" height="155" frameX="-2" frameY="-1" frameWidth="610" frameHeight="163"/>
<SubTexture name="options white0001" x="0" y="859" width="607" height="158" frameX="-3" frameY="-1" frameWidth="610" frameHeight="163"/>
<SubTexture name="options white0002" x="617" y="859" width="610" height="163"/>
<SubTexture name="story mode basic0000" x="1237" y="859" width="615" height="122"/>
<SubTexture name="story mode basic0001" x="1237" y="859" width="615" height="122"/>
<SubTexture name="story mode basic0002" x="1237" y="859" width="615" height="122"/>
<SubTexture name="story mode basic0003" x="0" y="1032" width="615" height="122"/>
<SubTexture name="story mode basic0004" x="0" y="1032" width="615" height="122"/>
<SubTexture name="story mode basic0005" x="0" y="1032" width="615" height="122"/>
<SubTexture name="story mode basic0006" x="625" y="1032" width="615" height="122"/>
<SubTexture name="story mode basic0007" x="625" y="1032" width="615" height="122"/>
<SubTexture name="story mode basic0008" x="625" y="1032" width="615" height="122"/>
<SubTexture name="story mode white0000" x="1250" y="1032" width="796" height="173" frameX="0" frameY="-3" frameWidth="796" frameHeight="181"/>
<SubTexture name="story mode white0001" x="0" y="1215" width="794" height="174" frameX="-2" frameY="-2" frameWidth="796" frameHeight="181"/>
<SubTexture name="story mode white0002" x="804" y="1215" width="794" height="181" frameX="0" frameY="0" frameWidth="796" frameHeight="181"/>
</TextureAtlas>

View File

@ -2,14 +2,14 @@
<TextureAtlas imagePath="alphabet.png"> <TextureAtlas imagePath="alphabet.png">
<!-- Created with Adobe Animate version 20.0.0.17400 --> <!-- Created with Adobe Animate version 20.0.0.17400 -->
<!-- http://www.adobe.com/products/animate.html --> <!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="#0000" x="0" y="0" width="39" height="44"/> <SubTexture name="hashtag 0000" x="0" y="0" width="39" height="44"/>
<SubTexture name="#0001" x="0" y="0" width="39" height="44"/> <SubTexture name="hashtag 0001" x="0" y="0" width="39" height="44"/>
<SubTexture name="#0002" x="49" y="0" width="39" height="44"/> <SubTexture name="hashtag 0002" x="49" y="0" width="39" height="44"/>
<SubTexture name="#0003" x="49" y="0" width="39" height="44"/> <SubTexture name="hashtag 0003" x="49" y="0" width="39" height="44"/>
<SubTexture name="$0000" x="98" y="0" width="40" height="64"/> <SubTexture name="dollarsign 0000" x="98" y="0" width="40" height="64"/>
<SubTexture name="$0001" x="98" y="0" width="40" height="64"/> <SubTexture name="dollarsign 0001" x="98" y="0" width="40" height="64"/>
<SubTexture name="$0002" x="148" y="0" width="39" height="63" frameX="0" frameY="0" frameWidth="40" frameHeight="64"/> <SubTexture name="dollarsign 0002" x="148" y="0" width="39" height="63" frameX="0" frameY="0" frameWidth="40" frameHeight="64"/>
<SubTexture name="$0003" x="148" y="0" width="39" height="63" frameX="0" frameY="0" frameWidth="40" frameHeight="64"/> <SubTexture name="dollarsign 0003" x="148" y="0" width="39" height="63" frameX="0" frameY="0" frameWidth="40" frameHeight="64"/>
<SubTexture name="%0000" x="197" y="0" width="46" height="52"/> <SubTexture name="%0000" x="197" y="0" width="46" height="52"/>
<SubTexture name="%0001" x="197" y="0" width="46" height="52"/> <SubTexture name="%0001" x="197" y="0" width="46" height="52"/>
<SubTexture name="%0002" x="253" y="0" width="45" height="52" frameX="0" frameY="0" frameWidth="46" frameHeight="52"/> <SubTexture name="%0002" x="253" y="0" width="45" height="52" frameX="0" frameY="0" frameWidth="46" frameHeight="52"/>
@ -106,10 +106,10 @@
<SubTexture name="A bold0001" x="219" y="141" width="54" height="67"/> <SubTexture name="A bold0001" x="219" y="141" width="54" height="67"/>
<SubTexture name="A bold0002" x="283" y="141" width="54" height="67"/> <SubTexture name="A bold0002" x="283" y="141" width="54" height="67"/>
<SubTexture name="A bold0003" x="283" y="141" width="54" height="67"/> <SubTexture name="A bold0003" x="283" y="141" width="54" height="67"/>
<SubTexture name="A captial0000" x="347" y="141" width="45" height="59"/> <SubTexture name="A capital0000" x="347" y="141" width="45" height="59"/>
<SubTexture name="A captial0001" x="347" y="141" width="45" height="59"/> <SubTexture name="A capital0001" x="347" y="141" width="45" height="59"/>
<SubTexture name="A captial0002" x="402" y="141" width="45" height="59"/> <SubTexture name="A capital0002" x="402" y="141" width="45" height="59"/>
<SubTexture name="A captial0003" x="402" y="141" width="45" height="59"/> <SubTexture name="A capital0003" x="402" y="141" width="45" height="59"/>
<SubTexture name="B bold0000" x="457" y="141" width="46" height="70"/> <SubTexture name="B bold0000" x="457" y="141" width="46" height="70"/>
<SubTexture name="B bold0001" x="457" y="141" width="46" height="70"/> <SubTexture name="B bold0001" x="457" y="141" width="46" height="70"/>
<SubTexture name="B bold0002" x="513" y="141" width="46" height="70"/> <SubTexture name="B bold0002" x="513" y="141" width="46" height="70"/>
@ -178,10 +178,10 @@
<SubTexture name="J bold0001" x="145" y="301" width="54" height="70"/> <SubTexture name="J bold0001" x="145" y="301" width="54" height="70"/>
<SubTexture name="J bold0002" x="209" y="301" width="54" height="70"/> <SubTexture name="J bold0002" x="209" y="301" width="54" height="70"/>
<SubTexture name="J bold0003" x="209" y="301" width="54" height="70"/> <SubTexture name="J bold0003" x="209" y="301" width="54" height="70"/>
<SubTexture name="J captial0000" x="273" y="301" width="39" height="54"/> <SubTexture name="J capital0000" x="273" y="301" width="39" height="54"/>
<SubTexture name="J captial0001" x="273" y="301" width="39" height="54"/> <SubTexture name="J capital0001" x="273" y="301" width="39" height="54"/>
<SubTexture name="J captial0002" x="322" y="301" width="39" height="54"/> <SubTexture name="J capital0002" x="322" y="301" width="39" height="54"/>
<SubTexture name="J captial0003" x="322" y="301" width="39" height="54"/> <SubTexture name="J capital0003" x="322" y="301" width="39" height="54"/>
<SubTexture name="K bold0000" x="371" y="301" width="44" height="69"/> <SubTexture name="K bold0000" x="371" y="301" width="44" height="69"/>
<SubTexture name="K bold0001" x="371" y="301" width="44" height="69"/> <SubTexture name="K bold0001" x="371" y="301" width="44" height="69"/>
<SubTexture name="K bold0002" x="425" y="301" width="44" height="69"/> <SubTexture name="K bold0002" x="425" y="301" width="44" height="69"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@ -2,78 +2,104 @@
<TextureAtlas imagePath="campaign_menu_UI_characters.png"> <TextureAtlas imagePath="campaign_menu_UI_characters.png">
<!-- Created with Adobe Animate version 20.0.0.17400 --> <!-- Created with Adobe Animate version 20.0.0.17400 -->
<!-- http://www.adobe.com/products/animate.html --> <!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="BF idle dance white0000" x="0" y="0" width="406" height="392" frameX="-1" frameY="-20" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0000" x="0" y="0" width="395" height="416" frameX="0" frameY="0" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0001" x="0" y="0" width="406" height="392" frameX="-1" frameY="-20" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0001" x="0" y="0" width="395" height="416" frameX="0" frameY="0" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0002" x="416" y="0" width="408" height="393" frameX="0" frameY="-19" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0002" x="405" y="0" width="413" height="410" frameX="-1" frameY="-8" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0003" x="416" y="0" width="408" height="393" frameX="0" frameY="-19" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0003" x="405" y="0" width="413" height="410" frameX="-1" frameY="-8" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0004" x="834" y="0" width="405" height="398" frameX="-3" frameY="-14" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0004" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0005" x="834" y="0" width="405" height="398" frameX="-3" frameY="-14" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0005" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0006" x="1249" y="0" width="410" height="411" frameX="-1" frameY="-1" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0006" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0007" x="1249" y="0" width="410" height="411" frameX="-1" frameY="-1" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0007" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0008" x="1669" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0008" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0009" x="1669" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0009" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0010" x="1669" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0010" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0011" x="1669" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0011" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0012" x="1669" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0012" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF idle dance white0013" x="1669" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/> <SubTexture name="BF HEY!!0013" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0000" x="2087" y="0" width="429" height="759" frameX="0" frameY="-8" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0014" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0001" x="2087" y="0" width="429" height="759" frameX="0" frameY="-8" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0015" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0002" x="2526" y="0" width="424" height="757" frameX="-2" frameY="-10" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0016" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0003" x="2526" y="0" width="424" height="757" frameX="-2" frameY="-10" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0017" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0004" x="2960" y="0" width="423" height="759" frameX="-3" frameY="-8" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0018" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0005" x="2960" y="0" width="423" height="759" frameX="-3" frameY="-8" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0019" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0006" x="3393" y="0" width="419" height="766" frameX="-5" frameY="-1" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0020" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0007" x="3393" y="0" width="419" height="766" frameX="-5" frameY="-1" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0021" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0008" x="3822" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0022" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0009" x="3822" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0023" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0010" x="4251" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0024" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0011" x="4251" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/> <SubTexture name="BF HEY!!0025" x="828" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="Dad idle dance BLACK LINE0012" x="4251" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/> <SubTexture name="BF idle dance white0000" x="1252" y="0" width="406" height="392" frameX="-1" frameY="-20" frameWidth="411" frameHeight="412"/>
<SubTexture name="Dad idle dance BLACK LINE0013" x="4251" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/> <SubTexture name="BF idle dance white0001" x="1252" y="0" width="406" height="392" frameX="-1" frameY="-20" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0000" x="4680" y="0" width="699" height="634" frameX="-2" frameY="-14" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0002" x="1668" y="0" width="408" height="393" frameX="0" frameY="-19" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0001" x="5389" y="0" width="703" height="634" frameX="0" frameY="-14" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0003" x="1668" y="0" width="408" height="393" frameX="0" frameY="-19" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0002" x="6102" y="0" width="703" height="632" frameX="0" frameY="-16" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0004" x="2086" y="0" width="405" height="398" frameX="-3" frameY="-14" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0003" x="6815" y="0" width="699" height="632" frameX="-2" frameY="-16" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0005" x="2086" y="0" width="405" height="398" frameX="-3" frameY="-14" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0004" x="0" y="777" width="699" height="635" frameX="-2" frameY="-13" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0006" x="2501" y="0" width="410" height="411" frameX="-1" frameY="-1" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0005" x="709" y="777" width="699" height="635" frameX="-2" frameY="-13" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0007" x="2501" y="0" width="410" height="411" frameX="-1" frameY="-1" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0006" x="1418" y="777" width="699" height="637" frameX="-2" frameY="-11" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0008" x="2921" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0007" x="2127" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0009" x="2921" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0008" x="2127" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0010" x="2921" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0009" x="2127" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0011" x="2921" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0010" x="2836" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0012" x="2921" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0011" x="2836" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/> <SubTexture name="BF idle dance white0013" x="2921" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="GF Dancing Beat WHITE0012" x="2836" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0000" x="3339" y="0" width="429" height="759" frameX="0" frameY="-8" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0013" x="3545" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0001" x="3339" y="0" width="429" height="759" frameX="0" frameY="-8" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0014" x="3545" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0002" x="3778" y="0" width="424" height="757" frameX="-2" frameY="-10" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0015" x="4254" y="777" width="699" height="636" frameX="-2" frameY="-12" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0003" x="3778" y="0" width="424" height="757" frameX="-2" frameY="-10" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0016" x="4963" y="777" width="703" height="636" frameX="0" frameY="-12" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0004" x="4212" y="0" width="423" height="759" frameX="-3" frameY="-8" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0017" x="5676" y="777" width="703" height="636" frameX="0" frameY="-12" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0005" x="4212" y="0" width="423" height="759" frameX="-3" frameY="-8" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0018" x="6389" y="777" width="699" height="636" frameX="-2" frameY="-12" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0006" x="4645" y="0" width="419" height="766" frameX="-5" frameY="-1" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0019" x="7098" y="777" width="699" height="637" frameX="-2" frameY="-11" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0007" x="4645" y="0" width="419" height="766" frameX="-5" frameY="-1" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0020" x="0" y="1435" width="699" height="637" frameX="-2" frameY="-11" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0008" x="5074" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0021" x="709" y="1435" width="699" height="638" frameX="-2" frameY="-10" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0009" x="5074" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0022" x="1418" y="1435" width="699" height="643" frameX="-2" frameY="-5" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0010" x="5503" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0023" x="1418" y="1435" width="699" height="643" frameX="-2" frameY="-5" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0011" x="5503" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0024" x="1418" y="1435" width="699" height="643" frameX="-2" frameY="-5" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0012" x="5503" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0025" x="2127" y="1435" width="699" height="642" frameX="-2" frameY="-6" frameWidth="703" frameHeight="648"/> <SubTexture name="Dad idle dance BLACK LINE0013" x="5503" y="0" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
<SubTexture name="GF Dancing Beat WHITE0026" x="2127" y="1435" width="699" height="642" frameX="-2" frameY="-6" frameWidth="703" frameHeight="648"/> <SubTexture name="GF Dancing Beat WHITE0000" x="5932" y="0" width="699" height="634" frameX="-2" frameY="-14" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0027" x="2127" y="1435" width="699" height="642" frameX="-2" frameY="-6" frameWidth="703" frameHeight="648"/> <SubTexture name="GF Dancing Beat WHITE0001" x="6641" y="0" width="703" height="634" frameX="0" frameY="-14" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0028" x="2836" y="1435" width="699" height="642" frameX="-2" frameY="-6" frameWidth="703" frameHeight="648"/> <SubTexture name="GF Dancing Beat WHITE0002" x="7354" y="0" width="703" height="632" frameX="0" frameY="-16" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0029" x="2836" y="1435" width="699" height="642" frameX="-2" frameY="-6" frameWidth="703" frameHeight="648"/> <SubTexture name="GF Dancing Beat WHITE0003" x="0" y="777" width="699" height="632" frameX="-2" frameY="-16" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0000" x="3545" y="1435" width="381" height="549" frameX="-50" frameY="0" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0004" x="709" y="777" width="699" height="635" frameX="-2" frameY="-13" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0001" x="3545" y="1435" width="381" height="549" frameX="-50" frameY="0" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0005" x="1418" y="777" width="699" height="635" frameX="-2" frameY="-13" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0002" x="3936" y="1435" width="379" height="541" frameX="-55" frameY="-8" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0006" x="2127" y="777" width="699" height="637" frameX="-2" frameY="-11" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0003" x="3936" y="1435" width="379" height="541" frameX="-55" frameY="-8" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0007" x="2836" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0004" x="4325" y="1435" width="357" height="484" frameX="-79" frameY="-61" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0008" x="2836" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0005" x="4325" y="1435" width="357" height="484" frameX="-79" frameY="-61" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0009" x="2836" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0006" x="4692" y="1435" width="354" height="494" frameX="-78" frameY="-52" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0010" x="3545" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0007" x="4692" y="1435" width="354" height="494" frameX="-78" frameY="-52" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0011" x="3545" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0008" x="5056" y="1435" width="492" height="532" frameX="0" frameY="-16" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0012" x="3545" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0009" x="5056" y="1435" width="492" height="532" frameX="0" frameY="-16" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0013" x="4254" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0010" x="5558" y="1435" width="481" height="524" frameX="-7" frameY="-20" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0014" x="4254" y="777" width="699" height="648" frameX="-2" frameY="0" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0011" x="5558" y="1435" width="481" height="524" frameX="-7" frameY="-20" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0015" x="4963" y="777" width="699" height="636" frameX="-2" frameY="-12" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0012" x="4325" y="1435" width="357" height="484" frameX="-79" frameY="-61" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0016" x="5672" y="777" width="703" height="636" frameX="0" frameY="-12" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0013" x="4325" y="1435" width="357" height="484" frameX="-79" frameY="-61" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0017" x="6385" y="777" width="703" height="636" frameX="0" frameY="-12" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0014" x="4692" y="1435" width="354" height="494" frameX="-78" frameY="-52" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0018" x="7098" y="777" width="699" height="636" frameX="-2" frameY="-12" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0015" x="4692" y="1435" width="354" height="494" frameX="-78" frameY="-52" frameWidth="492" frameHeight="549"/> <SubTexture name="GF Dancing Beat WHITE0019" x="0" y="1435" width="699" height="637" frameX="-2" frameY="-11" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0020" x="709" y="1435" width="699" height="637" frameX="-2" frameY="-11" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0021" x="1418" y="1435" width="699" height="638" frameX="-2" frameY="-10" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0022" x="2127" y="1435" width="699" height="643" frameX="-2" frameY="-5" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0023" x="2127" y="1435" width="699" height="643" frameX="-2" frameY="-5" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0024" x="2127" y="1435" width="699" height="643" frameX="-2" frameY="-5" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0025" x="2836" y="1435" width="699" height="642" frameX="-2" frameY="-6" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0026" x="2836" y="1435" width="699" height="642" frameX="-2" frameY="-6" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0027" x="2836" y="1435" width="699" height="642" frameX="-2" frameY="-6" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0028" x="3545" y="1435" width="699" height="642" frameX="-2" frameY="-6" frameWidth="703" frameHeight="648"/>
<SubTexture name="GF Dancing Beat WHITE0029" x="3545" y="1435" width="699" height="642" frameX="-2" frameY="-6" frameWidth="703" frameHeight="648"/>
<SubTexture name="spooky dance idle BLACK LINES0000" x="4254" y="1435" width="381" height="549" frameX="-50" frameY="0" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0001" x="4254" y="1435" width="381" height="549" frameX="-50" frameY="0" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0002" x="4645" y="1435" width="379" height="541" frameX="-55" frameY="-8" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0003" x="4645" y="1435" width="379" height="541" frameX="-55" frameY="-8" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0004" x="5034" y="1435" width="357" height="484" frameX="-79" frameY="-61" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0005" x="5034" y="1435" width="357" height="484" frameX="-79" frameY="-61" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0006" x="5401" y="1435" width="354" height="494" frameX="-78" frameY="-52" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0007" x="5401" y="1435" width="354" height="494" frameX="-78" frameY="-52" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0008" x="5765" y="1435" width="492" height="532" frameX="0" frameY="-16" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0009" x="5765" y="1435" width="492" height="532" frameX="0" frameY="-16" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0010" x="6267" y="1435" width="481" height="524" frameX="-7" frameY="-20" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0011" x="6267" y="1435" width="481" height="524" frameX="-7" frameY="-20" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0012" x="5034" y="1435" width="357" height="484" frameX="-79" frameY="-61" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0013" x="5034" y="1435" width="357" height="484" frameX="-79" frameY="-61" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0014" x="5401" y="1435" width="354" height="494" frameX="-78" frameY="-52" frameWidth="492" frameHeight="549"/>
<SubTexture name="spooky dance idle BLACK LINES0015" x="5401" y="1435" width="354" height="494" frameX="-78" frameY="-52" frameWidth="492" frameHeight="549"/>
</TextureAtlas> </TextureAtlas>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<TextureAtlas imagePath="halloween_bg.png">
<!-- Created with Adobe Animate version 20.0.0.17400 -->
<!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="halloweem bg0000" x="0" y="0" width="2114" height="1075"/>
<SubTexture name="halloweem bg lightning strike0000" x="2124" y="0" width="2114" height="1075" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0001" x="4248" y="0" width="2114" height="1000" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0002" x="0" y="1085" width="2114" height="1090"/>
<SubTexture name="halloweem bg lightning strike0003" x="2124" y="1085" width="2114" height="1081" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0004" x="4248" y="1085" width="2114" height="1081" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0005" x="4248" y="1085" width="2114" height="1081" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0006" x="0" y="2185" width="2114" height="1081" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0007" x="2124" y="2185" width="2114" height="1081" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0008" x="4248" y="2185" width="2114" height="1080" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0009" x="0" y="3276" width="2114" height="1080" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0010" x="2124" y="3276" width="2114" height="1080" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0011" x="4248" y="3276" width="2114" height="1080" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0012" x="0" y="4366" width="2114" height="1080" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0013" x="2124" y="4366" width="2114" height="1080" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0014" x="4248" y="4366" width="2114" height="1080" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0015" x="0" y="5456" width="2114" height="1079" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0016" x="2124" y="5456" width="2114" height="1079" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0017" x="4248" y="5456" width="2114" height="1079" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0018" x="0" y="6545" width="2114" height="1079" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0019" x="2124" y="6545" width="2114" height="1078" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0020" x="4248" y="6545" width="2114" height="1078" frameX="0" frameY="0" frameWidth="2114" frameHeight="1090"/>
<SubTexture name="halloweem bg lightning strike0029" x="0" y="0" width="2114" height="1075"/>
</TextureAtlas>

BIN
assets/images/menuBG.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
assets/sounds/GF_1.mp3 Normal file

Binary file not shown.

BIN
assets/sounds/GF_1.ogg Normal file

Binary file not shown.

BIN
assets/sounds/GF_2.mp3 Normal file

Binary file not shown.

BIN
assets/sounds/GF_2.ogg Normal file

Binary file not shown.

BIN
assets/sounds/GF_3.mp3 Normal file

Binary file not shown.

BIN
assets/sounds/GF_3.ogg Normal file

Binary file not shown.

BIN
assets/sounds/GF_4.mp3 Normal file

Binary file not shown.

BIN
assets/sounds/GF_4.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -34,20 +34,26 @@ class Alphabet extends FlxSpriteGroup
var splitWords:Array<String> = []; var splitWords:Array<String> = [];
var isBold:Bool = false;
public function new(x:Float, y:Float, text:String = "", ?bold:Bool = false, typed:Bool = false) public function new(x:Float, y:Float, text:String = "", ?bold:Bool = false, typed:Bool = false)
{ {
super(x, y); super(x, y);
_finalText = text; _finalText = text;
this.text = text; this.text = text;
isBold = bold;
if (typed) if (text != "")
{ {
startTypedText(); if (typed)
} {
else startTypedText();
{ }
addText(); else
{
addText();
}
} }
} }
@ -55,6 +61,7 @@ class Alphabet extends FlxSpriteGroup
{ {
doSplitWords(); doSplitWords();
var xPos:Float = 0;
for (character in splitWords) for (character in splitWords)
{ {
// if (character.fastCodeAt() == " ") // if (character.fastCodeAt() == " ")
@ -68,10 +75,9 @@ class Alphabet extends FlxSpriteGroup
if (AlphaCharacter.alphabet.contains(character.toLowerCase())) if (AlphaCharacter.alphabet.contains(character.toLowerCase()))
{ {
var xPos:Float = 0;
if (lastSprite != null) if (lastSprite != null)
{ {
xPos = lastSprite.x + lastSprite.frameWidth; xPos = lastSprite.x + lastSprite.width;
} }
if (lastWasSpace) if (lastWasSpace)
@ -82,7 +88,14 @@ class Alphabet extends FlxSpriteGroup
// var letter:AlphaCharacter = new AlphaCharacter(30 * loopNum, 0); // var letter:AlphaCharacter = new AlphaCharacter(30 * loopNum, 0);
var letter:AlphaCharacter = new AlphaCharacter(xPos, 0); var letter:AlphaCharacter = new AlphaCharacter(xPos, 0);
letter.createBold(character);
if (isBold)
letter.createBold(character);
else
{
letter.createLetter(character);
}
add(letter); add(letter);
lastSprite = letter; lastSprite = letter;
@ -97,6 +110,8 @@ class Alphabet extends FlxSpriteGroup
splitWords = _finalText.split(""); splitWords = _finalText.split("");
} }
public var personTalking:String = 'gf';
public function startTypedText():Void public function startTypedText():Void
{ {
_finalText = text; _finalText = text;
@ -106,34 +121,79 @@ class Alphabet extends FlxSpriteGroup
var loopNum:Int = 0; var loopNum:Int = 0;
var xPos:Float = 0;
var curRow:Int = 0;
new FlxTimer().start(0.05, function(tmr:FlxTimer) new FlxTimer().start(0.05, function(tmr:FlxTimer)
{ {
var xPos:Float = 0;
// trace(_finalText.fastCodeAt(loopNum) + " " + _finalText.charAt(loopNum)); // trace(_finalText.fastCodeAt(loopNum) + " " + _finalText.charAt(loopNum));
if (_finalText.fastCodeAt(loopNum) == "\n".code) if (_finalText.fastCodeAt(loopNum) == "\n".code)
{ {
yMulti += 1; yMulti += 1;
xPosResetted = true; xPosResetted = true;
// xPos = 0; xPos = 0;
curRow += 1;
} }
if (AlphaCharacter.alphabet.contains(splitWords[loopNum].toLowerCase())) if (splitWords[loopNum] == " ")
{
lastWasSpace = true;
}
var isNumber:Bool = AlphaCharacter.numbers.contains(splitWords[loopNum]);
var isSymbol:Bool = AlphaCharacter.symbols.contains(splitWords[loopNum]);
if (AlphaCharacter.alphabet.contains(splitWords[loopNum].toLowerCase()) || isNumber || isSymbol)
{ {
if (lastSprite != null && !xPosResetted) if (lastSprite != null && !xPosResetted)
{ {
xPos = lastSprite.x + lastSprite.frameWidth - 40; lastSprite.updateHitbox();
xPos += lastSprite.width + 3;
// if (isBold)
// xPos -= 80;
} }
else else
{ {
xPosResetted = false; xPosResetted = false;
} }
if (lastWasSpace)
{
xPos += 20;
lastWasSpace = false;
}
// trace(_finalText.fastCodeAt(loopNum) + " " + _finalText.charAt(loopNum)); // trace(_finalText.fastCodeAt(loopNum) + " " + _finalText.charAt(loopNum));
// var letter:AlphaCharacter = new AlphaCharacter(30 * loopNum, 0); // var letter:AlphaCharacter = new AlphaCharacter(30 * loopNum, 0);
var letter:AlphaCharacter = new AlphaCharacter(xPos, 55 * yMulti); var letter:AlphaCharacter = new AlphaCharacter(xPos, 55 * yMulti);
letter.createBold(splitWords[loopNum]); letter.row = curRow;
if (isBold)
{
letter.createBold(splitWords[loopNum]);
}
else
{
if (isNumber)
{
letter.createNumber(splitWords[loopNum]);
}
else if (isSymbol)
{
letter.createSymbol(splitWords[loopNum]);
}
else
{
letter.createLetter(splitWords[loopNum]);
}
letter.x += 90;
}
if (FlxG.random.bool(40))
{
var daSound:String = "GF_";
FlxG.sound.play('assets/sounds/' + daSound + FlxG.random.int(1, 4) + TitleState.soundExt, 0.4);
}
add(letter); add(letter);
lastSprite = letter; lastSprite = letter;
@ -141,7 +201,7 @@ class Alphabet extends FlxSpriteGroup
loopNum += 1; loopNum += 1;
tmr.time = FlxG.random.float(0.03, 0.09); tmr.time = FlxG.random.float(0.04, 0.09);
}, splitWords.length); }, splitWords.length);
} }
@ -155,8 +215,11 @@ class AlphaCharacter extends FlxSprite
{ {
public static var alphabet:String = "abcdefghijklmnopqrstuvwxyz"; public static var alphabet:String = "abcdefghijklmnopqrstuvwxyz";
var numbers:String = "1234567890"; public static var numbers:String = "1234567890";
var symbols:String = "|~#$%()*+-:;<=>@[]^_";
public static var symbols:String = "|~#$%()*+-:;<=>@[]^_.,'!?";
public var row:Int = 0;
public function new(x:Float, y:Float) public function new(x:Float, y:Float)
{ {
@ -184,5 +247,42 @@ class AlphaCharacter extends FlxSprite
animation.addByPrefix(letter, letter + " " + letterCase, 24); animation.addByPrefix(letter, letter + " " + letterCase, 24);
animation.play(letter); animation.play(letter);
updateHitbox();
FlxG.log.add('the row' + row);
y = (110 - height);
y += row * 60;
}
public function createNumber(letter:String):Void
{
animation.addByPrefix(letter, letter, 24);
animation.play(letter);
updateHitbox();
}
public function createSymbol(letter:String)
{
switch (letter)
{
case '.':
animation.addByPrefix(letter, 'period', 24);
animation.play(letter);
y += 50;
case "'":
animation.addByPrefix(letter, 'apostraphie', 24);
animation.play(letter);
y -= 0;
case "?":
animation.addByPrefix(letter, 'question mark', 24);
animation.play(letter);
case "!":
animation.addByPrefix(letter, 'exclamation point', 24);
animation.play(letter);
}
updateHitbox();
} }
} }

View File

@ -18,6 +18,7 @@ import flixel.group.FlxGroup.FlxTypedGroup;
import flixel.group.FlxGroup; import flixel.group.FlxGroup;
import flixel.math.FlxMath; import flixel.math.FlxMath;
import flixel.math.FlxPoint; import flixel.math.FlxPoint;
import flixel.system.FlxSound;
import flixel.text.FlxText; import flixel.text.FlxText;
import flixel.ui.FlxButton; import flixel.ui.FlxButton;
import flixel.ui.FlxSpriteButton; import flixel.ui.FlxSpriteButton;
@ -71,6 +72,8 @@ class ChartingState extends MusicBeatState
var tempBpm:Int = 0; var tempBpm:Int = 0;
var vocals:FlxSound;
override function create() override function create()
{ {
gridBG = FlxGridOverlay.create(GRID_SIZE, GRID_SIZE, GRID_SIZE * 8, GRID_SIZE * 16); gridBG = FlxGridOverlay.create(GRID_SIZE, GRID_SIZE, GRID_SIZE * 8, GRID_SIZE * 16);
@ -276,12 +279,24 @@ class ChartingState extends MusicBeatState
function loadSong(daSong:String):Void function loadSong(daSong:String):Void
{ {
if (FlxG.sound.music != null) if (FlxG.sound.music != null)
{
FlxG.sound.music.stop(); FlxG.sound.music.stop();
// vocals.stop();
}
FlxG.sound.playMusic('assets/music/' + daSong + "_Inst" + TitleState.soundExt, 0.6);
// WONT WORK FOR TUTORIAL! REDO LATER
vocals = new FlxSound().loadEmbedded("assets/music/" + daSong + "_Voices" + TitleState.soundExt);
FlxG.sound.list.add(vocals);
FlxG.sound.playMusic('assets/music/' + daSong + TitleState.soundExt, 0.6);
FlxG.sound.music.pause(); FlxG.sound.music.pause();
vocals.pause();
FlxG.sound.music.onComplete = function() FlxG.sound.music.onComplete = function()
{ {
vocals.pause();
vocals.time = 0;
FlxG.sound.music.pause(); FlxG.sound.music.pause();
FlxG.sound.music.time = 0; FlxG.sound.music.time = 0;
}; };
@ -430,6 +445,7 @@ class ChartingState extends MusicBeatState
{ {
PlayState.SONG = _song; PlayState.SONG = _song;
FlxG.sound.music.stop(); FlxG.sound.music.stop();
vocals.stop();
FlxG.switchState(new PlayState()); FlxG.switchState(new PlayState());
} }
@ -440,9 +456,13 @@ class ChartingState extends MusicBeatState
if (FlxG.sound.music.playing) if (FlxG.sound.music.playing)
{ {
FlxG.sound.music.pause(); FlxG.sound.music.pause();
vocals.pause();
} }
else else
{
vocals.play();
FlxG.sound.music.play(); FlxG.sound.music.play();
}
} }
if (FlxG.keys.justPressed.R) if (FlxG.keys.justPressed.R)
@ -456,6 +476,7 @@ class ChartingState extends MusicBeatState
if (FlxG.keys.pressed.W || FlxG.keys.pressed.S) if (FlxG.keys.pressed.W || FlxG.keys.pressed.S)
{ {
FlxG.sound.music.pause(); FlxG.sound.music.pause();
vocals.pause();
var daTime:Float = 700 * FlxG.elapsed; var daTime:Float = 700 * FlxG.elapsed;
@ -465,6 +486,8 @@ class ChartingState extends MusicBeatState
} }
else else
FlxG.sound.music.time += daTime; FlxG.sound.music.time += daTime;
vocals.time = FlxG.sound.music.time;
} }
} }
@ -497,6 +520,7 @@ class ChartingState extends MusicBeatState
if (updateMusic) if (updateMusic)
{ {
FlxG.sound.music.pause(); FlxG.sound.music.pause();
vocals.pause();
var daNum:Int = 0; var daNum:Int = 0;
var daLength:Int = 0; var daLength:Int = 0;
@ -507,6 +531,7 @@ class ChartingState extends MusicBeatState
} }
FlxG.sound.music.time = (daLength - (_song.notes[sec].lengthInSteps)) * Conductor.stepCrochet; FlxG.sound.music.time = (daLength - (_song.notes[sec].lengthInSteps)) * Conductor.stepCrochet;
vocals.time = FlxG.sound.music.time;
updateCurStep(); updateCurStep();
} }

View File

@ -11,7 +11,8 @@ import flixel.input.gamepad.FlxGamepadButton;
import flixel.input.gamepad.FlxGamepadInputID; import flixel.input.gamepad.FlxGamepadInputID;
import flixel.input.keyboard.FlxKey; import flixel.input.keyboard.FlxKey;
@:enum abstract Action(String) to String from String #if (haxe >= "4.0.0")
enum abstract Action(String) to String from String
{ {
var UP = "up"; var UP = "up";
var LEFT = "left"; var LEFT = "left";
@ -30,6 +31,28 @@ import flixel.input.keyboard.FlxKey;
var PAUSE = "pause"; var PAUSE = "pause";
var RESET = "reset"; var RESET = "reset";
} }
#else
@:enum
abstract Action(String) to String from String
{
var UP = "up";
var LEFT = "left";
var RIGHT = "right";
var DOWN = "down";
var UP_P = "up-press";
var LEFT_P = "left-press";
var RIGHT_P = "right-press";
var DOWN_P = "down-press";
var UP_R = "up-release";
var LEFT_R = "left-release";
var RIGHT_R = "right-release";
var DOWN_R = "down-release";
var ACCEPT = "accept";
var BACK = "back";
var PAUSE = "pause";
var RESET = "reset";
}
#end
enum Device enum Device
{ {
@ -402,9 +425,9 @@ class Controls extends FlxActionSet
inline bindKeys(Control.DOWN, [S, FlxKey.DOWN]); inline bindKeys(Control.DOWN, [S, FlxKey.DOWN]);
inline bindKeys(Control.LEFT, [A, FlxKey.LEFT]); inline bindKeys(Control.LEFT, [A, FlxKey.LEFT]);
inline bindKeys(Control.RIGHT, [D, FlxKey.RIGHT]); inline bindKeys(Control.RIGHT, [D, FlxKey.RIGHT]);
inline bindKeys(Control.ACCEPT, [Z, SPACE]); inline bindKeys(Control.ACCEPT, [Z, SPACE, ENTER]);
inline bindKeys(Control.BACK, [X]); inline bindKeys(Control.BACK, [BACKSPACE, ESCAPE]);
inline bindKeys(Control.PAUSE, [P, ENTER]); inline bindKeys(Control.PAUSE, [P, ENTER, ESCAPE]);
inline bindKeys(Control.RESET, [R]); inline bindKeys(Control.RESET, [R]);
case Duo(true): case Duo(true):
inline bindKeys(Control.UP, [W]); inline bindKeys(Control.UP, [W]);

86
source/DialogueBox.hx Normal file
View File

@ -0,0 +1,86 @@
package;
import flixel.FlxG;
import flixel.FlxSprite;
import flixel.graphics.frames.FlxAtlasFrames;
import flixel.group.FlxSpriteGroup;
import flixel.input.FlxKeyManager;
class DialogueBox extends FlxSpriteGroup
{
var box:FlxSprite;
var dialogue:Alphabet;
var dialogueList:Array<String> = [];
public var finishThing:Void->Void;
public function new(talkingRight:Bool = true, ?dialogueList:Array<String>)
{
super();
box = new FlxSprite(40);
box.frames = FlxAtlasFrames.fromSparrow(AssetPaths.speech_bubble_talking__png, AssetPaths.speech_bubble_talking__xml);
box.animation.addByPrefix('normalOpen', 'Speech Bubble Normal Open', 24, false);
box.animation.addByPrefix('normal', 'speech bubble normal', 24);
box.animation.play('normalOpen');
add(box);
if (!talkingRight)
{
box.flipX = true;
}
dialogue = new Alphabet(0, 80, "", false, true);
// dialogue.x = 90;
add(dialogue);
this.dialogueList = dialogueList;
}
var dialogueOpened:Bool = false;
var dialogueStarted:Bool = false;
override function update(elapsed:Float)
{
if (box.animation.curAnim != null)
{
if (box.animation.curAnim.name == 'normalOpen' && box.animation.curAnim.finished)
{
box.animation.play('normal');
dialogueOpened = true;
}
}
if (dialogueOpened && !dialogueStarted)
{
startDialogue();
dialogueStarted = true;
}
if (FlxG.keys.justPressed.SPACE)
{
remove(dialogue);
if (dialogueList[1] == null)
{
finishThing();
kill();
}
else
{
dialogueList.remove(dialogueList[0]);
startDialogue();
}
}
super.update(elapsed);
}
function startDialogue():Void
{
var theDialog:Alphabet = new Alphabet(0, 70, dialogueList[0], false, true);
dialogue = theDialog;
add(theDialog);
}
}

View File

@ -87,6 +87,7 @@ class FreeplayState extends MusicBeatState
if (accepted) if (accepted)
{ {
PlayState.SONG = Song.loadFromJson(songs[curSelected].toLowerCase()); PlayState.SONG = Song.loadFromJson(songs[curSelected].toLowerCase());
PlayState.isStoryMode = false;
FlxG.switchState(new PlayState()); FlxG.switchState(new PlayState());
FlxG.sound.music.stop(); FlxG.sound.music.stop();
} }
@ -95,6 +96,7 @@ class FreeplayState extends MusicBeatState
if (gamepad.anyJustPressed(["B"])) //"B" is swapped with "A" on Switch if (gamepad.anyJustPressed(["B"])) //"B" is swapped with "A" on Switch
{ {
PlayState.SONG = Song.loadFromJson(songs[curSelected].toLowerCase()); PlayState.SONG = Song.loadFromJson(songs[curSelected].toLowerCase());
PlayState.isStoryMode = false;
FlxG.switchState(new PlayState()); FlxG.switchState(new PlayState());
FlxG.sound.music.stop(); FlxG.sound.music.stop();
} }

168
source/MainMenuState.hx Normal file
View File

@ -0,0 +1,168 @@
package;
import flixel.FlxG;
import flixel.FlxObject;
import flixel.FlxSprite;
import flixel.effects.FlxFlicker;
import flixel.graphics.frames.FlxAtlasFrames;
import flixel.group.FlxGroup.FlxTypedGroup;
import flixel.tweens.FlxEase;
import flixel.tweens.FlxTween;
class MainMenuState extends MusicBeatState
{
var curSelected:Int = 0;
var menuItems:FlxTypedGroup<FlxSprite>;
var optionShit:Array<String> = ['story mode', 'freeplay', 'donate'];
var magenta:FlxSprite;
var camFollow:FlxObject;
override function create()
{
persistentUpdate = persistentDraw = true;
var bg:FlxSprite = new FlxSprite(-80).loadGraphic(AssetPaths.menuBG__png);
bg.scrollFactor.x = 0;
bg.scrollFactor.y = 0.18;
bg.setGraphicSize(Std.int(bg.width * 1.1));
bg.updateHitbox();
bg.screenCenter();
bg.antialiasing = true;
add(bg);
camFollow = new FlxObject(0, 0, 1, 1);
add(camFollow);
magenta = new FlxSprite(-80).loadGraphic(AssetPaths.menuBGMagenta__png);
magenta.scrollFactor.x = 0;
magenta.scrollFactor.y = 0.18;
magenta.setGraphicSize(Std.int(magenta.width * 1.1));
magenta.updateHitbox();
magenta.screenCenter();
magenta.visible = false;
magenta.antialiasing = true;
add(magenta);
// magenta.scrollFactor.set();
menuItems = new FlxTypedGroup<FlxSprite>();
add(menuItems);
var tex = FlxAtlasFrames.fromSparrow(AssetPaths.FNF_main_menu_assets__png, AssetPaths.FNF_main_menu_assets__xml);
for (i in 0...optionShit.length)
{
var menuItem:FlxSprite = new FlxSprite(0, 60 + (i * 160));
menuItem.frames = tex;
menuItem.animation.addByPrefix('idle', optionShit[i] + " basic", 24);
menuItem.animation.addByPrefix('selected', optionShit[i] + " white", 24);
menuItem.animation.play('idle');
menuItem.ID = i;
menuItem.screenCenter(X);
menuItems.add(menuItem);
menuItem.scrollFactor.set();
menuItem.antialiasing = true;
}
FlxG.camera.follow(camFollow, null, 0.06);
changeItem();
super.create();
}
override function update(elapsed:Float)
{
if (controls.UP_P)
{
FlxG.sound.play('assets/sounds/scrollMenu' + TitleState.soundExt);
changeItem(-1);
}
if (controls.DOWN_P)
{
FlxG.sound.play('assets/sounds/scrollMenu' + TitleState.soundExt);
changeItem(1);
}
if (controls.BACK)
{
FlxG.switchState(new TitleState());
}
super.update(elapsed);
if (controls.ACCEPT)
{
if (optionShit[curSelected] == 'donate')
{
FlxG.openURL('https://ninja-muffin24.itch.io/funkin');
}
else
{
FlxG.sound.play('assets/sounds/confirmMenu' + TitleState.soundExt);
FlxFlicker.flicker(magenta, 1.1, 0.15, false);
menuItems.forEach(function(spr:FlxSprite)
{
if (curSelected != spr.ID)
{
FlxTween.tween(spr, {alpha: 0}, 0.4, {
ease: FlxEase.quadOut,
onComplete: function(twn:FlxTween)
{
spr.kill();
}
});
}
else
{
FlxFlicker.flicker(spr, 1, 0.06, false, false, function(flick:FlxFlicker)
{
var daChoice:String = optionShit[curSelected];
switch (daChoice)
{
case 'story mode':
FlxG.switchState(new StoryMenuState());
case 'freeplay':
FlxG.switchState(new FreeplayState());
}
});
}
});
}
}
menuItems.forEach(function(spr:FlxSprite)
{
spr.screenCenter(X);
});
}
function changeItem(huh:Int = 0)
{
curSelected += huh;
if (curSelected >= menuItems.length)
curSelected = 0;
if (curSelected < 0)
curSelected = menuItems.length - 1;
menuItems.forEach(function(spr:FlxSprite)
{
spr.animation.play('idle');
if (spr.ID == curSelected)
{
spr.animation.play('selected');
camFollow.setPosition(spr.getGraphicMidpoint().x, spr.getGraphicMidpoint().y);
}
spr.updateHitbox();
});
}
}

28
source/MenuCharacter.hx Normal file
View File

@ -0,0 +1,28 @@
package;
import flixel.FlxSprite;
import flixel.graphics.frames.FlxAtlasFrames;
class MenuCharacter extends FlxSprite
{
public var character:String;
public function new(x:Float, character:String = 'bf')
{
super(x);
this.character = character;
var tex = FlxAtlasFrames.fromSparrow(AssetPaths.campaign_menu_UI_characters__png, AssetPaths.campaign_menu_UI_characters__xml);
frames = tex;
animation.addByPrefix('bf', "BF idle dance white", 24);
animation.addByPrefix('bfConfirm', 'BF HEY!!', 24, false);
animation.addByPrefix('gf', "GF Dancing Beat WHITE", 24);
animation.addByPrefix('dad', "Dad idle dance BLACK LINE", 24);
animation.addByPrefix('spooky', "spooky dance idle BLACK LINES", 24);
animation.play(character);
updateHitbox();
}
}

View File

@ -8,6 +8,7 @@ import flixel.math.FlxMath;
class MenuItem extends FlxSpriteGroup class MenuItem extends FlxSpriteGroup
{ {
public var targetY:Float = 0; public var targetY:Float = 0;
public var week:FlxSprite;
public function new(x:Float, y:Float, weekNum:Int = 0, unlocked:Bool = false) public function new(x:Float, y:Float, weekNum:Int = 0, unlocked:Bool = false)
{ {
@ -15,13 +16,14 @@ class MenuItem extends FlxSpriteGroup
var tex = FlxAtlasFrames.fromSparrow(AssetPaths.campaign_menu_UI_assets__png, AssetPaths.campaign_menu_UI_assets__xml); var tex = FlxAtlasFrames.fromSparrow(AssetPaths.campaign_menu_UI_assets__png, AssetPaths.campaign_menu_UI_assets__xml);
var week:FlxSprite = new FlxSprite(); week = new FlxSprite();
week.frames = tex; week.frames = tex;
week.animation.addByPrefix('week0', "WEEK1 select", 24); week.animation.addByPrefix('week0', "WEEK1 select", 24);
week.animation.addByPrefix('week1', "week2 select", 24); week.animation.addByPrefix('week1', "week2 select", 24);
add(week); add(week);
week.animation.play('week' + weekNum); week.animation.play('week' + weekNum);
week.animation.pause();
week.updateHitbox(); week.updateHitbox();
if (!unlocked) if (!unlocked)

View File

@ -16,6 +16,7 @@ import flixel.graphics.atlas.FlxAtlas;
import flixel.graphics.frames.FlxAtlasFrames; import flixel.graphics.frames.FlxAtlasFrames;
import flixel.group.FlxGroup.FlxTypedGroup; import flixel.group.FlxGroup.FlxTypedGroup;
import flixel.math.FlxMath; import flixel.math.FlxMath;
import flixel.math.FlxPoint;
import flixel.system.FlxSound; import flixel.system.FlxSound;
import flixel.text.FlxText; import flixel.text.FlxText;
import flixel.tweens.FlxEase; import flixel.tweens.FlxEase;
@ -33,8 +34,13 @@ using StringTools;
class PlayState extends MusicBeatState class PlayState extends MusicBeatState
{ {
public static var curLevel:String = 'Bopeebo'; public static var curLevel:String = 'Tutorial';
public static var SONG:SwagSong; public static var SONG:SwagSong;
public static var isStoryMode:Bool = false;
public static var storyPlaylist:Array<String> = [];
public static var storyDifficulty:Int = 1;
var halloweenLevel:Bool = false;
private var vocals:FlxSound; private var vocals:FlxSound;
@ -69,6 +75,12 @@ class PlayState extends MusicBeatState
private var camHUD:FlxCamera; private var camHUD:FlxCamera;
private var camGame:FlxCamera; private var camGame:FlxCamera;
var dialogue:Array<String> = ['blah blah blah', 'coolswag'];
var halloweenBG:FlxSprite;
var talking:Bool = true;
override public function create() override public function create()
{ {
// var gameCam:FlxCamera = FlxG.camera; // var gameCam:FlxCamera = FlxG.camera;
@ -89,28 +101,68 @@ class PlayState extends MusicBeatState
Conductor.changeBPM(SONG.bpm); Conductor.changeBPM(SONG.bpm);
var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(AssetPaths.stageback__png); switch (SONG.song.toLowerCase())
// bg.setGraphicSize(Std.int(bg.width * 2.5)); {
// bg.updateHitbox(); case 'tutorial':
bg.antialiasing = true; dialogue = ["Hey you're pretty cute.", 'Use the arrow keys to keep up \nwith me singing.'];
bg.scrollFactor.set(0.9, 0.9); case 'bopeebo':
bg.active = false; dialogue = [
add(bg); 'HEY!',
"You think you can just sing\nwith my daughter like that?",
"If you want to date her...",
"You're going to have to go \nthrough ME first!"
];
case 'fresh':
dialogue = ["Not too shabby boy.", ""];
case 'dadbattle':
dialogue = [
"gah you think you're hot stuff?",
"If you can beat me here...",
"Only then I will even CONSIDER letting you\ndate my daughter!"
];
}
var stageFront:FlxSprite = new FlxSprite(-650, 600).loadGraphic(AssetPaths.stagefront__png); if (SONG.song.toLowerCase() == 'spookeez' || SONG.song.toLowerCase() == 'monster' || SONG.song.toLowerCase() == 'south')
stageFront.setGraphicSize(Std.int(stageFront.width * 1.1)); {
stageFront.updateHitbox(); halloweenLevel = true;
stageFront.antialiasing = true;
stageFront.scrollFactor.set(0.9, 0.9);
stageFront.active = false;
add(stageFront);
var stageCurtains:FlxSprite = new FlxSprite(-500, -300).loadGraphic(AssetPaths.stagecurtains__png); var hallowTex = FlxAtlasFrames.fromSparrow(AssetPaths.halloween_bg__png, AssetPaths.halloween_bg__xml);
stageCurtains.setGraphicSize(Std.int(stageCurtains.width * 0.9));
stageCurtains.updateHitbox(); halloweenBG = new FlxSprite(-200, -100);
stageCurtains.antialiasing = true; halloweenBG.frames = hallowTex;
stageCurtains.scrollFactor.set(1.3, 1.3); halloweenBG.animation.addByPrefix('idle', 'halloweem bg0');
stageCurtains.active = false; halloweenBG.animation.addByPrefix('lightning', 'halloweem bg lightning strike', 24, false);
halloweenBG.animation.play('idle');
halloweenBG.antialiasing = true;
add(halloweenBG);
}
else
{
var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(AssetPaths.stageback__png);
// bg.setGraphicSize(Std.int(bg.width * 2.5));
// bg.updateHitbox();
bg.antialiasing = true;
bg.scrollFactor.set(0.9, 0.9);
bg.active = false;
add(bg);
var stageFront:FlxSprite = new FlxSprite(-650, 600).loadGraphic(AssetPaths.stagefront__png);
stageFront.setGraphicSize(Std.int(stageFront.width * 1.1));
stageFront.updateHitbox();
stageFront.antialiasing = true;
stageFront.scrollFactor.set(0.9, 0.9);
stageFront.active = false;
add(stageFront);
var stageCurtains:FlxSprite = new FlxSprite(-500, -300).loadGraphic(AssetPaths.stagecurtains__png);
stageCurtains.setGraphicSize(Std.int(stageCurtains.width * 0.9));
stageCurtains.updateHitbox();
stageCurtains.antialiasing = true;
stageCurtains.scrollFactor.set(1.3, 1.3);
stageCurtains.active = false;
add(stageCurtains);
}
gf = new Character(400, 130, 'gf'); gf = new Character(400, 130, 'gf');
gf.scrollFactor.set(0.95, 0.95); gf.scrollFactor.set(0.95, 0.95);
@ -120,21 +172,37 @@ class PlayState extends MusicBeatState
dad = new Character(100, 100, SONG.player2); dad = new Character(100, 100, SONG.player2);
add(dad); add(dad);
var camPos:FlxPoint = new FlxPoint(dad.getGraphicMidpoint().x, dad.getGraphicMidpoint().y);
switch (SONG.player2) switch (SONG.player2)
{ {
case 'gf': case 'gf':
dad.setPosition(gf.x, gf.y); dad.setPosition(gf.x, gf.y);
gf.visible = false; gf.visible = false;
if (isStoryMode)
{
camPos.x += 600;
tweenCamIn();
}
case "spooky": case "spooky":
dad.y += 200; dad.y += 200;
case "monster": case "monster":
dad.y += 100; dad.y += 100;
case 'dad':
camPos.x += 400;
} }
boyfriend = new Boyfriend(770, 450); boyfriend = new Boyfriend(770, 450);
add(boyfriend); add(boyfriend);
add(stageCurtains); var doof:DialogueBox = new DialogueBox(false, dialogue);
// doof.x += 70;
doof.y = FlxG.height * 0.5;
doof.scrollFactor.set();
doof.finishThing = startCountdown;
Conductor.songPosition = -5000;
strumLine = new FlxSprite(0, 50).makeGraphic(FlxG.width, 10); strumLine = new FlxSprite(0, 50).makeGraphic(FlxG.width, 10);
strumLine.scrollFactor.set(); strumLine.scrollFactor.set();
@ -146,14 +214,15 @@ class PlayState extends MusicBeatState
startingSong = true; startingSong = true;
startCountdown(); // startCountdown();
generateSong(SONG.song); generateSong(SONG.song);
// add(strumLine); // add(strumLine);
camFollow = new FlxObject(0, 0, 1, 1); camFollow = new FlxObject(0, 0, 1, 1);
camFollow.setPosition(dad.getGraphicMidpoint().x, dad.getGraphicMidpoint().y);
camFollow.setPosition(camPos.x, camPos.y);
add(camFollow); add(camFollow);
FlxG.camera.follow(camFollow, LOCKON, 0.04); FlxG.camera.follow(camFollow, LOCKON, 0.04);
@ -186,11 +255,22 @@ class PlayState extends MusicBeatState
healthHeads.antialiasing = true; healthHeads.antialiasing = true;
add(healthHeads); add(healthHeads);
// healthBar.visible = healthHeads.visible = healthBarBG.visible = false;
if (isStoryMode)
{
// TEMP for now, later get rid of startCountdown()
// add(doof);
startCountdown();
}
else
startCountdown();
strumLineNotes.cameras = [camHUD]; strumLineNotes.cameras = [camHUD];
notes.cameras = [camHUD]; notes.cameras = [camHUD];
healthBar.cameras = [camHUD]; healthBar.cameras = [camHUD];
healthBarBG.cameras = [camHUD]; healthBarBG.cameras = [camHUD];
healthHeads.cameras = [camHUD]; healthHeads.cameras = [camHUD];
doof.cameras = [camHUD];
// if (SONG.song == 'South') // if (SONG.song == 'South')
// FlxG.camera.alpha = 0.7; // FlxG.camera.alpha = 0.7;
@ -205,6 +285,10 @@ class PlayState extends MusicBeatState
function startCountdown():Void function startCountdown():Void
{ {
generateStaticArrows(0);
generateStaticArrows(1);
talking = false;
startedCountdown = true; startedCountdown = true;
Conductor.songPosition = 0; Conductor.songPosition = 0;
Conductor.songPosition -= Conductor.crochet * 5; Conductor.songPosition -= Conductor.crochet * 5;
@ -278,7 +362,8 @@ class PlayState extends MusicBeatState
lastReportedPlayheadPosition = 0; lastReportedPlayheadPosition = 0;
startingSong = false; startingSong = false;
FlxG.sound.playMusic("assets/music/" + SONG.song + "_Inst" + TitleState.soundExt); FlxG.sound.playMusic("assets/music/" + SONG.song + "_Inst" + TitleState.soundExt, 1, false);
FlxG.sound.music.onComplete = endSong;
vocals.play(); vocals.play();
} }
@ -288,9 +373,6 @@ class PlayState extends MusicBeatState
{ {
// FlxG.log.add(ChartParser.parse()); // FlxG.log.add(ChartParser.parse());
generateStaticArrows(0);
generateStaticArrows(1);
var songData = SONG; var songData = SONG;
Conductor.changeBPM(songData.bpm); Conductor.changeBPM(songData.bpm);
@ -448,6 +530,11 @@ class PlayState extends MusicBeatState
} }
} }
function tweenCamIn():Void
{
FlxTween.tween(FlxG.camera, {zoom: 1.3}, (Conductor.stepCrochet * 4 / 1000), {ease: FlxEase.elasticInOut});
}
override function openSubState(SubState:FlxSubState) override function openSubState(SubState:FlxSubState)
{ {
if (paused) if (paused)
@ -495,7 +582,7 @@ class PlayState extends MusicBeatState
// trace("SONG POS: " + Conductor.songPosition); // trace("SONG POS: " + Conductor.songPosition);
// FlxG.sound.music.pitch = 2; // FlxG.sound.music.pitch = 2;
if (FlxG.keys.justPressed.ENTER) if (FlxG.keys.justPressed.ENTER && startedCountdown)
{ {
persistentUpdate = false; persistentUpdate = false;
persistentDraw = true; persistentDraw = true;
@ -570,7 +657,7 @@ class PlayState extends MusicBeatState
if (SONG.song.toLowerCase() == 'tutorial') if (SONG.song.toLowerCase() == 'tutorial')
{ {
FlxTween.tween(FlxG.camera, {zoom: 1.3}, (Conductor.stepCrochet * 4 / 1000), {ease: FlxEase.elasticInOut}); tweenCamIn();
} }
} }
@ -606,9 +693,9 @@ class PlayState extends MusicBeatState
case 112: case 112:
gfSpeed = 1; gfSpeed = 1;
case 163: case 163:
FlxG.sound.music.stop(); // FlxG.sound.music.stop();
curLevel = 'Bopeebo'; // curLevel = 'Bopeebo';
FlxG.switchState(new TitleState()); // FlxG.switchState(new TitleState());
} }
} }
@ -617,9 +704,9 @@ class PlayState extends MusicBeatState
switch (totalBeats) switch (totalBeats)
{ {
case 127: case 127:
FlxG.sound.music.stop(); // FlxG.sound.music.stop();
curLevel = 'Fresh'; // curLevel = 'Fresh';
FlxG.switchState(new PlayState()); // FlxG.switchState(new PlayState());
} }
} }
// better streaming of shit // better streaming of shit
@ -697,7 +784,7 @@ class PlayState extends MusicBeatState
{ {
if (daNote.tooLate) if (daNote.tooLate)
{ {
health -= 0.03; health -= 0.04;
vocals.volume = 0; vocals.volume = 0;
} }
@ -714,6 +801,42 @@ class PlayState extends MusicBeatState
keyShit(); keyShit();
} }
function endSong():Void
{
trace('SONG DONE' + isStoryMode);
if (isStoryMode)
{
storyPlaylist.remove(storyPlaylist[0]);
if (storyPlaylist.length <= 0)
{
FlxG.switchState(new TitleState());
StoryMenuState.weekUnlocked[1] = true;
}
else
{
var difficulty:String = "";
if (storyDifficulty == 0)
difficulty = '-easy';
if (storyDifficulty == 2)
difficulty == '-hard';
PlayState.SONG = Song.loadFromJson(PlayState.storyPlaylist[0].toLowerCase() + difficulty, PlayState.storyPlaylist[0]);
FlxG.switchState(new PlayState());
}
}
else
{
FlxG.switchState(new FreeplayState());
}
}
var endingSong:Bool = false;
private function popUpScore(strumtime:Float):Void private function popUpScore(strumtime:Float):Void
{ {
var noteDiff:Float = Math.abs(strumtime - Conductor.songPosition); var noteDiff:Float = Math.abs(strumtime - Conductor.songPosition);
@ -972,7 +1095,7 @@ class PlayState extends MusicBeatState
{ {
if (!boyfriend.stunned) if (!boyfriend.stunned)
{ {
health -= 0.055; health -= 0.06;
if (combo > 5) if (combo > 5)
{ {
gf.playAnim('sad'); gf.playAnim('sad');
@ -1068,9 +1191,9 @@ class PlayState extends MusicBeatState
} }
if (note.noteData >= 0) if (note.noteData >= 0)
health += 0.03; health += 0.023;
else else
health += 0.007; health += 0.004;
switch (note.noteData) switch (note.noteData)
{ {
@ -1131,22 +1254,25 @@ class PlayState extends MusicBeatState
notes.sort(FlxSort.byY, FlxSort.DESCENDING); notes.sort(FlxSort.byY, FlxSort.DESCENDING);
} }
FlxG.log.add('change bpm' + SONG.notes[Std.int(curStep / 16)].changeBPM); if (SONG.notes[Math.floor(curStep / 16)] != null)
if (SONG.notes[Std.int(curStep / 16)].changeBPM)
{ {
Conductor.changeBPM(SONG.notes[Std.int(curStep / 16)].bpm); if (SONG.notes[Math.floor(curStep / 16)].changeBPM)
FlxG.log.add('CHANGED BPM!'); {
Conductor.changeBPM(SONG.notes[Math.floor(curStep / 16)].bpm);
FlxG.log.add('CHANGED BPM!');
}
else
Conductor.changeBPM(SONG.bpm);
// Dad doesnt interupt his own notes
if (SONG.notes[Math.floor(curStep / 16)].mustHitSection)
dad.dance();
} }
else // FlxG.log.add('change bpm' + SONG.notes[Std.int(curStep / 16)].changeBPM);
Conductor.changeBPM(SONG.bpm);
if (camZooming && FlxG.camera.zoom < 1.35 && totalBeats % 4 == 0) if (camZooming && FlxG.camera.zoom < 1.35 && totalBeats % 4 == 0)
FlxG.camera.zoom += 0.025; FlxG.camera.zoom += 0.025;
// Dad doesnt interupt his own notes
if (SONG.notes[Std.int(curStep / 16)].mustHitSection)
dad.dance();
healthHeads.setGraphicSize(Std.int(healthHeads.width + 20)); healthHeads.setGraphicSize(Std.int(healthHeads.width + 20));
if (totalBeats % gfSpeed == 0) if (totalBeats % gfSpeed == 0)

View File

@ -47,9 +47,9 @@ class Song
} }
} }
public static function loadFromJson(jsonInput:String):SwagSong public static function loadFromJson(jsonInput:String, ?folder:String):SwagSong
{ {
var rawJson = Assets.getText('assets/data/' + jsonInput.toLowerCase() + '/' + jsonInput.toLowerCase() + '.json').trim(); var rawJson = Assets.getText('assets/data/' + folder.toLowerCase() + '/' + jsonInput.toLowerCase() + '.json').trim();
while (!rawJson.endsWith("}")) while (!rawJson.endsWith("}"))
{ {

View File

@ -6,6 +6,9 @@ import flixel.graphics.frames.FlxAtlasFrames;
import flixel.group.FlxGroup.FlxTypedGroup; import flixel.group.FlxGroup.FlxTypedGroup;
import flixel.group.FlxGroup; import flixel.group.FlxGroup;
import flixel.text.FlxText; import flixel.text.FlxText;
import flixel.tweens.FlxTween;
import flixel.util.FlxTimer;
import lime.net.curl.CURLCode;
using StringTools; using StringTools;
@ -13,31 +16,38 @@ class StoryMenuState extends MusicBeatState
{ {
var scoreText:FlxText; var scoreText:FlxText;
var weekData:Array<Dynamic> = [['Tutorial', 'Bopeebo', 'Fresh', 'Dad Battle'], ['Spookeez', 'South', 'Monster']]; var weekData:Array<Dynamic> = [['Tutorial', 'Bopeebo', 'Fresh', 'Dadbattle'], ['Spookeez', 'South', 'Monster']];
var weekUnlocked:Array<Bool> = [true, false]; var curDifficulty:Int = 1;
public static var weekUnlocked:Array<Bool> = [true, false];
var weekCharacters:Array<Dynamic> = [['dad', 'bf', 'gf'], ['spooky', 'bf', 'gf']];
var curWeek:Int = 0; var curWeek:Int = 0;
var txtTracklist:FlxText; var txtTracklist:FlxText;
var grpWeekText:FlxTypedGroup<MenuItem>; var grpWeekText:FlxTypedGroup<MenuItem>;
var grpWeekCharacters:FlxTypedGroup<MenuCharacter>;
var grpLocks:FlxTypedGroup<FlxSprite>; var grpLocks:FlxTypedGroup<FlxSprite>;
var difficultySelectors:FlxGroup; var difficultySelectors:FlxGroup;
var sprDifficulty:FlxSprite;
var leftArrow:FlxSprite;
var rightArrow:FlxSprite;
override function create() override function create()
{ {
persistentUpdate = persistentDraw = true;
scoreText = new FlxText(10, 10, 0, "SCORE: 49324858", 36); scoreText = new FlxText(10, 10, 0, "SCORE: 49324858", 36);
scoreText.setFormat("VCR OSD Mono", 32); scoreText.setFormat("VCR OSD Mono", 32);
add(scoreText);
var rankText:FlxText = new FlxText(0, 10); var rankText:FlxText = new FlxText(0, 10);
rankText.text = 'RANK: GREAT'; rankText.text = 'RANK: GREAT';
rankText.setFormat("assets/fonts/vcr.ttf", 32); rankText.setFormat("assets/fonts/vcr.ttf", 32);
rankText.size = scoreText.size; rankText.size = scoreText.size;
rankText.screenCenter(X); rankText.screenCenter(X);
add(rankText);
var ui_tex = FlxAtlasFrames.fromSparrow(AssetPaths.campaign_menu_UI_assets__png, AssetPaths.campaign_menu_UI_assets__xml); var ui_tex = FlxAtlasFrames.fromSparrow(AssetPaths.campaign_menu_UI_assets__png, AssetPaths.campaign_menu_UI_assets__xml);
var yellowBG:FlxSprite = new FlxSprite(0, 56).makeGraphic(FlxG.width, 400, 0xFFF9CF51); var yellowBG:FlxSprite = new FlxSprite(0, 56).makeGraphic(FlxG.width, 400, 0xFFF9CF51);
@ -45,6 +55,8 @@ class StoryMenuState extends MusicBeatState
grpWeekText = new FlxTypedGroup<MenuItem>(); grpWeekText = new FlxTypedGroup<MenuItem>();
add(grpWeekText); add(grpWeekText);
grpWeekCharacters = new FlxTypedGroup<MenuCharacter>();
grpLocks = new FlxTypedGroup<FlxSprite>(); grpLocks = new FlxTypedGroup<FlxSprite>();
add(grpLocks); add(grpLocks);
@ -76,36 +88,65 @@ class StoryMenuState extends MusicBeatState
} }
} }
for (char in 0...3)
{
var weekCharacterThing:MenuCharacter = new MenuCharacter((FlxG.width * 0.25) * (1 + char) - 150, weekCharacters[curWeek][char]);
weekCharacterThing.y += 70;
weekCharacterThing.antialiasing = true;
switch (weekCharacterThing.character)
{
case 'dad':
weekCharacterThing.setGraphicSize(Std.int(weekCharacterThing.width * 0.5));
weekCharacterThing.updateHitbox();
case 'bf':
weekCharacterThing.setGraphicSize(Std.int(weekCharacterThing.width * 0.9));
weekCharacterThing.updateHitbox();
case 'gf':
weekCharacterThing.setGraphicSize(Std.int(weekCharacterThing.width * 0.5));
weekCharacterThing.updateHitbox();
}
grpWeekCharacters.add(weekCharacterThing);
}
difficultySelectors = new FlxGroup(); difficultySelectors = new FlxGroup();
add(difficultySelectors); add(difficultySelectors);
var leftArrow:FlxSprite = new FlxSprite(grpWeekText.members[0].x + 400, grpWeekText.members[0].y + 10); leftArrow = new FlxSprite(grpWeekText.members[0].x + 370, grpWeekText.members[0].y + 10);
leftArrow.frames = ui_tex; leftArrow.frames = ui_tex;
leftArrow.animation.addByPrefix('idle', "arrow left"); leftArrow.animation.addByPrefix('idle', "arrow left");
leftArrow.animation.addByPrefix('press', "arrow push left");
leftArrow.animation.play('idle'); leftArrow.animation.play('idle');
difficultySelectors.add(leftArrow); difficultySelectors.add(leftArrow);
var sprDifficulty:FlxSprite = new FlxSprite(leftArrow.x + 70, leftArrow.y); sprDifficulty = new FlxSprite(leftArrow.x + 130, leftArrow.y);
sprDifficulty.frames = ui_tex; sprDifficulty.frames = ui_tex;
sprDifficulty.animation.addByPrefix('easy', 'EASY'); sprDifficulty.animation.addByPrefix('easy', 'EASY');
sprDifficulty.animation.addByPrefix('normal', 'NORMAL'); sprDifficulty.animation.addByPrefix('normal', 'NORMAL');
sprDifficulty.animation.addByPrefix('hard', 'HARD'); sprDifficulty.animation.addByPrefix('hard', 'HARD');
sprDifficulty.animation.play('easy'); sprDifficulty.animation.play('easy');
changeDifficulty();
difficultySelectors.add(sprDifficulty); difficultySelectors.add(sprDifficulty);
var rightArrow:FlxSprite = new FlxSprite(sprDifficulty.x + sprDifficulty.width + 20, sprDifficulty.y); rightArrow = new FlxSprite(sprDifficulty.x + sprDifficulty.width + 50, leftArrow.y);
rightArrow.frames = ui_tex; rightArrow.frames = ui_tex;
rightArrow.animation.addByPrefix('idle', 'arrow right'); rightArrow.animation.addByPrefix('idle', 'arrow right');
rightArrow.animation.addByPrefix('press', "arrow push right", 24, false);
rightArrow.animation.play('idle'); rightArrow.animation.play('idle');
difficultySelectors.add(rightArrow); difficultySelectors.add(rightArrow);
add(yellowBG); add(yellowBG);
add(grpWeekCharacters);
txtTracklist = new FlxText(FlxG.width * 0.05, yellowBG.x + yellowBG.height + 100, 0, "Tracks", 32); txtTracklist = new FlxText(FlxG.width * 0.05, yellowBG.x + yellowBG.height + 100, 0, "Tracks", 32);
txtTracklist.alignment = CENTER; txtTracklist.alignment = CENTER;
txtTracklist.font = rankText.font; txtTracklist.font = rankText.font;
txtTracklist.color = 0xFFe55777; txtTracklist.color = 0xFFe55777;
add(txtTracklist); add(txtTracklist);
add(rankText);
add(scoreText);
updateText(); updateText();
@ -125,14 +166,119 @@ class StoryMenuState extends MusicBeatState
lock.y = grpWeekText.members[lock.ID].y; lock.y = grpWeekText.members[lock.ID].y;
}); });
if (controls.UP_P) if (!movedBack)
changeWeek(-1); {
if (controls.DOWN_P) if (!selectedWeek)
changeWeek(1); {
if (controls.UP_P)
{
changeWeek(-1);
}
if (controls.DOWN_P)
{
changeWeek(1);
}
if (controls.RIGHT)
rightArrow.animation.play('press')
else
rightArrow.animation.play('idle');
if (controls.LEFT)
leftArrow.animation.play('press');
else
leftArrow.animation.play('idle');
if (controls.RIGHT_P)
changeDifficulty(1);
if (controls.LEFT_P)
changeDifficulty(-1);
}
if (controls.ACCEPT)
{
selectWeek();
}
}
if (controls.BACK && !movedBack && !selectedWeek)
{
FlxG.sound.play('assets/sounds/cancelMenu' + TitleState.soundExt);
movedBack = true;
FlxG.switchState(new MainMenuState());
}
super.update(elapsed); super.update(elapsed);
} }
var movedBack:Bool = false;
var selectedWeek:Bool = false;
function selectWeek()
{
if (weekUnlocked[curWeek])
{
FlxG.sound.play('assets/sounds/confirmMenu' + TitleState.soundExt);
grpWeekText.members[curWeek].week.animation.resume();
grpWeekCharacters.members[1].animation.play('bfConfirm');
PlayState.storyPlaylist = weekData[curWeek];
PlayState.isStoryMode = true;
selectedWeek = true;
var diffic = "";
switch (curDifficulty)
{
case 0:
diffic = '-easy';
case 2:
diffic = '-hard';
}
PlayState.storyDifficulty = curDifficulty;
PlayState.SONG = Song.loadFromJson(PlayState.storyPlaylist[0].toLowerCase() + diffic, PlayState.storyPlaylist[0].toLowerCase());
new FlxTimer().start(1, function(tmr:FlxTimer)
{
FlxG.sound.music.stop();
FlxG.switchState(new PlayState());
});
}
}
function changeDifficulty(change:Int = 0):Void
{
curDifficulty += change;
if (curDifficulty < 0)
curDifficulty = 2;
if (curDifficulty > 2)
curDifficulty = 0;
sprDifficulty.offset.x = 0;
switch (curDifficulty)
{
case 0:
sprDifficulty.animation.play('easy');
sprDifficulty.offset.x = 20;
case 1:
sprDifficulty.animation.play('normal');
sprDifficulty.offset.x = 70;
case 2:
sprDifficulty.animation.play('hard');
sprDifficulty.offset.x = 20;
}
sprDifficulty.alpha = 0;
sprDifficulty.y -= 15;
FlxTween.tween(sprDifficulty, {y: sprDifficulty.y + 15, alpha: 1}, 0.07);
}
function changeWeek(change:Int = 0):Void function changeWeek(change:Int = 0):Void
{ {
curWeek += change; curWeek += change;
@ -150,11 +296,16 @@ class StoryMenuState extends MusicBeatState
bullShit++; bullShit++;
} }
FlxG.sound.play('assets/sounds/scrollMenu' + TitleState.soundExt);
updateText(); updateText();
} }
function updateText() function updateText()
{ {
grpWeekCharacters.members[0].animation.play(weekCharacters[curWeek][0]);
grpWeekCharacters.members[1].animation.play(weekCharacters[curWeek][1]);
grpWeekCharacters.members[2].animation.play(weekCharacters[curWeek][2]);
txtTracklist.text = "Tracks\n"; txtTracklist.text = "Tracks\n";
var stringThing:Array<String> = weekData[curWeek]; var stringThing:Array<String> = weekData[curWeek];

View File

@ -27,6 +27,17 @@ class TitleState extends MusicBeatState
var credGroup:FlxGroup; var credGroup:FlxGroup;
var credTextShit:Alphabet; var credTextShit:Alphabet;
var textGroup:FlxGroup; var textGroup:FlxGroup;
var ngSpr:FlxSprite;
var wackyIntros:Array<Array<String>> = [
['Shoutouts to tom fulp', 'lmao'], ["Ludum dare", "extraordinaire"], ['Cyberzone', 'coming soon'], ['love to thriftman', 'swag'],
['ULTIMATE RHYTHM GAMING', 'probably'], ['DOPE ASS GAME', 'playstation magazine'], ['in loving memory of', 'henryeyes'], ['dancin', 'forever'],
['Ritz dx', 'rest in peace'], ['rate five', 'pls no blam'], ['rhythm gaming', 'ultimate'], ['game of the year', 'forever'],
['you already know', 'we really out here'], ['rise and grind', 'love to luis'], ['like parappa', 'but cooler'],
['album of the year', 'chuckie finster'], ["free gitaroo man", "with love to wandaboy"], ['better than geometry dash', 'fight me robtop'],
['kiddbrute for president', 'vote now']];
var curWacky:Array<String> = [];
override public function create():Void override public function create():Void
{ {
@ -36,6 +47,8 @@ class TitleState extends MusicBeatState
PlayerSettings.init(); PlayerSettings.init();
curWacky = FlxG.random.getObject(wackyIntros);
// DEBUG BULLSHIT // DEBUG BULLSHIT
super.create(); super.create();
@ -55,18 +68,20 @@ class TitleState extends MusicBeatState
diamond.persist = true; diamond.persist = true;
diamond.destroyOnNoUse = false; diamond.destroyOnNoUse = false;
FlxTransitionableState.defaultTransIn = new TransitionData(FADE, FlxColor.BLACK, 2, new FlxPoint(0, -1), {asset: diamond, width: 32, height: 32}, FlxTransitionableState.defaultTransIn = new TransitionData(FADE, FlxColor.BLACK, 1, new FlxPoint(0, -1), {asset: diamond, width: 32, height: 32},
new FlxRect(0, 0, FlxG.width, FlxG.height)); new FlxRect(0, 0, FlxG.width, FlxG.height));
FlxTransitionableState.defaultTransOut = new TransitionData(FADE, FlxColor.BLACK, 1.3, new FlxPoint(0, 1), FlxTransitionableState.defaultTransOut = new TransitionData(FADE, FlxColor.BLACK, 0.7, new FlxPoint(0, 1),
{asset: diamond, width: 32, height: 32}, new FlxRect(0, 0, FlxG.width, FlxG.height)); {asset: diamond, width: 32, height: 32}, new FlxRect(0, 0, FlxG.width, FlxG.height));
initialized = true;
FlxTransitionableState.defaultTransIn.tileData = {asset: diamond, width: 32, height: 32}; FlxTransitionableState.defaultTransIn.tileData = {asset: diamond, width: 32, height: 32};
FlxTransitionableState.defaultTransOut.tileData = {asset: diamond, width: 32, height: 32}; FlxTransitionableState.defaultTransOut.tileData = {asset: diamond, width: 32, height: 32};
transIn = FlxTransitionableState.defaultTransIn; transIn = FlxTransitionableState.defaultTransIn;
transOut = FlxTransitionableState.defaultTransOut; transOut = FlxTransitionableState.defaultTransOut;
FlxG.sound.playMusic('assets/music/freakyMenu' + TitleState.soundExt, 0);
FlxG.sound.music.fadeIn(4, 0, 0.7);
} }
persistentUpdate = true; persistentUpdate = true;
@ -104,13 +119,22 @@ class TitleState extends MusicBeatState
credTextShit.visible = false; credTextShit.visible = false;
ngSpr = new FlxSprite(0, FlxG.height * 0.52).loadGraphic(AssetPaths.newgrounds_logo__png);
add(ngSpr);
ngSpr.visible = false;
ngSpr.setGraphicSize(Std.int(ngSpr.width * 0.8));
ngSpr.updateHitbox();
ngSpr.screenCenter(X);
ngSpr.antialiasing = true;
FlxTween.tween(credTextShit, {y: credTextShit.y + 20}, 2.9, {ease: FlxEase.quadInOut, type: PINGPONG}); FlxTween.tween(credTextShit, {y: credTextShit.y + 20}, 2.9, {ease: FlxEase.quadInOut, type: PINGPONG});
if (initialized)
skipIntro();
else
initialized = true;
// credGroup.add(credTextShit); // credGroup.add(credTextShit);
FlxG.sound.playMusic('assets/music/freakyMenu' + TitleState.soundExt, 0, false);
FlxG.sound.music.fadeIn(4, 0, 0.7);
} }
var transitioning:Bool = false; var transitioning:Bool = false;
@ -129,23 +153,24 @@ class TitleState extends MusicBeatState
pressedEnter = true; pressedEnter = true;
} }
if (pressedEnter && !skippedIntro)
{
skipIntro();
}
if (pressedEnter && !transitioning && skippedIntro) if (pressedEnter && !transitioning && skippedIntro)
{ {
FlxG.camera.flash(FlxColor.WHITE, 1); FlxG.camera.flash(FlxColor.WHITE, 1);
FlxG.sound.play('assets/sounds/confirmMenu' + TitleState.soundExt, 0.7);
transitioning = true; transitioning = true;
FlxG.sound.music.stop(); // FlxG.sound.music.stop();
new FlxTimer().start(2, function(tmr:FlxTimer) new FlxTimer().start(2, function(tmr:FlxTimer)
{ {
FlxG.switchState(new FreeplayState()); FlxG.switchState(new MainMenuState());
}); });
FlxG.sound.play('assets/music/titleShoot' + TitleState.soundExt, 0.7); // FlxG.sound.play('assets/music/titleShoot' + TitleState.soundExt, 0.7);
}
if (pressedEnter && !skippedIntro)
{
skipIntro();
} }
super.update(elapsed); super.update(elapsed);
@ -205,18 +230,20 @@ class TitleState extends MusicBeatState
createCoolText(['In association', 'with']); createCoolText(['In association', 'with']);
case 7: case 7:
addMoreText('newgrounds'); addMoreText('newgrounds');
ngSpr.visible = true;
// credTextShit.text += '\nNewgrounds'; // credTextShit.text += '\nNewgrounds';
case 8: case 8:
deleteCoolText(); deleteCoolText();
ngSpr.visible = false;
// credTextShit.visible = false; // credTextShit.visible = false;
// credTextShit.text = 'Shoutouts Tom Fulp'; // credTextShit.text = 'Shoutouts Tom Fulp';
// credTextShit.screenCenter(); // credTextShit.screenCenter();
case 9: case 9:
createCoolText(['Shoutouts Tom Fulp']); createCoolText([curWacky[0]]);
// credTextShit.visible = true; // credTextShit.visible = true;
case 11: case 11:
addMoreText('lmao'); addMoreText(curWacky[1]);
// credTextShit.text += '\nlmao'; // credTextShit.text += '\nlmao';
case 12: case 12:
deleteCoolText(); deleteCoolText();
@ -243,6 +270,8 @@ class TitleState extends MusicBeatState
{ {
if (!skippedIntro) if (!skippedIntro)
{ {
remove(ngSpr);
FlxG.camera.flash(FlxColor.WHITE, 4); FlxG.camera.flash(FlxColor.WHITE, 4);
remove(credGroup); remove(credGroup);
skippedIntro = true; skippedIntro = true;