Page 1 of 1

Powerup Guard (Stay super!)

Posted: Sun Jul 28, 2019 12:09 am
by Dracyoshi
Image
In SMBX the player is downgraded to Small Mario when they take damage while under the effect of a Stage 3 power-up like the Fire Flower. Ever play some Mario Maker and get used to only being downgraded one stage when you take damage? That's what happened to me! Returning to SMBX and being one hit away from death after taking damage as Fire Mario was jarring. It's quite punishing!

Powerup Guard was made to bring the modern Mario series power-up regression to SMBX. If the player takes damage while under effect of the Fire Flower, Super Leaf or any other power-up with this script active then they'll only be downgraded to Super Mario, not Small Mario. This will effectively make damage less punishing and make it easier to return back to Mario's strongest forms; and it may even allow you more room to design more threatening obstacles in your levels without making it more difficult than intended! You may also find that this script pairs well with another script that disables or nerfs the Reserve Box.

Powerup Guard doesn't effect Peach, Toad and Link. They already have a similar mechanic, and I don't want to interfere with it. I also didn't test it with any of the custom characters added to SMBX2, so be wary of unintended behavior. It might work, but Maker discretion is advised.

A download link can be found here: https://mega.nz/#!FIMmUSZb!fueiw9pev5E8 ... gb9GZHWC7U
Powerup Guard runs under the internal name "powerupGuard". Load it through API.load and you're set! There are no parameters to configure.

Re: Powerup Guard (Stay super!)

Posted: Sun Jul 28, 2019 12:44 am
by 1AmPlayer
If I recall correctly, there's a similar system called "altpsystem.lua", but considering this one doesn't really need a configuration might be useful for just a quick setup.

Re: Powerup Guard (Stay super!)

Posted: Sun Jul 28, 2019 1:14 am
by Wiimeiser
I tested the additional custom characters in SMBX2, and characters who use Mario's powerup-health system (Wario, Zelda, Rosalina, Uncle Broadsword, Ultimate Rinka, probably Snake) behave as though it isn't installed, but everyone else works as normal. Bowser always dies in one hit though, even without it, is that normal?

Re: Powerup Guard (Stay super!)

Posted: Sun Jul 28, 2019 4:32 am
by Enjl
I just looked in SMBX2 and I have NO clue why altpsystem is in the legacy folder lol.

Re: Powerup Guard (Stay super!)

Posted: Sun Jul 28, 2019 8:33 am
by Dracyoshi
Oh... I wasn't even aware that altpsystem existed! Oops. Regardless, I've gave it a run and altpsystem lacks an accurate hurt animation; the normal animation of transforming into Small Mario is played, then once the animation is complete Mario is suddenly transformed back into Super Mario. It's a little jarring. And I understand why: There's an issue where the player's position and camera is offset if you manipulate their power-up during the hurt animation, which I had to spend most of my time patching out while making Powerup Guard. Gotta make the transformation look seamless!
Wiimeiser wrote: I tested the additional custom characters in SMBX2, and characters who use Mario's powerup-health system (Wario, Zelda, Rosalina, Uncle Broadsword, Ultimate Rinka, probably Snake) behave as though it isn't installed, but everyone else works as normal. Bowser always dies in one hit though, even without it, is that normal?
Got it! I looked into the issue and it appears that the SMBX2 characters have unique IDs when you retrieve their PlayerSettings, so I'll have to patch in support for them. I'll look into doing it soon; I wasn't initially planning on supporting them as it wasn't necessary for how I'm planning to personally use this script, but it'd be a shame if I left this feature incomplete now that I've posted it publicly.

Re: Powerup Guard (Stay super!)

Posted: Sun Jul 28, 2019 9:58 am
by Cedur
That animation inaccuracy was indeed confusing for me, so this marks an improvement, good job.

Re: Powerup Guard (Stay super!)

Posted: Tue Apr 28, 2020 5:36 am
by lan vuhoang
Update this for Beta 4 and support for the new require() library.