diff --git a/Project.xml b/Project.xml
index af5a6aaa..e0f13d45 100644
--- a/Project.xml
+++ b/Project.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/assets/data/anims/general-anims.xml b/assets/data/anims/general-anims.xml
index bbc9ff73..bb6098b5 100644
--- a/assets/data/anims/general-anims.xml
+++ b/assets/data/anims/general-anims.xml
@@ -135,4 +135,24 @@
21t22
23t27
+
+
+ 0t11
+ 12t23
+ 24t35
+ 36t47
+ 48t59
+
+
+
+ 0t7
+
+
+
+ 0t23
+
+
+
+ 0t23
+
\ No newline at end of file
diff --git a/assets/data/config/ng/medals/medals.json b/assets/data/config/ng/medals/medals.json
index d316eb41..03d603d9 100644
--- a/assets/data/config/ng/medals/medals.json
+++ b/assets/data/config/ng/medals/medals.json
@@ -235,6 +235,14 @@
{
"name": "fulp-ware",
"id": 82361
+ },
+ {
+ "name": "final-present",
+ "id": 82382
+ },
+ {
+ "name": "pinnacle",
+ "id": 82395
}
]
}
\ No newline at end of file
diff --git a/assets/data/entries/credits/credits.txt b/assets/data/entries/credits/credits.txt
new file mode 100644
index 00000000..ab3c08b4
--- /dev/null
+++ b/assets/data/entries/credits/credits.txt
@@ -0,0 +1,248 @@
+**Tankmas 2024**
+
+*Co-Organizers*
+Squidly
+MrShmoods
+
+*Lead Programmer*
+Squidly
+
+*Lead Artist*
+MrShmoods
+
+*Helper Elves*
+Tamag0
+GR1MP
+OnyxGalaria
+midgetsausage
+KingCrowned
+Ferstofus
+
+*Additional Programmers*
+Jefvel
+EliteMasterEric
+
+*Additional Art*
+Mimny
+donpeppi
+sebulant
+BingoWaders
+blakenator9872
+
+*Sticker Mod*
+OnyxGalaria
+
+*Present Artists*
+Cymbourine
+Sevi
+midgetsausage
+SirLenward
+TheExtreamH
+Bleak-Creep
+MKMaffo
+MatthewLopz
+BellvonArtsy
+Karlestonchew
+KonanSaurus
+EctoSludge
+travsaus
+dannydoods
+ThePsychoSheep
+OmegaKevin
+Mimny
+Pukebomb
+VIATHINE
+Oddlem
+MondoBilby
+Kinomoru
+MudHutGrug
+Slimygoo
+MANTIS
+KeithGarces
+Tamag0
+SrPelo
+EllieDoodles343
+rappinawful
+leroyalmess
+donpeppi
+KOLANI
+Smugarug
+YourWorstDirector
+wild0moon
+ShangXian
+Mutant-Girl-Mintt
+Kunaigirl
+CheddarExuberant
+Chuw-Croissantier
+Jaster
+Poplako
+RobC3
+BeepBeepBastard
+demonrhythms
+phaox05
+OnyxGalaria
+XieLrssin
+PITBULLMUTAFUCKA
+nn-haste
+ATOXBCC
+Just-a-ng-dummy
+
+*Comic Artists*
+midgetsausage
+marbardan82
+guri-gure
+DRAGONMIRACLES
+theoscarlors
+
+*Music*
+StixDevs - christmas? oh yeah!
+RealTin3Sn - Christmas Joy
+everratic - The Wanderer
+TwistedFW - Dancing in the Snow
+Leavesz - Ode to Snow
+Irish-Soul - Holiday Melody
+Druoxtheshredder - Santa's Gone
+Jumbs - Hark the Angels
+Albe - Spiritus
+TeraVex - Another Tankmas Snowday
+TeffyD - Towards a New Year
+Droid - Snowflakes
+ConnorGrail - A Lot Like Christmas
+rappinawful - Endless Snowbag
+Starcat - Vericon
+Phonometrologist - Drift
+
+*Minigames*
+Blawnode
+Jefvel
+Squidly
+
+*Premiers*
+RPGAnims FulpWare Team
+midgetsausage Sketch Collab 2024 Team
+Kolumbo NGTV Christmas Marathon Team
+DannyGoodShirt Dr. Good's Operating Theater Team
+Tankmas Animation Jam Entrants
+
+*Tankmas Chronicles*
+VoicesByCorey
+Squidly
+Tamag0
+MrShmoods
+Smuggers
+Kenkoy
+Smugarug
+CheddarExuberant
+Bree
+Lemewhim
+MayBunny
+TheExtreamH
+Blitzilla
+Chuw_Croissantier
+MOHD5aqer
+Xie.core.04
+Devilucis
+Adamsandlerstan (Anni)
+DragonMiracles
+DannyDoods
+Raviolibox
+AJthecrocodile
+Picochu
+Meliness
+Shwlft
+ceyptcur
+
+*Tankmas Cast*
+Jiffrey
+The Concierge
+Lil' Jimby (@ GeistBeatz dot com)
+Javert
+Joan
+Gold Miser Jacquez
+Backpacker Jill
+Mella
+Mallow
+The Persimmons of Philosophy
+Boxter the Boxing Day Box
+Mall Santa
+The Shape
+
+*Cameo Cast*
+Peanutbudder Santa
+Durooge
+Amogus
+Gacha Gal
+Awesome Snake
+Captain Carrion
+Pony Boy
+ConnorGrail in an apron
+Tankmas 2023 Tombstone
+The Thomas Apparation
+Rare Tamago
+Common Tamago
+Dr Good
+Bitey
+Project 154
+Blade the Hedgehog
+
+*Special Thanks*
+TomFulp
+PsychoGoldfish
+Johnny Jeff Utah
+TheDyingSun
+SplatterDash
+BrandyBuizel
+GeoKurelli
+Dungeonation
+TurkeyOnAStick
+ninjamuffin99
+Gacha Panic Dev Team
+HaxeFlixel Community
+Haxe Community
+Chompy
+The Portel Management
+Tamago Conservation Society
+Dark Paco
+
+...and you!
+
+All events as portrayed in Tankmas 2024 are truthful and canon. All persons, living or dead, are real people with real feelings and you should feel bad if you made fun of them. Especially the box.
+
+
+
+
+
+
+
+
+
+
+
+And now...
+Rest!
+"I'm gonna go fishing" - Squidly, 2025
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+:)
\ No newline at end of file
diff --git a/assets/data/entries/emote-sheets.json b/assets/data/entries/emote-sheets.json
index f8cfed8c..fb386abf 100644
--- a/assets/data/entries/emote-sheets.json
+++ b/assets/data/entries/emote-sheets.json
@@ -197,6 +197,47 @@
{
"name": "bellvonartsy-sticker"
},
+ {
+ "name": "smile-pim"
+ },
+ {
+ "name": "poppy"
+ }
+ ]
+ },
+ {
+ "name": "emotes-6-back-orange",
+ "items": [
+ {
+ "name": "cordelia-rofl"
+ },
+ {
+ "name": "chatterbox"
+ },
+ {
+ "name": "mella-cuddle"
+ },
+ {
+ "name": "a-well-earned-rest"
+ },
+ {
+ "name": null
+ },
+ {
+ "name": null
+ },
+ {
+ "name": null
+ },
+ {
+ "name": null
+ },
+ {
+ "name": null
+ },
+ {
+ "name": null
+ },
{
"name": null
},
diff --git a/assets/data/entries/emotes.json b/assets/data/entries/emotes.json
index 581501a6..76795e39 100644
--- a/assets/data/entries/emotes.json
+++ b/assets/data/entries/emotes.json
@@ -321,6 +321,36 @@
"artist": "tamag0",
"unlock": "FLAG",
"data": "TAMAGO_ENCOUNTERED"
+ },
+ {
+ "name": "smile-pim",
+ "properName": "Smile for the Pic",
+ "artist": "Alex-PhantomGlitch"
+ },
+ {
+ "name": "poppy",
+ "properName": "SweetmasPoppy!",
+ "artist": "RavioliBox"
+ },
+ {
+ "name": "cordelia-rofl",
+ "properName": "Cordelia ROFL",
+ "artist": "leroyalmess"
+ },
+ {
+ "name": "chatterbox",
+ "properName": "Chatter Box",
+ "artist": "RavioliBox"
+ },
+ {
+ "name": "mella-cuddle",
+ "properName": "Mella Cuddle",
+ "artist": "kingcrowned"
+ },
+ {
+ "name": "a-well-earned-rest",
+ "properName": "And that's a wrap",
+ "artist": "squidly"
}
]
}
\ No newline at end of file
diff --git a/assets/data/entries/npcs/amogus-npc-dlgs.xml b/assets/data/entries/npcs/amogus-npc-dlgs.xml
index 9d2000cb..dd8dd705 100644
--- a/assets/data/entries/npcs/amogus-npc-dlgs.xml
+++ b/assets/data/entries/npcs/amogus-npc-dlgs.xml
@@ -34,6 +34,9 @@
+
+ *Okay who moved the body over here*
+
*Poor orange... Who could've seen it coming?*
diff --git a/assets/data/entries/npcs/cameo-npc-dlgs.xml b/assets/data/entries/npcs/cameo-npc-dlgs.xml
index ec42af92..eb443235 100644
--- a/assets/data/entries/npcs/cameo-npc-dlgs.xml
+++ b/assets/data/entries/npcs/cameo-npc-dlgs.xml
@@ -1,6 +1,10 @@
+
+ Fellow traveler, this is where we depart.
+ For me? The skies. For you? Wherever your mind dreams.
+
Once more we meet, fellow traveler.
Hello, fellow traveler.
@@ -48,6 +52,13 @@
+
+ Hey buddy, look, I'm sorry I was ramblin' a bit back there
+ Eh who am I kiddin', I aint sorry.
+ But I was thinkin' I might as well stop wondering about' the past.
+ And start movin' forward, yea? Like a box oughtta.
+ Seeya around, bud
+
Hey, buddy, what ya lookin at?
You a big box looker, huh?
@@ -139,6 +150,9 @@
+
+ *They seem satisfied with their handiwork*
+
*Ah. What a wonderful surprise, it's Peantbudder Santa!*
*It's never a Tankmas without them!*
@@ -164,6 +178,10 @@
+
+ Oh, hey, you know, the show's over but the arcade's still going.
+ Stop on by sometime.
+
Oh, hey, what brings a cool robot like you down here?
I'm Ponyboy, nice to meet you!
@@ -209,6 +227,10 @@
+
+ *You found the Thing Thing!*
+ *Yep... They're still just as confused about this whole thing as before*
+
*You found the thing thing!*
*They seem very confused about being here*
diff --git a/assets/data/entries/npcs/general-npc-dlgs.xml b/assets/data/entries/npcs/general-npc-dlgs.xml
index 3315b3e7..540a49ce 100644
--- a/assets/data/entries/npcs/general-npc-dlgs.xml
+++ b/assets/data/entries/npcs/general-npc-dlgs.xml
@@ -24,7 +24,7 @@
Here lies Tankmas ADVENTure Calendar 2023's hopes and dreams.
- "I died before I could live."
+ I died before I could live.
@@ -55,6 +55,13 @@
+
+ Hello... Dear guest...
+ It seems... It is time for us all to depart...
+ We hope you have enjoyed your stay...
+ Our... Benefactor... Did make for such festive arrangements...
+ But now... It is time... To cherish the memories...
+
Hello... Hello... Dear guests...
Welcome... Welcome... It is now time...
@@ -87,6 +94,19 @@
+
+ Hey man whazz goin on
+ Did you see the big things? Yea man, they were coming soon, man!
+ But now all the big things I was thinkin about are over, man...
+ But I was thinking. Man. What if like. There's MORE coming soon?
+ What if we are, like, free to shape our destiny, man?
+ These stars always inspirin' my mind, man.
+ Well, whatever's next, you can follow me on Lil Jimby @ GeistBeatz dot com
+
+ Yea man.
+ Lil Jimby @ GeistBeatz dot com
+
+
Hey man whazz goin on
I was telling you man big things coming soon, right?
@@ -121,6 +141,11 @@
+
+ I see ze ringarde one has found me at zis place.
+ Had your fill of ze hotel life, no?
+ I zupose even ze ones like you must know when it is time to go.
+
I see ze ringarde one has found their way in.
Had your fill of your puff peasent treats?
@@ -143,6 +168,12 @@
+
+ Hey, dude, did you see the bonfire is out?
+ I guess all things come to an end, huh.
+ I guess I don't have to hide anymore...
+ I wonder where Mella went off to
+
Shh... Dude... Keep it down!
Did you see what's going on out there? They're absolutely crazy.
@@ -150,10 +181,10 @@
Impaling cute lil marshmallows just like me on wooden stakes! Then eating them!
It's sick! But you wouldn't do that, would you?
- "...Why are you looking at me like that?
+ ...Why are you looking at me like that?
- "Agh! ou're tryna kill me!".
+ Agh! ou're tryna kill me!".
@@ -164,12 +195,21 @@
+
+ Oh, hallo!
+ What a beautiful sky! The woods are so often friendly to the stargazing, yes?
+ The stars. They glisten like diamonds. They watch over the travelers, like you and me.
+ To know something, somewhere, is looking out over me, this is truly wunderbar!
+
+ Wunderbar!!!
+
+
- "Oh, hallo!
+ Oh, hallo!
Did you happen upon this hotel too? Very fascinating, yes?
I was just hiking along, but then I saw it appear in the distance!
I feel myself drawn to it, so much excitement, as are you, yes?
- Wunderbar! We will make this a home together!"
+ Wunderbar! We will make this a home together!
Wunderbar!!!
@@ -177,73 +217,85 @@
+
+ Oh, it's you, once again.
+ You... Lesser beings always fancy such silly little hills.
+ So I saw it fit to take a stroll here and show you what true class looks like.
+ Now... Begone. I'm strolling.
+
- "Hmm? Sorry, were you trying to talk to me?
+ Hmm? Sorry, were you trying to talk to me?
You must have me confused for a commoner.
Allow me to correct you, let's call it a charity, to the lesser beings like yourself.
- I am Joan. And YOU are not worth my efforts. Now begone."
+ I am Joan. And YOU are not worth my efforts. Now begone.
- "Why wouldn't I?
+ Why wouldn't I?
Perhaps you think you're worthy of some respect? Then allow me to correct you.
- Well... There's the door. See yourself out the way you came."
+ Well... There's the door. See yourself out the way you came.
- "Pleasentries are for those who deserve them. And you do not.
- Well... There's the door. So see yourself out the way you came."
+ Pleasentries are for those who deserve them. And you do not.
+ Well... There's the door. So see yourself out the way you came.
- "I would not expect those not in the know to know.
+ I would not expect those not in the know to know.
Let's just say our circles would not be the kinds to interact.
- Well... There's the door. So see yourself out the way you came."
+ Well... There's the door. So see yourself out the way you came.
- "Hmm? Sorry, were you trying to talk to me?
+ Hmm? Sorry, were you trying to talk to me?
You must have me confused for a commoner.
Allow me to correct you, let's call it a charity, to the lesser beings like yourself.
I am Joan. And YOU are not worth my efforts. Now begone.
This premiere is far too exclusive for one such as yourself.
- Well... There's the door. So see yourself out the way you came."
+ Well... There's the door. So see yourself out the way you came.
- "Grrch-gak...guh-
+ Grrch-gak...guh-
AGH! YOU! PLEASE!
This bag is much too heavy for my brittle 23 year old body! Would you offer this humble Mall Santa a hand?
Here, just bend down and extend your arms so-
...
- Where are you going?"
+ Where are you going?
+
+ Hmmph? You are wondering why I'd be in such a place?
+ I am just assessing my opportunities in the skies.
+ We ghosts may be tethered to this earth, but that doesn't mean others are.
+ And there's *always* money to be made in space, you know.
+
- "Hmmph? Do I owe you my time?
+ Hmmph? Do I owe you my time?
No? I did not think so. But so many here owe ME.
It's not easy being so generous, you know. I collect and collect. But then they ask ME for my worth.
And, ME, being such a generous being, give them with the small ask they pay me back slightly more later.
Of course... If they're late, well, then special arrangements will have to be made.
And this hotel is *quite* late".
- "Do you see the calendar? It is so very late indeed.
- I, Jacquez, do appreciate timeliness, you know."
+ Do you see the calendar? It is so very late indeed.
+ I, Jacquez, do appreciate timeliness, you know.
- "Pfah! The mind IS money!
- What else could harbour thoughts of value?!"
+ Pfah! The mind IS money!
+ What else could harbour thoughts of value?!
- "Ah, I see. You confuse me for one who pursues a soul mate.
+ Ah, I see. You confuse me for one who pursues a soul mate.
Time is money, and companionship is the great siphoner of time.
And my time is quite bankrupt.
- Be gone, you!"
+ Be gone, you!
- "Yes. And financial security frees my spirit.
- Ha! You should try it sometime!"
+ Yes. And financial security frees my spirit.
+ Ha! You should try it sometime!
- "Nothing makes one happier than a accounting book in the black, yes?
+ Nothing makes one happier than a accounting book in the black, yes?
@@ -255,13 +307,13 @@
- "Hahaha! What did you think of my experiments?
+ Hahaha! What did you think of my experiments?
I hope they disturbed you greatly! Hahahaha!!!
- ...Did they though?"
+ ...Did they though?
- "Haha! It seems someone here has taste in their attire!
- Marvelous!"
+ Haha! It seems someone here has taste in their attire!
+ Marvelous!
@@ -274,6 +326,10 @@
+
+ Hey duder. I thought I told you to leave me alone.
+ Duder. I'm trying to stargaze.
+
Hey duder, I came here to watch the new Shadow the Hedgehog 3 movie and they're not showing it.
Doctor what? Duder. I need to crush some Crush 40 into my system, okay? It's what electrifies my Blade.
@@ -287,7 +343,7 @@
Ah... shucks.
Okay. Duder. Whatever. Just don't go copying me.
- COSTUME UNLOCKED - "Blade the Hedgehog"
+ COSTUME UNLOCKED - "Blade the Hedgehog
Yea it is. It was gonna be electric until they cut it from- nevermind.
@@ -318,12 +374,12 @@
Good evening. My name is Connor. How might I serve you?
- "I sure do!
+ I sure do!
The staff kinda welcomed me as their own, and hired me on the spot.
Someone said I'd be a great 'diversity hire'?
I personally don't see the connection.
But hey, I'm not complaining. I love working with people!
- Now if only I knew what my job was..."
+ Now if only I knew what my job was...
diff --git a/assets/data/entries/npcs/persimmon-npc-dlgs.xml b/assets/data/entries/npcs/persimmon-npc-dlgs.xml
index f7649dee..eab5661d 100644
--- a/assets/data/entries/npcs/persimmon-npc-dlgs.xml
+++ b/assets/data/entries/npcs/persimmon-npc-dlgs.xml
@@ -1,6 +1,10 @@
+
+ Child... It seems our time together is passing at last.
+ Did you enjoy this world? Until we meet again in the next one.
+
Hello.
diff --git a/assets/data/entries/presents.json b/assets/data/entries/presents.json
index ab95619d..870ac553 100644
--- a/assets/data/entries/presents.json
+++ b/assets/data/entries/presents.json
@@ -286,6 +286,12 @@
"file": "intro-page-1",
"title": "",
"artist": "tankmas-chronicles"
+ },
+ {
+ "day": 32,
+ "file": "day-32-art-kingcrowned-2",
+ "title": "Thanks for playing!",
+ "artist": "kingcrowned-2"
}
]
}
\ No newline at end of file
diff --git a/assets/data/levels/TankmasLand.ldtk b/assets/data/levels/TankmasLand.ldtk
index 1a524cc2..ce66b8e9 100644
--- a/assets/data/levels/TankmasLand.ldtk
+++ b/assets/data/levels/TankmasLand.ldtk
@@ -11,7 +11,7 @@
"iid": "95f97850-73f0-11ef-9983-5dc181ef5475",
"jsonVersion": "1.5.4",
"appBuildId": 479150,
- "nextUid": 92,
+ "nextUid": 95,
"identifierStyle": "Free",
"toc": [],
"worldLayout": null,
@@ -1759,13 +1759,13 @@
"cachedPixelData": { "opaqueTiles": "0", "averageColors": "7654" }
},
{
- "__cWid": 2,
+ "__cWid": 3,
"__cHei": 1,
"identifier": "Decoration_MD",
"uid": 61,
"relPath": "../../images/props/decorations_md.png",
"embedAtlas": null,
- "pxWid": 1024,
+ "pxWid": 1536,
"pxHei": 512,
"tileGridSize": 512,
"spacing": 0,
@@ -1775,7 +1775,7 @@
"enumTags": [],
"customData": [],
"savedSelections": [],
- "cachedPixelData": { "opaqueTiles": "00", "averageColors": "6c962667" }
+ "cachedPixelData": { "opaqueTiles": "000", "averageColors": "6c9626677856" }
},
{
"__cWid": 3,
@@ -1862,7 +1862,7 @@
"bgPivotX": 0,
"bgPivotY": 0,
"__smartColor": "#ADADB5",
- "__bgPos": { "topLeftPx": [0,0], "scale": [1,1], "cropRect": [0,0,2316,1559] },
+ "__bgPos": null,
"externalRelPath": "TankmasLand/candle_path.ldtkl",
"fieldInstances": [],
"layerInstances": null,
@@ -1885,11 +1885,34 @@
"bgPivotX": 0.5,
"bgPivotY": 0.5,
"__smartColor": "#ADADB5",
- "__bgPos": { "topLeftPx": [0,0], "scale": [1,1], "cropRect": [0,0,1920,1080] },
+ "__bgPos": null,
"externalRelPath": "TankmasLand/clearing.ldtkl",
"fieldInstances": [],
"layerInstances": null,
"__neighbours": []
+ },
+ {
+ "identifier": "pinnacle",
+ "iid": "cfdd8c20-c210-11ef-9085-cd02a811e2b8",
+ "uid": 92,
+ "worldX": -2560,
+ "worldY": -544,
+ "worldDepth": 0,
+ "pxWid": 1920,
+ "pxHei": 4000,
+ "__bgColor": "#696A79",
+ "bgColor": null,
+ "useAutoIdentifier": false,
+ "bgRelPath": "../../images/levels/maps/pinnacle/pinnacle-1-perch-background.png",
+ "bgPos": "Cover",
+ "bgPivotX": 0.5,
+ "bgPivotY": 0.5,
+ "__smartColor": "#ADADB5",
+ "__bgPos": { "topLeftPx": [0,0], "scale": [1,1], "cropRect": [0,0,1920,4000] },
+ "externalRelPath": "TankmasLand/pinnacle.ldtkl",
+ "fieldInstances": [],
+ "layerInstances": null,
+ "__neighbours": []
}
] },
{ "iid": "0b13d4d0-9b00-11ef-9354-a71a8f29f283", "identifier": "hotel_interior", "defaultLevelWidth": 256, "defaultLevelHeight": 256, "worldGridWidth": 256, "worldGridHeight": 256, "worldLayout": "Free", "levels": [
@@ -1910,7 +1933,7 @@
"bgPivotX": 0,
"bgPivotY": 0,
"__smartColor": "#ADADB5",
- "__bgPos": { "topLeftPx": [0,0], "scale": [1,1], "cropRect": [0,0,3188,4205] },
+ "__bgPos": null,
"externalRelPath": "TankmasLand/hotel_interior.ldtkl",
"fieldInstances": [],
"layerInstances": null,
@@ -1958,7 +1981,7 @@
"bgPivotX": 0,
"bgPivotY": 0,
"__smartColor": "#ADADB5",
- "__bgPos": { "topLeftPx": [0,0], "scale": [1,1], "cropRect": [0,0,4018,3328] },
+ "__bgPos": null,
"externalRelPath": "TankmasLand/theatre.ldtkl",
"fieldInstances": [],
"layerInstances": null,
diff --git a/assets/data/levels/TankmasLand/candle_path.ldtkl b/assets/data/levels/TankmasLand/candle_path.ldtkl
index f550b4fd..bd68c7e6 100644
--- a/assets/data/levels/TankmasLand/candle_path.ldtkl
+++ b/assets/data/levels/TankmasLand/candle_path.ldtkl
@@ -24,7 +24,7 @@
"bgPivotX": 0,
"bgPivotY": 0,
"__smartColor": "#ADADB5",
- "__bgPos": { "topLeftPx": [0,0], "scale": [1,1], "cropRect": [0,0,2316,1559] },
+ "__bgPos": null,
"externalRelPath": null,
"fieldInstances": [],
"layerInstances": [
diff --git a/assets/data/levels/TankmasLand/clearing.ldtkl b/assets/data/levels/TankmasLand/clearing.ldtkl
index 7df87543..c30d1b65 100644
--- a/assets/data/levels/TankmasLand/clearing.ldtkl
+++ b/assets/data/levels/TankmasLand/clearing.ldtkl
@@ -24,7 +24,7 @@
"bgPivotX": 0.5,
"bgPivotY": 0.5,
"__smartColor": "#ADADB5",
- "__bgPos": { "topLeftPx": [0,0], "scale": [1,1], "cropRect": [0,0,1920,1080] },
+ "__bgPos": null,
"externalRelPath": null,
"fieldInstances": [],
"layerInstances": [
diff --git a/assets/data/levels/TankmasLand/hotel_courtyard.ldtkl b/assets/data/levels/TankmasLand/hotel_courtyard.ldtkl
index 31d1096d..aaa043f6 100644
--- a/assets/data/levels/TankmasLand/hotel_courtyard.ldtkl
+++ b/assets/data/levels/TankmasLand/hotel_courtyard.ldtkl
@@ -707,6 +707,44 @@
}] }],
"__worldX": 328,
"__worldY": 1002
+ },
+ {
+ "__identifier": "Decorations_MD",
+ "__grid": [234,2095],
+ "__pivot": [0,0],
+ "__tags": ["Decoration"],
+ "__tile": { "tilesetUid": 61, "x": 1024, "y": 0, "w": 512, "h": 512 },
+ "__smartColor": "#733E39",
+ "iid": "5d79c3e0-c210-11ef-9981-25faad0d1487",
+ "width": 512,
+ "height": 512,
+ "defUid": 59,
+ "px": [234,2095],
+ "fieldInstances": [{ "__identifier": "Tile", "__type": "Tile", "__value": { "tilesetUid": 61, "x": 1024, "y": 0, "w": 512, "h": 512 }, "__tile": { "tilesetUid": 61, "x": 1024, "y": 0, "w": 512, "h": 512 }, "defUid": 60, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["1024,0,512,512"]
+ }] }],
+ "__worldX": 234,
+ "__worldY": 2095
+ },
+ {
+ "__identifier": "Decorations_MD",
+ "__grid": [2142,2445],
+ "__pivot": [0,0],
+ "__tags": ["Decoration"],
+ "__tile": { "tilesetUid": 61, "x": 1024, "y": 0, "w": 512, "h": 512 },
+ "__smartColor": "#733E39",
+ "iid": "5e1f52b0-c210-11ef-9981-c7791c3fe75c",
+ "width": 512,
+ "height": 512,
+ "defUid": 59,
+ "px": [2142,2445],
+ "fieldInstances": [{ "__identifier": "Tile", "__type": "Tile", "__value": { "tilesetUid": 61, "x": 1024, "y": 0, "w": 512, "h": 512 }, "__tile": { "tilesetUid": 61, "x": 1024, "y": 0, "w": 512, "h": 512 }, "defUid": 60, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["1024,0,512,512"]
+ }] }],
+ "__worldX": 2142,
+ "__worldY": 2445
}
]
},
@@ -845,51 +883,6 @@
"__worldX": 2448,
"__worldY": 1920
},
- {
- "__identifier": "Activity_Area",
- "__grid": [103,154],
- "__pivot": [0.5,0.5],
- "__tags": [],
- "__tile": null,
- "__smartColor": "#484BFF",
- "iid": "d04eb910-9b00-11ef-a438-bf6fb7c2c1d9",
- "width": 880,
- "height": 880,
- "defUid": 24,
- "px": [1648,2464],
- "fieldInstances": [{ "__identifier": "ActivityType", "__type": "LocalEnum.ActivityType", "__value": "Bonfire", "__tile": null, "defUid": 26, "realEditorValues": [{
- "id": "V_String",
- "params": ["Bonfire"]
- }] }],
- "__worldX": 1648,
- "__worldY": 2464
- },
- {
- "__identifier": "Graphic",
- "__grid": [75,83],
- "__pivot": [0,0],
- "__tags": [],
- "__tile": null,
- "__smartColor": "#E4A672",
- "iid": "c4cc78a0-9b00-11ef-9727-ab7990037f30",
- "width": 919,
- "height": 1374,
- "defUid": 29,
- "px": [1211,1338],
- "fieldInstances": [
- { "__identifier": "name", "__type": "String", "__value": "outside-bonfire", "__tile": null, "defUid": 31, "realEditorValues": [{
- "id": "V_String",
- "params": ["outside-bonfire"]
- }] },
- { "__identifier": "layer", "__type": "LocalEnum.PropLayer", "__value": "Back", "__tile": null, "defUid": 34, "realEditorValues": [] },
- { "__identifier": "Is_YSortable", "__type": "Bool", "__value": true, "__tile": null, "defUid": 88, "realEditorValues": [{
- "id": "V_Bool",
- "params": [ true ]
- }] }
- ],
- "__worldX": 1211,
- "__worldY": 1338
- },
{
"__identifier": "Present",
"__grid": [91,109],
@@ -959,30 +952,6 @@
"__worldX": 1936,
"__worldY": 1824
},
- {
- "__identifier": "NPC",
- "__grid": [6,190],
- "__pivot": [0,0],
- "__tags": [],
- "__tile": null,
- "__smartColor": "#FF00D0",
- "iid": "8f69cf50-9b00-11ef-a64d-9b8df78d628e",
- "width": 128,
- "height": 128,
- "defUid": 10,
- "px": [96,3040],
- "fieldInstances": [
- { "__identifier": "name", "__type": "String", "__value": "mallow", "__tile": null, "defUid": 11, "realEditorValues": [{
- "id": "V_String",
- "params": ["mallow"]
- }] },
- { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
- { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
- { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
- ],
- "__worldX": 96,
- "__worldY": 3040
- },
{
"__identifier": "Present",
"__grid": [67,106],
@@ -1060,22 +1029,6 @@
"__worldX": 3184,
"__worldY": 1696
},
- {
- "__identifier": "Player",
- "__grid": [98,65],
- "__pivot": [0,0],
- "__tags": [],
- "__tile": null,
- "__smartColor": "#46BE2F",
- "iid": "1134a0d0-9b00-11ef-83c5-874f90586fad",
- "width": 128,
- "height": 128,
- "defUid": 1,
- "px": [1568,1040],
- "fieldInstances": [],
- "__worldX": 1568,
- "__worldY": 1040
- },
{
"__identifier": "Graphic",
"__grid": [190,133],
@@ -1174,7 +1127,7 @@
},
{
"__identifier": "NPC",
- "__grid": [32,139],
+ "__grid": [164,192],
"__pivot": [0,0],
"__tags": [],
"__tile": null,
@@ -1183,7 +1136,7 @@
"width": 128,
"height": 128,
"defUid": 10,
- "px": [512,2224],
+ "px": [2624,3072],
"fieldInstances": [
{ "__identifier": "name", "__type": "String", "__value": "mall-santa", "__tile": null, "defUid": 11, "realEditorValues": [{
"id": "V_String",
@@ -1196,8 +1149,8 @@
{ "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
{ "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
],
- "__worldX": 512,
- "__worldY": 2224
+ "__worldX": 2624,
+ "__worldY": 3072
},
{
"__identifier": "Door",
@@ -1410,6 +1363,53 @@
}] }],
"__worldX": 720,
"__worldY": 704
+ },
+ {
+ "__identifier": "Door",
+ "__grid": [0,144],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FFF100",
+ "iid": "e619e140-c210-11ef-9085-95115ce51b44",
+ "width": 48,
+ "height": 656,
+ "defUid": 14,
+ "px": [0,2304],
+ "fieldInstances": [
+ { "__identifier": "linked_door", "__type": "EntityRef", "__value": {
+ "entityIid": "92181290-c210-11ef-9085-4382a441a366",
+ "layerIid": "cfdd8c25-c210-11ef-9085-71eae4972b7a",
+ "levelIid": "cfdd8c20-c210-11ef-9085-cd02a811e2b8",
+ "worldIid": "95f97851-73f0-11ef-9983-cda8b61095c5"
+ }, "__tile": null, "defUid": 16, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["92181290-c210-11ef-9085-4382a441a366"]
+ }] },
+ { "__identifier": "spawn", "__type": "Point", "__value": { "cx": 19, "cy": 159 }, "__tile": null, "defUid": 17, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["19,159"]
+ }] },
+ { "__identifier": "flag", "__type": "String", "__value": null, "__tile": null, "defUid": 89, "realEditorValues": [] }
+ ],
+ "__worldX": 0,
+ "__worldY": 2304
+ },
+ {
+ "__identifier": "Player",
+ "__grid": [100,100],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#46BE2F",
+ "iid": "676e0100-c210-11ef-9981-5578eb7fd8b5",
+ "width": 128,
+ "height": 128,
+ "defUid": 1,
+ "px": [1600,1600],
+ "fieldInstances": [],
+ "__worldX": 1600,
+ "__worldY": 1600
}
]
},
diff --git a/assets/data/levels/TankmasLand/hotel_interior.ldtkl b/assets/data/levels/TankmasLand/hotel_interior.ldtkl
index 61001c1a..1493ed14 100644
--- a/assets/data/levels/TankmasLand/hotel_interior.ldtkl
+++ b/assets/data/levels/TankmasLand/hotel_interior.ldtkl
@@ -24,7 +24,7 @@
"bgPivotX": 0,
"bgPivotY": 0,
"__smartColor": "#ADADB5",
- "__bgPos": { "topLeftPx": [0,0], "scale": [1,1], "cropRect": [0,0,3188,4205] },
+ "__bgPos": null,
"externalRelPath": null,
"fieldInstances": [],
"layerInstances": [
diff --git a/assets/data/levels/TankmasLand/pinnacle.ldtkl b/assets/data/levels/TankmasLand/pinnacle.ldtkl
new file mode 100644
index 00000000..c09783cd
--- /dev/null
+++ b/assets/data/levels/TankmasLand/pinnacle.ldtkl
@@ -0,0 +1,741 @@
+{
+ "__header__": {
+ "fileType": "LDtk Project JSON",
+ "app": "LDtk",
+ "doc": "https://ldtk.io/json",
+ "schema": "https://ldtk.io/files/JSON_SCHEMA.json",
+ "appAuthor": "Sebastien 'deepnight' Benard",
+ "appVersion": "1.5.4",
+ "url": "https://ldtk.io"
+ },
+ "identifier": "pinnacle",
+ "iid": "cfdd8c20-c210-11ef-9085-cd02a811e2b8",
+ "uid": 92,
+ "worldX": -2560,
+ "worldY": -544,
+ "worldDepth": 0,
+ "pxWid": 1920,
+ "pxHei": 4000,
+ "__bgColor": "#696A79",
+ "bgColor": null,
+ "useAutoIdentifier": false,
+ "bgRelPath": "../../images/levels/maps/pinnacle/pinnacle-1-perch-background.png",
+ "bgPos": "Cover",
+ "bgPivotX": 0.5,
+ "bgPivotY": 0.5,
+ "__smartColor": "#ADADB5",
+ "__bgPos": { "topLeftPx": [0,0], "scale": [1,1], "cropRect": [0,0,1920,4000] },
+ "externalRelPath": null,
+ "fieldInstances": [],
+ "layerInstances": [
+ {
+ "__identifier": "Collision",
+ "__type": "Entities",
+ "__cWid": 120,
+ "__cHei": 250,
+ "__gridSize": 16,
+ "__opacity": 1,
+ "__pxTotalOffsetX": 0,
+ "__pxTotalOffsetY": 0,
+ "__tilesetDefUid": null,
+ "__tilesetRelPath": null,
+ "iid": "cfdd8c21-c210-11ef-9085-fb0bb7c8d314",
+ "levelId": 92,
+ "layerDefUid": 52,
+ "pxOffsetX": 0,
+ "pxOffsetY": 0,
+ "visible": true,
+ "optionalRules": [],
+ "intGridCsv": [],
+ "autoLayerTiles": [],
+ "seed": 7993960,
+ "overrideTilesetUid": null,
+ "gridTiles": [],
+ "entityInstances": [
+ {
+ "__identifier": "CollisionSquare",
+ "__grid": [0,72],
+ "__pivot": [0,0],
+ "__tags": ["Collision"],
+ "__tile": null,
+ "__smartColor": "#FF0808",
+ "iid": "31911d80-c210-11ef-9085-dd52df866e27",
+ "width": 16,
+ "height": 2848,
+ "defUid": 44,
+ "px": [0,1152],
+ "fieldInstances": [],
+ "__worldX": -2560,
+ "__worldY": 608
+ },
+ {
+ "__identifier": "CollisionSquare",
+ "__grid": [119,71],
+ "__pivot": [0,0],
+ "__tags": ["Collision"],
+ "__tile": null,
+ "__smartColor": "#FF0808",
+ "iid": "37551910-c210-11ef-9085-fbae726f5615",
+ "width": 16,
+ "height": 2864,
+ "defUid": 44,
+ "px": [1904,1136],
+ "fieldInstances": [],
+ "__worldX": -656,
+ "__worldY": 592
+ },
+ {
+ "__identifier": "SlopeSE",
+ "__grid": [-1,59],
+ "__pivot": [0,0],
+ "__tags": ["Collision"],
+ "__tile": { "tilesetUid": 19, "x": 64, "y": 32, "w": 32, "h": 32 },
+ "__smartColor": "#FF0808",
+ "iid": "3e91d1f0-c210-11ef-9085-8d601b9a4cb1",
+ "width": 736,
+ "height": 224,
+ "defUid": 55,
+ "px": [-16,944],
+ "fieldInstances": [],
+ "__worldX": -2576,
+ "__worldY": 400
+ },
+ {
+ "__identifier": "CollisionSquare",
+ "__grid": [43,59],
+ "__pivot": [0,0],
+ "__tags": ["Collision"],
+ "__tile": null,
+ "__smartColor": "#FF0808",
+ "iid": "4a727060-c210-11ef-9085-4960414e9e6d",
+ "width": 336,
+ "height": 16,
+ "defUid": 44,
+ "px": [688,944],
+ "fieldInstances": [],
+ "__worldX": -1872,
+ "__worldY": 400
+ },
+ {
+ "__identifier": "SlopeSE",
+ "__grid": [64,59],
+ "__pivot": [0,0],
+ "__tags": ["Collision"],
+ "__tile": { "tilesetUid": 19, "x": 64, "y": 32, "w": 32, "h": 32 },
+ "__smartColor": "#FF0808",
+ "iid": "4ffd5a90-c210-11ef-9085-c1e1ca3e0983",
+ "width": 16,
+ "height": 16,
+ "defUid": 55,
+ "px": [1024,944],
+ "fieldInstances": [],
+ "__worldX": -1536,
+ "__worldY": 400
+ },
+ {
+ "__identifier": "CollisionSquare",
+ "__grid": [64,58],
+ "__pivot": [0,0],
+ "__tags": ["Collision"],
+ "__tile": null,
+ "__smartColor": "#FF0808",
+ "iid": "51e1f910-c210-11ef-9085-0b52d4f00f47",
+ "width": 288,
+ "height": 16,
+ "defUid": 44,
+ "px": [1024,928],
+ "fieldInstances": [],
+ "__worldX": -1536,
+ "__worldY": 384
+ },
+ {
+ "__identifier": "SlopeSW",
+ "__grid": [80,58],
+ "__pivot": [0,0],
+ "__tags": ["Collision"],
+ "__tile": { "tilesetUid": 19, "x": 96, "y": 32, "w": 32, "h": 32 },
+ "__smartColor": "#FF0808",
+ "iid": "56550aa0-c210-11ef-9085-b7313c02763b",
+ "width": 656,
+ "height": 224,
+ "defUid": 56,
+ "px": [1280,928],
+ "fieldInstances": [],
+ "__worldX": -1280,
+ "__worldY": 384
+ },
+ {
+ "__identifier": "CollisionSquare",
+ "__grid": [0,0],
+ "__pivot": [0,0],
+ "__tags": ["Collision"],
+ "__tile": null,
+ "__smartColor": "#FF0808",
+ "iid": "e51982d0-c210-11ef-9981-230dded8678c",
+ "width": 1920,
+ "height": 928,
+ "defUid": 44,
+ "px": [0,0],
+ "fieldInstances": [],
+ "__worldX": -2560,
+ "__worldY": -544
+ },
+ {
+ "__identifier": "CollisionSquare",
+ "__grid": [1,249],
+ "__pivot": [0,0],
+ "__tags": ["Collision"],
+ "__tile": null,
+ "__smartColor": "#FF0808",
+ "iid": "d7e1ff90-c210-11ef-9981-13f20a2ef8ac",
+ "width": 1888,
+ "height": 16,
+ "defUid": 44,
+ "px": [16,3984],
+ "fieldInstances": [],
+ "__worldX": -2544,
+ "__worldY": 3440
+ }
+ ]
+ },
+ {
+ "__identifier": "Decorations1",
+ "__type": "Entities",
+ "__cWid": 1920,
+ "__cHei": 4000,
+ "__gridSize": 1,
+ "__opacity": 1,
+ "__pxTotalOffsetX": 0,
+ "__pxTotalOffsetY": 0,
+ "__tilesetDefUid": null,
+ "__tilesetRelPath": null,
+ "iid": "cfdd8c22-c210-11ef-9085-e5b046455b23",
+ "levelId": 92,
+ "layerDefUid": 54,
+ "pxOffsetX": 0,
+ "pxOffsetY": 0,
+ "visible": true,
+ "optionalRules": [],
+ "intGridCsv": [],
+ "autoLayerTiles": [],
+ "seed": 4790269,
+ "overrideTilesetUid": null,
+ "gridTiles": [],
+ "entityInstances": []
+ },
+ {
+ "__identifier": "Decorations2",
+ "__type": "Entities",
+ "__cWid": 1920,
+ "__cHei": 4000,
+ "__gridSize": 1,
+ "__opacity": 1,
+ "__pxTotalOffsetX": 0,
+ "__pxTotalOffsetY": 0,
+ "__tilesetDefUid": null,
+ "__tilesetRelPath": null,
+ "iid": "cfdd8c23-c210-11ef-9085-71d2e67900d3",
+ "levelId": 92,
+ "layerDefUid": 80,
+ "pxOffsetX": 0,
+ "pxOffsetY": 0,
+ "visible": true,
+ "optionalRules": [],
+ "intGridCsv": [],
+ "autoLayerTiles": [],
+ "seed": 1974860,
+ "overrideTilesetUid": null,
+ "gridTiles": [],
+ "entityInstances": []
+ },
+ {
+ "__identifier": "Decorations3",
+ "__type": "Entities",
+ "__cWid": 1920,
+ "__cHei": 4000,
+ "__gridSize": 1,
+ "__opacity": 1,
+ "__pxTotalOffsetX": 0,
+ "__pxTotalOffsetY": 0,
+ "__tilesetDefUid": null,
+ "__tilesetRelPath": null,
+ "iid": "cfdd8c24-c210-11ef-9085-05b07637b860",
+ "levelId": 92,
+ "layerDefUid": 87,
+ "pxOffsetX": 0,
+ "pxOffsetY": 0,
+ "visible": true,
+ "optionalRules": [],
+ "intGridCsv": [],
+ "autoLayerTiles": [],
+ "seed": 2731894,
+ "overrideTilesetUid": null,
+ "gridTiles": [],
+ "entityInstances": []
+ },
+ {
+ "__identifier": "Entities",
+ "__type": "Entities",
+ "__cWid": 120,
+ "__cHei": 250,
+ "__gridSize": 16,
+ "__opacity": 1,
+ "__pxTotalOffsetX": 0,
+ "__pxTotalOffsetY": 0,
+ "__tilesetDefUid": null,
+ "__tilesetRelPath": null,
+ "iid": "cfdd8c25-c210-11ef-9085-71eae4972b7a",
+ "levelId": 92,
+ "layerDefUid": 8,
+ "pxOffsetX": 0,
+ "pxOffsetY": 0,
+ "visible": true,
+ "optionalRules": [],
+ "intGridCsv": [],
+ "autoLayerTiles": [],
+ "seed": 1494268,
+ "overrideTilesetUid": null,
+ "gridTiles": [],
+ "entityInstances": [
+ {
+ "__identifier": "Door",
+ "__grid": [51,247],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FFF100",
+ "iid": "92181290-c210-11ef-9085-4382a441a366",
+ "width": 1104,
+ "height": 48,
+ "defUid": 14,
+ "px": [816,3952],
+ "fieldInstances": [
+ { "__identifier": "linked_door", "__type": "EntityRef", "__value": {
+ "entityIid": "e619e140-c210-11ef-9085-95115ce51b44",
+ "layerIid": "1f4bee20-73f0-11ef-9983-a7372464c4f6",
+ "levelIid": "95f99f60-73f0-11ef-9983-612730a885a0",
+ "worldIid": "95f97851-73f0-11ef-9983-cda8b61095c5"
+ }, "__tile": null, "defUid": 16, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["e619e140-c210-11ef-9085-95115ce51b44"]
+ }] },
+ { "__identifier": "spawn", "__type": "Point", "__value": { "cx": 88, "cy": 237 }, "__tile": null, "defUid": 17, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["88,237"]
+ }] },
+ { "__identifier": "flag", "__type": "String", "__value": null, "__tile": null, "defUid": 89, "realEditorValues": [] }
+ ],
+ "__worldX": -1744,
+ "__worldY": 3408
+ },
+ {
+ "__identifier": "Misc",
+ "__grid": [0,0],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FFE600",
+ "iid": "5920b4b0-c210-11ef-9981-7373d13ee675",
+ "width": 1920,
+ "height": 1080,
+ "defUid": 49,
+ "px": [0,0],
+ "fieldInstances": [{ "__identifier": "name", "__type": "String", "__value": "credits", "__tile": null, "defUid": 50, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["credits"]
+ }] }],
+ "__worldX": -2560,
+ "__worldY": -544
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [57,118],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "507da450-c210-11ef-9981-dd7ab68b42f4",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [912,1888],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "lil-jimby", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["lil-jimby"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -1648,
+ "__worldY": 1344
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [76,109],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "55652290-c210-11ef-9981-d53f2f5bb53b",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [1216,1744],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "javert", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["javert"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -1344,
+ "__worldY": 1200
+ },
+ {
+ "__identifier": "Present",
+ "__grid": [60,83],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#D74343",
+ "iid": "5fd47dc0-c210-11ef-9981-856c3a3d5dfb",
+ "width": 128,
+ "height": 128,
+ "defUid": 2,
+ "px": [960,1328],
+ "fieldInstances": [
+ { "__identifier": "username", "__type": "String", "__value": "kingcrowned-2", "__tile": null, "defUid": 5, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["kingcrowned-2"]
+ }] },
+ { "__identifier": "day", "__type": "Int", "__value": 32, "__tile": null, "defUid": 6, "realEditorValues": [{ "id": "V_Int", "params": [32] }] },
+ { "__identifier": "timelock", "__type": "String", "__value": "1735786050", "__tile": null, "defUid": 58, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["1735786050"]
+ }] }
+ ],
+ "__worldX": -1600,
+ "__worldY": 784
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [14,194],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "76155b30-c210-11ef-9981-354d46f803b4",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [224,3104],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "peanutbudder-santa", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["peanutbudder-santa"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -2336,
+ "__worldY": 2560
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [15,124],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "807e4dc0-c210-11ef-9981-5bccfd36f57d",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [240,1984],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "project-154", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["project-154"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -2320,
+ "__worldY": 1440
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [50,218],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "857c3a30-c210-11ef-9981-ebe8840e64bc",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [800,3488],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "concierge", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["concierge"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -1760,
+ "__worldY": 2944
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [75,201],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "8d94fb30-c210-11ef-9981-db176eb75d82",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [1200,3216],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "backpacker-jill", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["backpacker-jill"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -1360,
+ "__worldY": 2672
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [51,195],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "9c02ad20-c210-11ef-9981-87175c7853f1",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [816,3120],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "mallow", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["mallow"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -1744,
+ "__worldY": 2576
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [98,132],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "abbeff20-c210-11ef-9981-ed2e5a6e4b17",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [1568,2112],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "pompous-joan", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["pompous-joan"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -992,
+ "__worldY": 1568
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [63,165],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "b2e10410-c210-11ef-9981-bb47194c2bf5",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [1008,2640],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "gold-miser-jacquez", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["gold-miser-jacquez"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -1552,
+ "__worldY": 2096
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [30,184],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "bdf63c30-c210-11ef-9981-294e28509029",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [480,2944],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "blade-the-hedgehog", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["blade-the-hedgehog"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -2080,
+ "__worldY": 2400
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [29,149],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "c55941c0-c210-11ef-9981-d762466883e7",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [464,2384],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "persimmon-man", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["persimmon-man"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -2096,
+ "__worldY": 1840
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [99,110],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "e1b51560-c210-11ef-9981-87f561d51333",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [1584,1760],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "pony-boy", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["pony-boy"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -976,
+ "__worldY": 1216
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [77,129],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "ecfa8540-c210-11ef-9981-f5c7e3f55697",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [1232,2064],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "box", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["box"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -1328,
+ "__worldY": 1520
+ },
+ {
+ "__identifier": "NPC",
+ "__grid": [10,167],
+ "__pivot": [0,0],
+ "__tags": [],
+ "__tile": null,
+ "__smartColor": "#FF00D0",
+ "iid": "ff588430-c210-11ef-9981-09fbb00a7411",
+ "width": 128,
+ "height": 128,
+ "defUid": 10,
+ "px": [160,2672],
+ "fieldInstances": [
+ { "__identifier": "name", "__type": "String", "__value": "captain-carrion", "__tile": null, "defUid": 11, "realEditorValues": [{
+ "id": "V_String",
+ "params": ["captain-carrion"]
+ }] },
+ { "__identifier": "timelock", "__type": "String", "__value": null, "__tile": null, "defUid": 38, "realEditorValues": [] },
+ { "__identifier": "if_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 90, "realEditorValues": [] },
+ { "__identifier": "unless_flag", "__type": "String", "__value": null, "__tile": null, "defUid": 91, "realEditorValues": [] }
+ ],
+ "__worldX": -2400,
+ "__worldY": 2128
+ }
+ ]
+ },
+ {
+ "__identifier": "Tiles",
+ "__type": "Tiles",
+ "__cWid": 60,
+ "__cHei": 125,
+ "__gridSize": 32,
+ "__opacity": 1,
+ "__pxTotalOffsetX": 0,
+ "__pxTotalOffsetY": 0,
+ "__tilesetDefUid": 19,
+ "__tilesetRelPath": "../../images/levels/tiles/tile-collision.png",
+ "iid": "cfdd8c26-c210-11ef-9085-2523e33a4fb1",
+ "levelId": 92,
+ "layerDefUid": 9,
+ "pxOffsetX": 0,
+ "pxOffsetY": 0,
+ "visible": true,
+ "optionalRules": [],
+ "intGridCsv": [],
+ "autoLayerTiles": [],
+ "seed": 4626664,
+ "overrideTilesetUid": null,
+ "gridTiles": [],
+ "entityInstances": []
+ }
+ ],
+ "__neighbours": []
+}
\ No newline at end of file
diff --git a/assets/data/levels/TankmasLand/theatre.ldtkl b/assets/data/levels/TankmasLand/theatre.ldtkl
index c7dd1254..d3c01ba7 100644
--- a/assets/data/levels/TankmasLand/theatre.ldtkl
+++ b/assets/data/levels/TankmasLand/theatre.ldtkl
@@ -24,7 +24,7 @@
"bgPivotX": 0,
"bgPivotY": 0,
"__smartColor": "#ADADB5",
- "__bgPos": { "topLeftPx": [0,0], "scale": [1,1], "cropRect": [0,0,4018,3328] },
+ "__bgPos": null,
"externalRelPath": null,
"fieldInstances": [],
"layerInstances": [
diff --git a/assets/images/art/day-32-art-kingcrowned-2.png b/assets/images/art/day-32-art-kingcrowned-2.png
new file mode 100644
index 00000000..5d7b6203
Binary files /dev/null and b/assets/images/art/day-32-art-kingcrowned-2.png differ
diff --git a/assets/images/art/god-dang-thats-a-lotta-presents/day-26-art-tamag0.png b/assets/images/art/god-dang-thats-a-lotta-presents/day-26-art-tamag0.png
deleted file mode 100644
index 6c3d2850..00000000
Binary files a/assets/images/art/god-dang-thats-a-lotta-presents/day-26-art-tamag0.png and /dev/null differ
diff --git a/assets/images/decorations_md.png b/assets/images/decorations_md.png
deleted file mode 100644
index 8d237944..00000000
Binary files a/assets/images/decorations_md.png and /dev/null differ
diff --git a/assets/images/interactables/presents/day-32-present-kingcrowned-2.png b/assets/images/interactables/presents/day-32-present-kingcrowned-2.png
new file mode 100644
index 00000000..d42eb851
Binary files /dev/null and b/assets/images/interactables/presents/day-32-present-kingcrowned-2.png differ
diff --git a/assets/images/levels/maps/courtyard/candle-path-background.jpg b/assets/images/levels/maps/forest/candle-path-background.jpg
similarity index 100%
rename from assets/images/levels/maps/courtyard/candle-path-background.jpg
rename to assets/images/levels/maps/forest/candle-path-background.jpg
diff --git a/assets/images/levels/maps/courtyard/candle-path-foreground.png b/assets/images/levels/maps/forest/candle-path-foreground.png
similarity index 100%
rename from assets/images/levels/maps/courtyard/candle-path-foreground.png
rename to assets/images/levels/maps/forest/candle-path-foreground.png
diff --git a/assets/images/levels/maps/courtyard/clearing-background.png b/assets/images/levels/maps/forest/clearing-background.png
similarity index 100%
rename from assets/images/levels/maps/courtyard/clearing-background.png
rename to assets/images/levels/maps/forest/clearing-background.png
diff --git a/assets/images/levels/maps/courtyard/clearing-foreground.png b/assets/images/levels/maps/forest/clearing-foreground.png
similarity index 100%
rename from assets/images/levels/maps/courtyard/clearing-foreground.png
rename to assets/images/levels/maps/forest/clearing-foreground.png
diff --git a/assets/images/levels/maps/courtyard/hotel-lobby-background-small.jpg b/assets/images/levels/maps/lobby/hotel-lobby-background-small.jpg
similarity index 100%
rename from assets/images/levels/maps/courtyard/hotel-lobby-background-small.jpg
rename to assets/images/levels/maps/lobby/hotel-lobby-background-small.jpg
diff --git a/assets/images/levels/maps/courtyard/hotel-lobby-background.jpg b/assets/images/levels/maps/lobby/hotel-lobby-background.jpg
similarity index 100%
rename from assets/images/levels/maps/courtyard/hotel-lobby-background.jpg
rename to assets/images/levels/maps/lobby/hotel-lobby-background.jpg
diff --git a/assets/images/levels/maps/courtyard/hotel-lobby-foreground-small.png b/assets/images/levels/maps/lobby/hotel-lobby-foreground-small.png
similarity index 100%
rename from assets/images/levels/maps/courtyard/hotel-lobby-foreground-small.png
rename to assets/images/levels/maps/lobby/hotel-lobby-foreground-small.png
diff --git a/assets/images/levels/maps/courtyard/hotel-lobby-foreground.png b/assets/images/levels/maps/lobby/hotel-lobby-foreground.png
similarity index 100%
rename from assets/images/levels/maps/courtyard/hotel-lobby-foreground.png
rename to assets/images/levels/maps/lobby/hotel-lobby-foreground.png
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-1-perch-background.png b/assets/images/levels/maps/pinnacle/pinnacle-1-perch-background.png
new file mode 100644
index 00000000..2cb4a981
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-1-perch-background.png differ
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-1-perch-foreground.png b/assets/images/levels/maps/pinnacle/pinnacle-1-perch-foreground.png
new file mode 100644
index 00000000..43b38a09
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-1-perch-foreground.png differ
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-2-mountains.png b/assets/images/levels/maps/pinnacle/pinnacle-2-mountains.png
new file mode 100644
index 00000000..c055fdf1
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-2-mountains.png differ
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-3-stars-fx.aseprite b/assets/images/levels/maps/pinnacle/pinnacle-3-stars-fx.aseprite
new file mode 100644
index 00000000..77a46b7c
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-3-stars-fx.aseprite differ
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-3-stars-fx.png b/assets/images/levels/maps/pinnacle/pinnacle-3-stars-fx.png
new file mode 100644
index 00000000..a9298371
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-3-stars-fx.png differ
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-3-stars.png b/assets/images/levels/maps/pinnacle/pinnacle-3-stars.png
new file mode 100644
index 00000000..a9298371
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-3-stars.png differ
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-4-aurora-fx.aseprite b/assets/images/levels/maps/pinnacle/pinnacle-4-aurora-fx.aseprite
new file mode 100644
index 00000000..f0eb5424
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-4-aurora-fx.aseprite differ
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-4-aurora-fx.png b/assets/images/levels/maps/pinnacle/pinnacle-4-aurora-fx.png
new file mode 100644
index 00000000..72a7ab79
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-4-aurora-fx.png differ
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-4-aurora.png b/assets/images/levels/maps/pinnacle/pinnacle-4-aurora.png
new file mode 100644
index 00000000..712886c9
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-4-aurora.png differ
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-pre-background.png b/assets/images/levels/maps/pinnacle/pinnacle-pre-background.png
new file mode 100644
index 00000000..3cdc6ee4
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-pre-background.png differ
diff --git a/assets/images/levels/maps/pinnacle/pinnacle-pre-foreground.png b/assets/images/levels/maps/pinnacle/pinnacle-pre-foreground.png
new file mode 100644
index 00000000..0f704327
Binary files /dev/null and b/assets/images/levels/maps/pinnacle/pinnacle-pre-foreground.png differ
diff --git a/assets/images/levels/maps/movie-theater-background.jpg b/assets/images/levels/maps/theater/movie-theater-background.jpg
similarity index 100%
rename from assets/images/levels/maps/movie-theater-background.jpg
rename to assets/images/levels/maps/theater/movie-theater-background.jpg
diff --git a/assets/images/levels/maps/movie-theater-foreground.png b/assets/images/levels/maps/theater/movie-theater-foreground.png
similarity index 100%
rename from assets/images/levels/maps/movie-theater-foreground.png
rename to assets/images/levels/maps/theater/movie-theater-foreground.png
diff --git a/assets/images/levels/maps/movie-theater-reference.jpg b/assets/images/levels/maps/theater/movie-theater-reference.jpg
similarity index 100%
rename from assets/images/levels/maps/movie-theater-reference.jpg
rename to assets/images/levels/maps/theater/movie-theater-reference.jpg
diff --git a/assets/images/props/decorations_md.png b/assets/images/props/decorations_md.png
index 7cd94fd8..1bfa3215 100644
Binary files a/assets/images/props/decorations_md.png and b/assets/images/props/decorations_md.png differ
diff --git a/assets/images/stickers/a-well-earned-rest.png b/assets/images/stickers/a-well-earned-rest.png
new file mode 100644
index 00000000..451f25b2
Binary files /dev/null and b/assets/images/stickers/a-well-earned-rest.png differ
diff --git a/assets/images/stickers/a-well-earned-rest1.png b/assets/images/stickers/a-well-earned-rest1.png
new file mode 100644
index 00000000..ebc35d0e
Binary files /dev/null and b/assets/images/stickers/a-well-earned-rest1.png differ
diff --git a/assets/images/stickers/a-well-earned-rest2.png b/assets/images/stickers/a-well-earned-rest2.png
new file mode 100644
index 00000000..62435693
Binary files /dev/null and b/assets/images/stickers/a-well-earned-rest2.png differ
diff --git a/assets/images/stickers/chatterbox.png b/assets/images/stickers/chatterbox.png
new file mode 100644
index 00000000..f128637a
Binary files /dev/null and b/assets/images/stickers/chatterbox.png differ
diff --git a/assets/images/stickers/chris.png b/assets/images/stickers/chris.png
deleted file mode 100644
index 032a7088..00000000
Binary files a/assets/images/stickers/chris.png and /dev/null differ
diff --git a/assets/images/stickers/cordelia-rofl.png b/assets/images/stickers/cordelia-rofl.png
new file mode 100644
index 00000000..7fa81daa
Binary files /dev/null and b/assets/images/stickers/cordelia-rofl.png differ
diff --git a/assets/images/stickers/mella-cuddle.png b/assets/images/stickers/mella-cuddle.png
new file mode 100644
index 00000000..2a1ec0ef
Binary files /dev/null and b/assets/images/stickers/mella-cuddle.png differ
diff --git a/assets/images/stickers/nazos-power.png b/assets/images/stickers/nazos-power.png
new file mode 100644
index 00000000..04289d60
Binary files /dev/null and b/assets/images/stickers/nazos-power.png differ
diff --git a/assets/images/stickers/poppy.png b/assets/images/stickers/poppy.png
new file mode 100644
index 00000000..44a56ba7
Binary files /dev/null and b/assets/images/stickers/poppy.png differ
diff --git a/assets/images/stickers/smile-pim.png b/assets/images/stickers/smile-pim.png
new file mode 100644
index 00000000..66d5b929
Binary files /dev/null and b/assets/images/stickers/smile-pim.png differ
diff --git a/assets/images/ui/credits/credits-screenshots.aseprite b/assets/images/ui/credits/credits-screenshots.aseprite
new file mode 100644
index 00000000..9bf64fc6
Binary files /dev/null and b/assets/images/ui/credits/credits-screenshots.aseprite differ
diff --git a/assets/images/ui/credits/credits-screenshots.png b/assets/images/ui/credits/credits-screenshots.png
new file mode 100644
index 00000000..84b91645
Binary files /dev/null and b/assets/images/ui/credits/credits-screenshots.png differ
diff --git a/assets/images/ui/credits/fireworks.aseprite b/assets/images/ui/credits/fireworks.aseprite
new file mode 100644
index 00000000..a4229553
Binary files /dev/null and b/assets/images/ui/credits/fireworks.aseprite differ
diff --git a/assets/images/ui/credits/fireworks.png b/assets/images/ui/credits/fireworks.png
new file mode 100644
index 00000000..d01f90a4
Binary files /dev/null and b/assets/images/ui/credits/fireworks.png differ
diff --git a/assets/sounds/fx/firework-1.mp3 b/assets/sounds/fx/firework-1.mp3
new file mode 100644
index 00000000..f8492fe1
Binary files /dev/null and b/assets/sounds/fx/firework-1.mp3 differ
diff --git a/assets/sounds/fx/firework-1.ogg b/assets/sounds/fx/firework-1.ogg
new file mode 100644
index 00000000..12e2d36c
Binary files /dev/null and b/assets/sounds/fx/firework-1.ogg differ
diff --git a/assets/sounds/fx/firework-2.mp3 b/assets/sounds/fx/firework-2.mp3
new file mode 100644
index 00000000..f040c50d
Binary files /dev/null and b/assets/sounds/fx/firework-2.mp3 differ
diff --git a/assets/sounds/fx/firework-2.ogg b/assets/sounds/fx/firework-2.ogg
new file mode 100644
index 00000000..7503e900
Binary files /dev/null and b/assets/sounds/fx/firework-2.ogg differ
diff --git a/assets/sounds/fx/firework-3.mp3 b/assets/sounds/fx/firework-3.mp3
new file mode 100644
index 00000000..2f4dd677
Binary files /dev/null and b/assets/sounds/fx/firework-3.mp3 differ
diff --git a/assets/sounds/fx/firework-3.ogg b/assets/sounds/fx/firework-3.ogg
new file mode 100644
index 00000000..3c70614a
Binary files /dev/null and b/assets/sounds/fx/firework-3.ogg differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-15-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-15-file-1.mp3
deleted file mode 100644
index 21d839d7..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-15-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-15-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-15-file-1.ogg
deleted file mode 100644
index 059164d6..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-15-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-16-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-16-file-1.mp3
deleted file mode 100644
index 8f987235..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-16-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-16-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-16-file-1.ogg
deleted file mode 100644
index 17d9f83a..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-16-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-21-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-21-file-1.mp3
deleted file mode 100644
index 849ec685..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-21-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-21-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-21-file-1.ogg
deleted file mode 100644
index c33d0b3a..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-21-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-22-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-22-file-1.mp3
deleted file mode 100644
index 5bc73311..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-22-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-22-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-22-file-1.ogg
deleted file mode 100644
index d3e203e7..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/captain-steveroute-page-22-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-1-2-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-1-2-file-1.mp3
deleted file mode 100644
index 5e38e07d..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-1-2-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-1.mp3
deleted file mode 100644
index fceffffe..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-1.ogg
deleted file mode 100644
index c259b1a0..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-2.mp3
deleted file mode 100644
index ae587d19..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-2.ogg
deleted file mode 100644
index 58506deb..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-3.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-3.mp3
deleted file mode 100644
index 377c5f37..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-3.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-3.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-3.ogg
deleted file mode 100644
index 3db9840d..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-intro-page-2-file-3.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-outro-page-3-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-outro-page-3-file-1.mp3
deleted file mode 100644
index 20e50172..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-outro-page-3-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-outro-page-3-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-outro-page-3-file-1.ogg
deleted file mode 100644
index 3ed96d41..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/narrator-outro-page-3-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-1-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-1-file-1.mp3
deleted file mode 100644
index f6460c45..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-1-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-1-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-1-file-2.mp3
deleted file mode 100644
index 3ebe6c59..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-1-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-1-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-1-file-2.ogg
deleted file mode 100644
index ac4c50de..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-1-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-2-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-2-file-1.mp3
deleted file mode 100644
index d80b6a34..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-2-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-2-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-2-file-1.ogg
deleted file mode 100644
index 7aa97bed..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-2-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-3-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-3-file-1.mp3
deleted file mode 100644
index a0439a80..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-3-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-3-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-3-file-1.ogg
deleted file mode 100644
index 4cc17a6f..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/nyx-outro-page-3-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-1.mp3
deleted file mode 100644
index bee79752..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-1.ogg
deleted file mode 100644
index 8e22dca2..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-2.mp3
deleted file mode 100644
index af916585..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-2.ogg
deleted file mode 100644
index 632cccfe..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-3.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-3.mp3
deleted file mode 100644
index e0041fad..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-3.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-3.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-3.ogg
deleted file mode 100644
index a1adbd91..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-1-file-3.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-1.mp3
deleted file mode 100644
index 4c29b451..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-1.ogg
deleted file mode 100644
index 0346d5e3..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-2.mp3
deleted file mode 100644
index 837d0627..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-2.ogg
deleted file mode 100644
index 7f52eda2..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-3.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-3.mp3
deleted file mode 100644
index 419c8690..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-3.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-3.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-3.ogg
deleted file mode 100644
index 79049d21..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-2-file-3.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-1.mp3
deleted file mode 100644
index 86038877..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-1.ogg
deleted file mode 100644
index ece7b830..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-2.mp3
deleted file mode 100644
index 01d183ad..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-2.ogg
deleted file mode 100644
index 3ba16238..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-3-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-1.mp3
deleted file mode 100644
index 5b36e60a..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-1.ogg
deleted file mode 100644
index 167af4dd..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-2.mp3
deleted file mode 100644
index ca6e4662..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-2.ogg
deleted file mode 100644
index 9d7be24c..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-4-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-1.mp3
deleted file mode 100644
index d3f0cb3d..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-1.ogg
deleted file mode 100644
index 0f1d638c..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-2.mp3
deleted file mode 100644
index 22ec6c7f..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-2.ogg
deleted file mode 100644
index 036a0028..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-3.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-3.mp3
deleted file mode 100644
index 0c017c99..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-3.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-3.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-3.ogg
deleted file mode 100644
index 5bce2133..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-3.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-4.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-4.mp3
deleted file mode 100644
index 0cb96e30..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-4.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-4.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-4.ogg
deleted file mode 100644
index 7d35fa2b..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-4.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-5.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-5.mp3
deleted file mode 100644
index 8d297944..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-5.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-5.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-5.ogg
deleted file mode 100644
index d2d04c50..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-5-file-5.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-6-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-6-file-1.ogg
deleted file mode 100644
index ae107155..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-intro-page-6-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-1-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-1-file-1.mp3
deleted file mode 100644
index 7cdb8963..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-1-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-1-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-1-file-1.ogg
deleted file mode 100644
index 06a33c6e..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-1-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-1.mp3
deleted file mode 100644
index aa27ca2e..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-1.ogg
deleted file mode 100644
index 00e4df6f..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-2.mp3
deleted file mode 100644
index a6fcd2c2..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-2.ogg
deleted file mode 100644
index 83afc1e8..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-10-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-11-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-11-file-1.mp3
deleted file mode 100644
index 17d0ad68..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-11-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-11-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-11-file-1.ogg
deleted file mode 100644
index acb5bdfd..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-11-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-1.mp3
deleted file mode 100644
index ddb72b93..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-1.ogg
deleted file mode 100644
index 1458409d..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-2.mp3
deleted file mode 100644
index 47d87be5..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-2.ogg
deleted file mode 100644
index e779951c..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-12-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-13-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-13-file-1.mp3
deleted file mode 100644
index e8914615..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-13-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-13-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-13-file-1.ogg
deleted file mode 100644
index e779951c..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-13-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-14-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-14-file-1.mp3
deleted file mode 100644
index de9a2796..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-14-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-14-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-14-file-1.ogg
deleted file mode 100644
index 88593914..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-14-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-15-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-15-file-1.mp3
deleted file mode 100644
index 03ba11dd..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-15-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-15-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-15-file-1.ogg
deleted file mode 100644
index df982640..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-15-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-15-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-15-file-2.ogg
deleted file mode 100644
index 8e208063..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-15-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-16-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-16-file-1.mp3
deleted file mode 100644
index d9ca39ce..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-16-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-16-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-16-file-1.ogg
deleted file mode 100644
index 8487bb7f..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-16-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-17-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-17-file-1.ogg
deleted file mode 100644
index 47a914b6..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-17-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-1.mp3
deleted file mode 100644
index f08605a0..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-1.ogg
deleted file mode 100644
index 02db79ea..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-2.mp3
deleted file mode 100644
index c91edf2c..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-2.ogg
deleted file mode 100644
index 6aa96395..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-18-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-1.mp3
deleted file mode 100644
index 7a47cff1..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-1.ogg
deleted file mode 100644
index c52abb5c..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-2.mp3
deleted file mode 100644
index 8cb85f63..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-2.ogg
deleted file mode 100644
index 4781f873..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-19-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-20-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-20-file-1.mp3
deleted file mode 100644
index df856089..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-20-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-20-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-20-file-1.ogg
deleted file mode 100644
index 2babf0ac..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-20-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-1.mp3
deleted file mode 100644
index fc8f2da2..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-1.ogg
deleted file mode 100644
index 753d1cdf..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-2.mp3
deleted file mode 100644
index 23721689..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-2.ogg
deleted file mode 100644
index 4afd964c..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-3.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-3.mp3
deleted file mode 100644
index 7b79e537..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-3.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-3.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-3.ogg
deleted file mode 100644
index 0dd59f82..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-3.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-4.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-4.mp3
deleted file mode 100644
index 04d10432..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-4.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-4.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-4.ogg
deleted file mode 100644
index a67206a7..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-21-file-4.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-1.mp3
deleted file mode 100644
index c8cc16a0..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-1.ogg
deleted file mode 100644
index e93a91c2..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-2.mp3
deleted file mode 100644
index 539185c8..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-2.ogg
deleted file mode 100644
index 5c1540e8..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-23-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-3-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-3-file-1.mp3
deleted file mode 100644
index c9a179be..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-3-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-3-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-3-file-1.ogg
deleted file mode 100644
index f7afc9f6..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-3-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-4-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-4-file-1.mp3
deleted file mode 100644
index c284652e..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-4-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-4-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-4-file-1.ogg
deleted file mode 100644
index 01e66075..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-4-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-5-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-5-file-1.mp3
deleted file mode 100644
index 877d5faa..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-5-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-5-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-5-file-1.ogg
deleted file mode 100644
index c086914a..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-5-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-7-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-7-file-1.mp3
deleted file mode 100644
index 479f4dc1..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-7-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-7-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-7-file-1.ogg
deleted file mode 100644
index ae60f8b8..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-7-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-8-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-8-file-1.mp3
deleted file mode 100644
index fffe0711..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-8-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-8-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-8-file-1.ogg
deleted file mode 100644
index c6a6a7b2..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-8-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-9-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-9-file-1.mp3
deleted file mode 100644
index 4c82c601..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-9-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-9-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-9-file-1.ogg
deleted file mode 100644
index 39dfc5c6..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-steveroute-page-9-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-10-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-10-file-1.mp3
deleted file mode 100644
index e464355e..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-10-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-10-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-10-file-1.ogg
deleted file mode 100644
index 622e3677..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-10-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-12-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-12-file-1.mp3
deleted file mode 100644
index b219208e..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-12-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-12-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-12-file-1.ogg
deleted file mode 100644
index 03d08a0f..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-12-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-13-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-13-file-1.mp3
deleted file mode 100644
index 30912c22..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-13-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-13-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-13-file-1.ogg
deleted file mode 100644
index d8934ed1..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-13-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-2-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-2-file-1.ogg
deleted file mode 100644
index 67a76064..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-2-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-23-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-23-file-1.mp3
deleted file mode 100644
index 6bb34f43..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-23-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-23-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-23-file-1.ogg
deleted file mode 100644
index 3c3d8280..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-23-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-1.mp3
deleted file mode 100644
index 8acded8f..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-1.ogg
deleted file mode 100644
index e3a09890..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-2.mp3
deleted file mode 100644
index e6b40ef9..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-2.ogg
deleted file mode 100644
index cd50a7b4..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-3-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-4-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-4-file-1.mp3
deleted file mode 100644
index 707135ad..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-4-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-4-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-4-file-1.ogg
deleted file mode 100644
index e6ab56f3..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-4-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-5-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-5-file-1.mp3
deleted file mode 100644
index 09a57e7d..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-5-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-5-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-5-file-1.ogg
deleted file mode 100644
index b44fcfb9..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-5-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-7-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-7-file-1.mp3
deleted file mode 100644
index 198d84a9..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-7-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-7-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-7-file-1.ogg
deleted file mode 100644
index 65ea9038..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-7-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-1.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-1.mp3
deleted file mode 100644
index a02bd43a..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-1.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-1.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-1.ogg
deleted file mode 100644
index 6f0e5429..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-1.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-2.mp3 b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-2.mp3
deleted file mode 100644
index 6236d003..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-2.mp3 and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-2.ogg b/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-2.ogg
deleted file mode 100644
index 76ee5cff..00000000
Binary files a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/steve-steveroute-page-8-file-2.ogg and /dev/null differ
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-1-file-1.mp3 b/assets/tankmas-chronicles/sound/steve/pico-outro-page-1-file-1.mp3
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-1-file-1.mp3
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-1-file-1.mp3
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-1-file-1.ogg b/assets/tankmas-chronicles/sound/steve/pico-outro-page-1-file-1.ogg
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-1-file-1.ogg
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-1-file-1.ogg
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-1-file-2.mp3 b/assets/tankmas-chronicles/sound/steve/pico-outro-page-1-file-2.mp3
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-1-file-2.mp3
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-1-file-2.mp3
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-1-file-2.ogg b/assets/tankmas-chronicles/sound/steve/pico-outro-page-1-file-2.ogg
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-1-file-2.ogg
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-1-file-2.ogg
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-1.mp3 b/assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-1.mp3
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-1.mp3
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-1.mp3
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-1.ogg b/assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-1.ogg
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-1.ogg
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-1.ogg
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-2.mp3 b/assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-2.mp3
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-2.mp3
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-2.mp3
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-2.ogg b/assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-2.ogg
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-2.ogg
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-2.ogg
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-3.mp3 b/assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-3.mp3
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-3.mp3
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-3.mp3
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-3.ogg b/assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-3.ogg
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-3.ogg
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-3.ogg
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-4.mp3 b/assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-4.mp3
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-4.mp3
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-4.mp3
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-4.ogg b/assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-4.ogg
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-2-file-4.ogg
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-2-file-4.ogg
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-3-file-1.mp3 b/assets/tankmas-chronicles/sound/steve/pico-outro-page-3-file-1.mp3
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-3-file-1.mp3
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-3-file-1.mp3
diff --git a/assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-3-file-1.ogg b/assets/tankmas-chronicles/sound/steve/pico-outro-page-3-file-1.ogg
similarity index 100%
rename from assets/tankmas-chronicles/art/steve/Voice Lines/TC Voice Lines/pico-outro-page-3-file-1.ogg
rename to assets/tankmas-chronicles/sound/steve/pico-outro-page-3-file-1.ogg
diff --git a/source/SoundPlayer.hx b/source/SoundPlayer.hx
index 57ee0382..84fd974d 100644
--- a/source/SoundPlayer.hx
+++ b/source/SoundPlayer.hx
@@ -141,7 +141,7 @@ class SoundPlayer
public static var prev_alt_sounds:Map = [];
- public static function alt_sound(slot:String, shuffle:Bool, sounds:Array, ?wait_for_prev_sound:Bool = false)
+ public static function alt_sound(slot:String, shuffle:Bool, sounds:Array, ?wait_for_prev_sound:Bool = false, ?volume:Float = 1)
{
ran = ran != null ? ran : new FlxRandom();
@@ -161,7 +161,7 @@ class SoundPlayer
}
var soundToPlay:String = alt_sounds.get(slot).pop();
- var sound_played:FlxSound = sound(soundToPlay);
+ var sound_played:FlxSound = sound(soundToPlay, volume);
if (wait_for_prev_sound)
{
diff --git a/source/data/SaveManager.hx b/source/data/SaveManager.hx
index 6141c747..bf703307 100644
--- a/source/data/SaveManager.hx
+++ b/source/data/SaveManager.hx
@@ -184,6 +184,10 @@ class SaveManager
Main.ng_api.medal_popup(Main.ng_api.medals.get("awesome-snake"));
case "PLUGGED_IN":
Main.ng_api.medal_popup(Main.ng_api.medals.get("fulp-ware"));
+ case "FINAL_PRESENT_OPENED":
+ Main.ng_api.medal_popup(Main.ng_api.medals.get("final-present"));
+ case "PINNACLE":
+ Main.ng_api.medal_popup(Main.ng_api.medals.get("pinnacle"));
}
}
switch (current_pet)
@@ -192,6 +196,13 @@ class SaveManager
case "penicorn":
Main.ng_api.medal_popup(Main.ng_api.medals.get("penicorn"));
}
+ /*
+ switch (current_costume)
+ {
+ default:
+ case "thomas-2":
+ Main.ng_api.medal_popup(Main.ng_api.medals.get("faker"));
+ }*/
#end
}
diff --git a/source/entities/NPC.hx b/source/entities/NPC.hx
index 7ec5ae90..dc1823a2 100644
--- a/source/entities/NPC.hx
+++ b/source/entities/NPC.hx
@@ -41,8 +41,6 @@ class NPC extends Interactable
var anim_set_name:String = Lists.animSets.exists(name) ? name : "npc-default";
- trace(name, anim_set_name);
-
loadAllFromAnimationSet(anim_set_name, name);
sstate(IDLE, fsm);
diff --git a/source/entities/Player.hx b/source/entities/Player.hx
index 9aacedbe..d17fae30 100644
--- a/source/entities/Player.hx
+++ b/source/entities/Player.hx
@@ -25,7 +25,8 @@ class Player extends BaseUser
public var auto_moving:Bool = false;
- var auto_move_dest:FlxPoint;
+ public var auto_move_dest:FlxPoint;
+
final auto_move_deadzone:Int = 50;
var wavedash_cd:Int = 0;
@@ -107,6 +108,7 @@ class Player extends BaseUser
public function stop_auto_move()
{
auto_moving = false;
+ auto_move_dest = getPosition();
}
function debug_rotate_costumes()
@@ -117,7 +119,13 @@ class Player extends BaseUser
}
override public function new_costume(costume:CostumeDef)
+ {
+ #if newgrounds
+ if (costume != null && costume.name == "thomas-2")
+ Main.ng_api.medal_popup(Main.ng_api.medals.get('faker'));
+ #end
super.new_costume(costume);
+ }
override function update(elapsed:Float)
{
diff --git a/source/entities/Present.hx b/source/entities/Present.hx
index 6fcff034..7daed32b 100644
--- a/source/entities/Present.hx
+++ b/source/entities/Present.hx
@@ -53,12 +53,16 @@ class Present extends Interactable
public static var num_32_opened:Int = 0;
public static final req_num_32_opened:Int = 6;
+ public var final_gift:Bool = false;
+
public function new(X:Float, Y:Float, username:String, timelock:Int)
{
super(X, Y);
detect_range = 300;
this.username = username;
+ final_gift = username == "kingcrowned-2";
+
// trace(username, JsonData.get_present_names());
def = JsonData.get_present(this.username);
@@ -239,7 +243,7 @@ class Present extends Interactable
if (first_time_opening && day == 28)
num_28_opened++;
- if (first_time_opening && day == 32)
+ if (first_time_opening && day == 32 && !def.artist.contains("kingcrowned"))
num_32_opened++;
sstate(OPENING);
@@ -298,6 +302,9 @@ class Present extends Interactable
#end
if (comic && username == "marbardan82")
Flags.set_bool("GOT_SHMIGGED");
+
+ if (username.contains("kingcrowned") && day == 32)
+ Flags.set_bool("FINAL_PRESENT_OPENED");
}
function give_opened_medal()
diff --git a/source/levels/TankmasLevel.hx b/source/levels/TankmasLevel.hx
index 798e7031..87dba5c8 100644
--- a/source/levels/TankmasLevel.hx
+++ b/source/levels/TankmasLevel.hx
@@ -16,6 +16,7 @@ import flixel.util.FlxDirectionFlags;
import levels.LDTKLevel;
import levels.LdtkProject;
import states.PlayState.YSortable;
+import ui.credits.Credits;
import video.InGameVideoUI;
import zones.Door;
@@ -49,7 +50,7 @@ class TankmasLevel extends LDTKLevel
public var level_data:LdtkProject_Level;
- var level_name:String;
+ public var level_name:String;
public function new(level:LdtkProject_Level, ?tilesheet_graphic:String)
{
@@ -171,6 +172,8 @@ class TankmasLevel extends LDTKLevel
new Menorah(c.worldPixelX, c.worldPixelY);
case "gachapon":
new Gachapon(c.worldPixelX, c.worldPixelY);
+ case "credits":
+ new Credits(c.worldPixelX, c.worldPixelY);
}
}
diff --git a/source/squid/util/Utils.hx b/source/squid/util/Utils.hx
index 306a2821..06af2cc3 100644
--- a/source/squid/util/Utils.hx
+++ b/source/squid/util/Utils.hx
@@ -356,7 +356,7 @@ class Utils
* @param t
* @return Int
*/
- public static inline function for_all_members(members:Array, function_to_do:FlxBasic->Void)
+ public static inline function for_all_members(members:Array, function_to_do:T->Void)
{
for (member in members)
if (member != null)
diff --git a/source/states/PlayState.hx b/source/states/PlayState.hx
index ab29a088..66e000d2 100644
--- a/source/states/PlayState.hx
+++ b/source/states/PlayState.hx
@@ -33,6 +33,7 @@ import ui.DialogueBox;
import ui.GachaSpawnUI;
import ui.MainGameOverlay;
import ui.TouchOverlay;
+import ui.credits.Credits;
import ui.popups.ServerNotificationMessagePopup;
import ui.popups.StickerPackOpening;
import ui.sheets.*;
@@ -373,8 +374,8 @@ class PlayState extends BaseState
}
}
#if newgrounds
- // if (unique_costumes >= 30)
- // Main.ng_api.medal_popup(Main.ng_api.medals.get("costume-party"));
+ if (unique_costumes >= 15)
+ Main.ng_api.medal_popup(Main.ng_api.medals.get("costume-party"));
#end
// trace(seen_costumes.length, unique_costumes);
}
diff --git a/source/states/substates/ArtSubstate.hx b/source/states/substates/ArtSubstate.hx
index ae1613d3..8c2bc4d0 100644
--- a/source/states/substates/ArtSubstate.hx
+++ b/source/states/substates/ArtSubstate.hx
@@ -14,6 +14,8 @@ class ArtSubstate extends FlxSubstateExt
var data:data.types.TankmasDefs.PresentDef;
var display_text:FlxText;
+ var artist_name:String;
+
var back_button:HoverButton;
var has_link:Bool = true;
@@ -38,17 +40,24 @@ class ArtSubstate extends FlxSubstateExt
backBox.alpha = 0.3;
add(backBox);
+ artist_name = data.artist != null && data.artist != "" ? data.artist : "Unknown";
+
var title:String = data.title != null && data.title != "" ? data.title : "Untitled";
- var artist:String = data.artist != null && data.artist != "" ? data.artist : "Unknown";
var link:String = 'Click here to view this ${data.link != null ? 'piece' : 'artist'} on NG!';
+ if (artist_name == "kingcrowned-2")
+ {
+ artist_name = "kingcrowned";
+ link = "by KingCrowned";
+ }
+
if (present_name == "ng-tv")
{
link = "";
has_link = false;
}
- display_text = new FlxText(0, 980, 1920, '$title by $artist\n$link');
+ display_text = new FlxText(0, 980, 1920, '$title by $artist_name\n$link');
display_text.setFormat(Paths.get('CharlieType-Heavy.otf'), 32, FlxColor.WHITE, CENTER, OUTLINE, FlxColor.BLACK);
add(display_text);
@@ -95,6 +104,6 @@ class ArtSubstate extends FlxSubstateExt
close();
if (has_link)
if (FlxG.mouse.justPressed && FlxG.mouse.overlaps(display_text) && !FlxG.mouse.overlaps(back_button) && FlxG.mouse.x < FlxG.width * .9)
- FlxG.openURL(data.link != null ? data.link : 'https://${data.artist.toLowerCase()}.newgrounds.com');
+ FlxG.openURL(data.link != null ? data.link : 'https://${artist_name.toLowerCase()}.newgrounds.com');
}
}
diff --git a/source/ui/TouchOverlay.hx b/source/ui/TouchOverlay.hx
index 742c2331..15ed7262 100644
--- a/source/ui/TouchOverlay.hx
+++ b/source/ui/TouchOverlay.hx
@@ -2,6 +2,7 @@ package ui;
import squid.sprite.TempSprite;
import states.PlayState;
+import ui.credits.Credits;
enum PressType
{
@@ -26,6 +27,8 @@ class TouchOverlay extends FlxTypedGroupExt
// If the user taps the player, it counts as an interaction
public var interact_just_released:Bool = false;
+ public var touch_cd:Int = 0;
+
public function new(?X:Float, ?Y:Float)
{
super();
@@ -40,6 +43,8 @@ class TouchOverlay extends FlxTypedGroupExt
fsm(elapsed);
+ touch_cd--;
+
super.update(elapsed);
}
@@ -48,9 +53,9 @@ class TouchOverlay extends FlxTypedGroupExt
{
default:
case IDLE:
- if (!Ctrl.mode.can_move)
+ if (!Ctrl.mode.can_move || touch_cd > 0)
return;
- if (PlayState.self.ui_overlay.mouse_is_over_ui())
+ if (PlayState.self.ui_overlay.mouse_is_over_ui() || Credits.self != null && Credits.self.mouse_is_over())
return;
if (FlxG.mouse.justPressed)
start_touch_move();
@@ -84,6 +89,9 @@ class TouchOverlay extends FlxTypedGroupExt
return;
}
+ /*if (FlxG.mouse.getScreenPosition().y > FlxG.height - 300 && PlayState.self.levels)
+ return; */
+
var move_fx = new TempSprite("move-circle", this);
move_fx.center_on(FlxG.mouse.getWorldPosition());
add(move_fx);
diff --git a/source/ui/credits/Credits.hx b/source/ui/credits/Credits.hx
new file mode 100644
index 00000000..e8109840
--- /dev/null
+++ b/source/ui/credits/Credits.hx
@@ -0,0 +1,269 @@
+package ui.credits;
+
+import data.JsonData;
+import ui.credits.CreditsWord;
+
+class Credits extends FlxTypedGroupExt
+{
+ var words:Array = [];
+
+ public static var self:Credits;
+
+ public var fireworks:Array = [];
+
+ var screenshots:CreditsScreenshots;
+
+ var mountains:FlxSpriteExt;
+
+ var aurora:FlxSpriteExt;
+ var aurora_fx:FlxSpriteExt;
+
+ var stars:FlxSpriteExt;
+ var stars_fx:FlxSpriteExt;
+
+ var perch:FlxSpriteExt;
+
+ var words_x:Int = 64;
+ var words_width:Int = 1060 - 64;
+ var line_y_padding:Int = 16;
+
+ var lvl_height:Int = 4000;
+
+ var credits_duration_in_seconds:Float = 60 * 2 + 30;
+
+ var origin:FlxPoint;
+
+ var cam_scroll_rate:Int = 12;
+
+ var start_time:Float = 1735785900;
+
+ public function new(spawn_x:Float, spawn_y:Float)
+ {
+ super();
+
+ self = this;
+
+ for (lvl in PlayState.self.levels)
+ if (lvl.level_name.contains("pinnacle"))
+ for (bg in lvl.bgs)
+ if (bg.loaded_image.contains("pinnacle-1-perch-background"))
+ perch = bg;
+
+ origin = new FlxPoint(perch.x, perch.y);
+
+ FlxG.state.add(this);
+
+ aurora = new FlxSpriteExt(perch.x, perch.y);
+ aurora_fx = new FlxSpriteExt(perch.x, perch.y);
+
+ aurora_fx.alpha = 0.25;
+
+ stars = new FlxSpriteExt(perch.x, perch.y);
+ stars_fx = new FlxSpriteExt(perch.x, perch.y);
+
+ screenshots = new CreditsScreenshots();
+
+ screenshots.setPosition(perch.right_x - screenshots.width, perch.top_y + FlxG.height / 2 - screenshots.height / 2);
+
+ stars.visible = false;
+
+ mountains = new FlxSpriteExt(perch.x, perch.y);
+
+ aurora.loadAllFromAnimationSet("pinnacle-4-aurora");
+ aurora_fx.loadAllFromAnimationSet("pinnacle-4-aurora-fx");
+
+ stars.loadAllFromAnimationSet("pinnacle-3-stars");
+ stars_fx.loadAllFromAnimationSet("pinnacle-3-stars-fx");
+
+ aurora_fx.scale.set(2, 2);
+ stars_fx.scale.set(2, 2);
+
+ aurora_fx.alpha = 0;
+
+ stars_fx.updateHitbox();
+ aurora_fx.updateHitbox();
+
+ mountains.loadAllFromAnimationSet("pinnacle-2-mountains");
+
+ add(aurora);
+ add(stars);
+ add(mountains);
+
+ sstate(WAIT);
+ }
+
+ function fsm()
+ switch (cast(state, State))
+ {
+ default:
+ case WAIT:
+ if (Main.time.utc >= start_time * 1000 && PlayState.self.player.overlaps(mountains))
+ sstate(START_DELAY, fsm);
+ case START_DELAY:
+ aurora_fx.alpha += 1 / 180;
+ if (ttick() == 1 && FlxG.sound.music != null)
+ FlxG.sound.music.fadeOut(1, 0, function(t)
+ {
+ FlxG.sound.music.stop();
+ FlxG.sound.music.setPosition();
+ SoundPlayer.music(JsonData.get_track("visual-snow-redux"));
+ FlxG.sound.volume = 1;
+ });
+ if (aurora_fx.alpha >= 1 && tick >= 120)
+ {
+ aurora_fx.alpha = 1;
+ tick = 0;
+ sstate(START);
+ }
+ case START:
+ make_words();
+ screenshots.start();
+ sstate(ACTIVE);
+ tick = 0;
+ case ACTIVE:
+ ttick();
+ if (tick > credits_duration_in_seconds * 60)
+ {
+ sstate(FINISHED);
+ if (FlxG.sound.music != null)
+ FlxG.sound.music.fadeOut(1, 0, function(t)
+ {
+ FlxG.sound.music.stop();
+ FlxG.sound.music.setPosition();
+ SoundPlayer.music(JsonData.get_track(Main.current_song));
+ FlxG.sound.volume = 1;
+ });
+ }
+ }
+
+ public function mouse_is_over():Bool
+ {
+ if (FlxG.mouse.getScreenPosition().y < FlxG.height - 300)
+ return true;
+ return false;
+ }
+
+ function make_words()
+ {
+ var data:String = Utils.load_file_string("credits.txt");
+
+ var line_y:Int = 0;
+
+ for (text in data.split("\n"))
+ if (text != "\n" && text.length > 2)
+ {
+ var word:CreditsWord = new CreditsWord(perch.x + words_x, perch.y + line_y, words_width, text, this);
+ words.push(word);
+ add(word);
+
+ if (text.charAt(0) == "*")
+ line_y = line_y + 16;
+
+ line_y = line_y + word.height.floor() + line_y_padding;
+ }
+ else
+ {
+ line_y = line_y + 96;
+ }
+
+ for (word in words)
+ {
+ word.y += FlxG.height;
+ FlxTween.tween(word, {y: word.y - line_y}, credits_duration_in_seconds);
+ }
+ }
+
+ override function add(basic:FlxSprite):FlxSprite
+ {
+ var return_me:FlxSprite = super.add(basic);
+
+ members = [];
+
+ members.push(aurora);
+ members.push(aurora_fx);
+ members.push(stars);
+ members.push(stars_fx);
+ members.push(mountains);
+
+ for (member in fireworks)
+ members.push(member);
+ for (member in words)
+ members.push(member);
+
+ members.push(screenshots);
+
+ return return_me;
+ }
+
+ override function update(elapsed:Float)
+ {
+ if (PlayState.self.player.overlaps(perch))
+ {
+ if (!Flags.get_bool("PINNACLE"))
+ {
+ Flags.set_bool("PINNACLE");
+ #if newgrounds
+ Main.ng_api.medal_popup(Main.ng_api.medals.get("pinnacle"));
+ #end
+ }
+ }
+ else
+ {
+ if (Flags.get_bool("PINNACLE"))
+ Flags.set_bool("PINNACLE", false);
+ }
+
+ cam_manager();
+ fsm();
+ super.update(elapsed);
+ }
+
+ function cam_manager()
+ {
+ var in_view_area:Bool = PlayState.self.player.y < perch.y + FlxG.height;
+
+ var cam_max_y:Float = in_view_area ? perch.y + 1080 : perch.bottom_y;
+
+ if (in_view_area && FlxG.mouse.justPressed && FlxG.mouse.getScreenPosition().y < FlxG.height - 300)
+ {
+ PlayState.self.player.stop_auto_move();
+ }
+
+ if (FlxG.camera.maxScrollY == cam_max_y)
+ return;
+
+ var y_diff:Float = Math.abs(FlxG.camera.maxScrollY - cam_max_y) / 16;
+
+ if (FlxG.camera.maxScrollY > cam_max_y)
+ FlxG.camera.maxScrollY -= y_diff;
+
+ if (FlxG.camera.maxScrollY < cam_max_y)
+ FlxG.camera.maxScrollY += y_diff;
+
+ if (Math.abs(FlxG.camera.maxScrollY - cam_max_y) < 16)
+ FlxG.camera.maxScrollY = cam_max_y;
+
+ if (in_view_area)
+ {
+ if (FlxG.camera.scroll.y > FlxG.camera.maxScrollY)
+ FlxG.camera.scroll.y = FlxG.camera.maxScrollY;
+ if (FlxG.camera.scroll.y < FlxG.camera.maxScrollY)
+ FlxG.camera.scroll.y = FlxG.camera.maxScrollY;
+ }
+ }
+
+ override function kill()
+ {
+ self = null;
+ super.kill();
+ }
+}
+
+private enum abstract State(String) from String to String
+{
+ final WAIT;
+ final START_DELAY;
+ final START;
+ final ACTIVE;
+ final FINISHED;
+}
diff --git a/source/ui/credits/CreditsFirework.hx b/source/ui/credits/CreditsFirework.hx
new file mode 100644
index 00000000..c1504691
--- /dev/null
+++ b/source/ui/credits/CreditsFirework.hx
@@ -0,0 +1,63 @@
+package ui.credits;
+
+class CreditsFirework extends FlxSpriteExt
+{
+ static var fireworks_remaining:Array = [];
+
+ var on_complete:CreditsFirework->Void;
+
+ public function new(point:FlxPoint, on_complete:CreditsFirework->Void)
+ {
+ super();
+
+ this.on_complete = on_complete;
+
+ if (fireworks_remaining.length == 0)
+ fireworks_remaining = ["mella", "gooble", "ghost", "boyfriend", "paco"];
+
+ ran.shuffle(fireworks_remaining);
+
+ scale.set(6, 6);
+ updateHitbox();
+
+ loadAllFromAnimationSet("fireworks");
+
+ anim(fireworks_remaining.shift());
+
+ this.center_on(point);
+
+ trace(getPosition());
+
+ SoundPlayer.alt_sound("firework", true, ["firework-1", "firework-2", "firework-3"], 0.25);
+ sstate(FIRING);
+ }
+
+ override function update(elapsed:Float)
+ {
+ fsm();
+ super.update(elapsed);
+ }
+
+ override function updateMotion(elapsed:Float)
+ {
+ super.updateMotion(elapsed);
+ }
+
+ function fsm()
+ switch (cast(state, State))
+ {
+ default:
+ case FIRING:
+ if (animation.finished)
+ {
+ trace("Yo");
+ on_complete(this);
+ kill();
+ }
+ }
+}
+
+private enum abstract State(String) from String to String
+{
+ final FIRING;
+}
diff --git a/source/ui/credits/CreditsScreenshots.hx b/source/ui/credits/CreditsScreenshots.hx
new file mode 100644
index 00000000..ea8ae828
--- /dev/null
+++ b/source/ui/credits/CreditsScreenshots.hx
@@ -0,0 +1,82 @@
+package ui.credits;
+
+class CreditsScreenshots extends FlxSpriteExt
+{
+ public var fireworks_remaining:Array = [];
+
+ var on_complete:CreditsFirework->Void;
+
+ var fade_in_time:Int = 30;
+ var fade_out_time:Int = 30;
+ var idle_time:Float = 5.75;
+
+ var count:Int = 0;
+ var max:Int = 24;
+
+ public function new()
+ {
+ super();
+
+ loadAllFromAnimationSet("credits-screenshots");
+ alpha = 0;
+
+ sstate(INACTIVE);
+ }
+
+ override function update(elapsed:Float)
+ {
+ animation.frameIndex = count;
+ fsm();
+ super.update(elapsed);
+ }
+
+ public function start()
+ sstate(FIRST_START_DELAY);
+
+ function fsm()
+ switch (cast(state, State))
+ {
+ default:
+ case FIRST_START_DELAY:
+ if (ttick() >= 180)
+ sstate(IN);
+ case IN_START_DELAY:
+ if (ttick() >= 15)
+ sstate(IN);
+ case IN:
+ alpha += 1 / fade_in_time;
+ if (alpha >= 1)
+ {
+ alpha = 1;
+ sstate(IDLE);
+ tick = 0;
+ }
+ case IDLE:
+ if (ttick() >= 60 * idle_time)
+ sstate(OUT);
+ case OUT:
+ alpha = alpha - 1 / fade_out_time;
+ if (alpha <= 0)
+ {
+ alpha = 0;
+ count++;
+ sstate(count >= max ? INACTIVE : IN);
+ tick = 0;
+ }
+ case OUT_START_DELAY:
+ if (ttick() >= 15)
+ sstate(OUT);
+ case INACTIVE:
+ }
+}
+
+private enum abstract State(String) from String to String
+{
+ final FIRST_START_DELAY;
+ final IN;
+ final IN_START_DELAY;
+ final IDLE;
+ final OUT;
+ final OUT_START_DELAY;
+ final INACTIVE;
+}
diff --git a/source/ui/credits/CreditsWord.hx b/source/ui/credits/CreditsWord.hx
new file mode 100644
index 00000000..e83cbbb3
--- /dev/null
+++ b/source/ui/credits/CreditsWord.hx
@@ -0,0 +1,100 @@
+package ui.credits;
+
+import data.types.TankmasFontTypes.TextFormatPresets;
+
+class CreditsWord extends FlxText
+{
+ var state:String = "";
+ var tick:Int = 0;
+
+ var trace_new_state:Bool = false;
+ var state_history:Array = [];
+
+ var credits:Credits;
+
+ public function new(?X:Float, ?Y:Float, fieldWidth:Int, input:String, credits:Credits)
+ {
+ super(X, Y);
+
+ this.credits = credits;
+
+ setFormat(Paths.get('CharlieType-Heavy.otf'), 48, FlxColor.WHITE, CENTER, OUTLINE, FlxColor.BLACK);
+
+ if (input.contains("*"))
+ setFormat(Paths.get('CharlieType-Heavy.otf'), 64, FlxColor.WHITE, CENTER, OUTLINE, FlxColor.BLACK);
+
+ if (input.contains("**"))
+ setFormat(Paths.get('CharlieType-Heavy.otf'), 96, FlxColor.WHITE, CENTER, OUTLINE, FlxColor.BLACK);
+
+ text = input.replace("*", "").trim();
+
+ this.fieldWidth = fieldWidth;
+ autoSize = false;
+ wordWrap = true;
+
+ sstate(IDLE);
+ }
+
+ override function update(elapsed:Float)
+ {
+ fsm();
+ super.update(elapsed);
+ }
+
+ function fsm()
+ switch (cast(state, State))
+ {
+ default:
+ case IDLE:
+ if (FlxG.mouse.overlaps(this) && FlxG.mouse.justPressed)
+ {
+ var firework:CreditsFirework = new CreditsFirework(getMidpoint(), (f) -> FlxG.state.remove(f, true));
+ FlxG.state.add(firework);
+ sstate(HIT);
+ }
+ case HIT:
+ color = FlxColor.GRAY;
+ }
+
+ /**
+ * Switch state
+ * @param new_state new state to switch to
+ * @param reset_tick resets ticking int (if the state changes)
+ * @param on_state_change function to perform (if the state changes)
+ * @return if the state changed
+ */
+ public function sstate(new_state:String, ?reset_tick:Bool = true, ?on_state_change:Void->Void):Bool
+ {
+ var state_changing:Bool = new_state_check(new_state);
+
+ #if dev_trace
+ if (trace_new_state && state_changing)
+ trace('[${type}] New State: ${state} -> ${new_state}');
+ #end
+ if (!state_changing)
+ return false;
+
+ tick = reset_tick ? 0 : tick;
+ state = new_state;
+ state_history.push(new_state);
+ on_state_change != null ? on_state_change() : null;
+ return true;
+ }
+
+ /**
+ * Adds amount to tick
+ * @return tick = tick + amount
+ */
+ function ttick(amount:Int = 1):Int
+ return tick = tick + amount;
+
+ /**Would this be a new state?**/
+ public function new_state_check(new_state:String)
+ return new_state != state;
+}
+
+private enum abstract State(String) from String to String
+{
+ final IDLE;
+ final HIT;
+}