This was supposed to be packaged with SMBX 2.0 but I felt like just releasing it now anyways :/
But yeah, this is an API that recreates the diagonal bouncing podoboos from Super Mario World!
How To Use
- Download and place the contents into your level folder.
- Load the API into your lua file with local podoboo = API.load("podoboo").
- Place a podoboo and make its message bounce=1 along with any other customization options (listed in the documentation).
- And you're done :p
- Easy to use and doesn't replace any npcs.
- Fully customizable sprites, image speed, size, and speed.
- Podoboo can be friendly, invincible, invisible, immune to spinjumps, or have a message.
podoboo.lua is a Lua library you can use to create the Bouncing Podoboos/Diagonal Podoboos from some castle levels in Super Mario World.
The podoboo itself is fairly customizable.
To enable it, load the API like you would any other api. THEN, in the NPC message of a Podoboo (NPC ID 12) type in 'bounce=1' anywhere.
You also have some customization options that you can also access by typing in stuff in the message. For example, if you wanted to make the podoboo have a very
slow speed, you would type in 'speed=.5' anywhere in the message. Here are some options you can use:
speed - The general speed, affecting both X speed and Y speed. Default is 1.5.
speedXMod - A value that is added to the X speed every tick. Default is 0.
speedYMod - A value that is added to the Y speed every tick. Default is 0.
framespeed - The animation speed. The higher the number is, the slower the podoboo flickers. Default is 4.
width - The width of the sprite. Use if you want to resprite the podoboo. Default is 32.
height - The height of the sprite. Use if you want to resprite the podoboo. Default is 32.
flicker - If this is set to 0, then the podoboo will not flicker.
invincible - If this is set to 1, then the podoboo will not be killable.
spinjump - If this is set to 0, then the podoboo will not be able to be spinjumped on.
message - The message of the podoboo. Format it like this - message="your message goes here". Make sure to put this last in all your customization stuff.
friendly - Just like normal friendliness. Set to 1 and the podoboo will be friendly.
Saw the bouncing Rinkas in that Rinkas; Conquest video and wondered about this.
I notice that it only accounts for a few projectile types. It could be more inclusive to check a colliding NPC's memory offset 0x136, since that should be -1 for thrown shells and other projectiles. If it's a fireball or iceball you could have it destroyed like it hit a roto-disc instead of just going through.
Edit: it looks like it uses colliders.collideBlock four times every tick for each one. It could be more efficient to first check if there are any blocks within collision range before bothering to check all four boxes.