* Expanded Level Icons
Level icons are now defined in their own custom JSON file (LevelIcons.json) which determines which icons will be shown, along with an area where the user can input the size of their icons for custom sizing (larger sizes will likely be a bit odd in behavior, smaller should work fine though)
Along with that, icons have been greatly expanded, with 32 new level icons available for levels to use now, (a total of 45!) along with various older icons recieving slight touch-ups. Various levels now use these new icons to better represent major recognizable elements from those levels, and to give them a bit more variation between each other.
If there are any additional level icons that would make sense for implementation, let me know. I think this should cover most of the important ones, though.
* Delete LevelIcons.png.import
* Marathon + ANN Medal Icons on World Select
Marathon mode and ANN now show the highest ranking achieved on all levels when applicable. So if you manage to get a gold medal on every level, but get a bronze on one, then it'll display a bronze medal for your world completion.
Side note: Why the fuck was the only solution to the GPU particle emitting behavior to make a massive array of node paths. I hate this! This sucks! Joe, why did you do that? And why was it the only thing I could find that worked?
* Optimized particle emitting for world/level select
* ANN now has its own menu + bugfixes
This gives ANN its own dedicated menu rather than throwing you directly into the world selection menu, which additionally fixes an issue with rendering medal icons when selecting the campaign, and a few other fixes like the DiscoResults menu not using the ANN visual settings.
* Challenge Hunt Icons + menu bugfixes
Challenge Hunt icons are now implemented, so you can see all of your red coins, eggs and score requirements if you've met them. Along with that, fixed a bug where you could enter Worlds 9-D in marathon when you aren't supposed to by selecting a story mode option and then entering marathon.
* New icons + layout change for Challenge Hunt icons
By recommendation by Vanny, Challenge Hunt icons have been changed. Along with this, all icons for progress tracking are now in their own relegated image file for separate modification, and have been updated to use white outlines similar to the world icons themselves.
* Update ChallengeModeResults.tscn
Forgot to update this to use challenge icons for the world select screen.
* Eggs cycle through color again
Accidentally got rid of this, but didn't want to update every node. It simply does it based on the world number now rather than needing to be manually set.
variable for easily toggling on and off snapshot mode, and also some simple prints for things like unix time and what snapshot build the game would currently be on upon launch
* Some state machine functions to make code tidier in the future
* Added a function to Global to check if we're playtesting, for convenience
* Only allow noclip w/o debug in leveltesting, toggling added, kept jump key to exit
* FPS counter is off by default, enable with F4
* A message or error is now shown on-screen if a screenshot is taken with F2
* Show message when noclip is enabled or disabled
* Global.gd now has an extra variable for current room type
* ResourceSetterNew.gd now has variation category for room types
The state variable also had to include the room type, since it wouldn't update properly when entering a bonus room from a level that's already underground
* LevelClass.gd sets room type on update_theme
A new function, get_room_type() allows for the level's room type to be detected, which can easily be overwritten by other level classes. Bonus Rooms are detected by comparing the level's scene path to a pre-defined list of bonus rooms.
* Added get_room_type() to CoinHeaven.gd
* Added get_room_type() to PipeCutscene.gd
Also updates the room type in _enter_tree() since update_theme() isn't called here.
* Added get_room_type() to TitleScreen.gd
This is just a bunch of bugfixes I did while I was working on the Multiplayer Support PR. I know I should've kept them separate, but then I'd also be dealing with said bugs. So this PR adds most of the bugfixes I did while working on Multiplayer.
- De-globalized Pipe SFX from Pipe Cutscene (helps with lowering audio)
- De-globalized 1-up SFX for Players
- Removed an error log spam with the `ResourceSetter`s (involving connecting already connected signals)
- Made sure to insert "BaseAssets" folder into the FIRST slot in the Resource Packs array.
- Replaced `"BaseAssets"` for the above fix with `Godot.ROM_PACK_NAME`
- Removed unused `"character"` setting from `SettingsManager`
- Reset P-Switch timer when `Global.reset_values()` is called. Fixes bug when pressing a P-Switch and immediately restarting the level.
- Added Skid SFX to `AudioManager`
- Added slightly longer delay for when pausing with a controller (it can easily unpause before you press the button again)
- Null check if LevelBG is in the level or not (for added for test levels)
This commit delegates all Discord-related functions to DiscordManager.gd and adds a project setting bool to toggle using Discord RPC at all. Toggling off will reduce cpu and memory overhead when Discord is not needed.