* 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.
This adds a new and optional animation for Characters called `PoseDoor`. When a character uses this animation, they stop at the entrance of the castle door to strike a pose like in All-Stars.
This PR changes the End Final Castle to use the Special visuals when the level is in the SMBS campaign.
This is primarily for the Level Editor / Custom Levels and isn't really necessary for the main campaigns. Hence the added check to see if the Level Editor is used.
This was supposed to be a quick quality of life addition for the Title Screen that applied the save and theme to the menu, but then I discovered a new bug I had to bypass with the character palette when doing it. So I ended up doing a bit more related to the Title Screen as a result.
I also *had* a function which checks for the number of valid folders within the Pck to see how many worlds there are, but I think it might've been a bit slow so I replaced it with constant values.
- Save for the currently loaded campaign gets applied on startup
- Backing out of World 9 and over keeps you on said worlds at the title screen
- Added Skyland and Volcano to SMB1 themes since it shares most of its themes with Lost Levels
- Fixed Title Screen Stars for the Volcano Theme
- Fixed Disclaimer Screen not playing Sound Effects loaded from the Resource Pack
- Fixed Quit Dialog not playing Beep.wav loaded from Resource Packs
- Fixed the Campaign Icons not loading the Resource Pack textures (in fairness the only icon applicable is the Custom Levels one)