Page 1 of 1

Wario Movement Quintpack

Posted: Tue Mar 21, 2023 3:08 pm
by Master of Disaster
This pack contains five of my libraries: wariorolling.lua, wariodashing.lua, Burning and Bouncing as well as my newest one, wariodashattacking.lua

----- Burning and Bouncing v1.2 -----
I remade the Burning and Bouncing transformation from the Wario Land series.


----- Wariodashattacking v1.3 -----
The mighty dashattack from Wario Land 4 remade in SMBX!
There's also the launch cannon from Wario Land Shake it for good measure.
Hold Alt Run long enough charge the dash attack and tear through everything afterwards!
If you enter the Launch Cannon, you immediately go into a charged dash, which allows you to turn around and even run on water!

----- What has changed this time -----
This is a small update that only changes Wariodashing and Wariodashattacking to make those a little easier to work with.

Wariodashing went into v1.4:
- Added a function wariodashing.cancelDash(hitSomething). If you call it from outside the library, it cancels your shoulderbash. If hitSomething is true, you will bounce back as if you dashed into an enemy.
- you can now access the colliders via wariodashing.dashingColliderNPC (+ wariodashing.dashingColliderBlock and wariodashing.slopeCollider). You can use the first two to check whether you dashed into an object outside of the library.

Dashattacking also got an update with v1.2:
- Fixed a bug where hitting an npc while dashattacking could give you an error
- Added a function wariodashattacking.cancelDashAttack(hitSomething). Works just like wariodashing.cancelDash
- you can now access the colliders via wariodashattacking.dashingColliderNPC (+ wariodashattacking.dashingColliderBlock and wariodashattacking.slopeCollider). As with Wariodashing, you can use them to check whether you hit something with a dash attack from outside the library

Burning, Bouncing and Dashattacking come with their own methods:
Burning:
Spoiler: show
burning.isBurning = true -- makes you start burning
burning.gfxoffsetX = 12 -- Set the amount of pixels the sprite should be moved to the left (negative values for right) so it plays at the right position
burning.gfxoffsetY = 20 -- Set the amount of pixels the sprite should be moved upwards so it plays at the right height
burning.gfxwidth = 50 -- If your spritesheet needs a higher width than 50px, you can change it here
burning.gfxheight = 50 -- If your spritesheet needs a higher height than 50px, you can change it here
burning.burningframes = 4 -- If your spritesheet has more or less than 4 frames in the burning animation, you can change it here
burning.burningendframes = 11 -- If your spritesheet has more or less than 4 frames in the rising animation, you can change it here

burning.addFireStarterNPC(id) -- add an NPC that starts the burning rush when touched
burning.addFireStarterBlock(id) -- add a Block that starts the burning rush when touched

burning.addFlammableBlock(id) -- add a Block that breaks when fully burning and touching it
burning.addUltraflammableBlock(id) -- add a Block that breaks when touched in the burning rush
Bouncing:
Spoiler: show
bouncing.isBouncing = true -- makes you start bouncing
bouncing.gfxoffsetX = 12 -- Set the amount of pixels the sprite should be moved to the left (negative values for right) so it plays at the right position
bouncing.gfxoffsetY = 20 -- Set the amount of pixels the sprite should be moved upwards so it plays at the right height
bouncing.gfxwidth = 50 -- If your spritesheet needs a higher width than 50px, you can change it here
bouncing.gfxheight = 50 -- If your spritesheet needs a higher height than 50px, you can change it here
bouncing.groundbouncingframes = 3 -- If your spritesheet has more or less than 3 frames in the bouncing animation, you can change it here
bouncing.airbouncingframes = 5 -- If your spritesheet has more or less than 5 frames in the high bouncing animation, you can change it here
bouncing.bouncingendframes = 4 -- If your spritesheet has more or less than 4 frames in the ending animation, you can change it here

bouncing.addBouncingStarterNPC(id) -- add an NPC that starts the bouncing rush when touched
bouncing.addBouncingStarterBlock(id) -- add a Block that starts the bouncing rush when touched

bouncing.addBreakableBlock(id) -- add a Block that breaks when fully bouncing and touching it
bouncing.addUnbreakableBlock(id) -- add a Block that can't break by bouncing from beneath
Dashattacking:
Spoiler: show
- dashattacking.dashattacking = false, -- whether Wario is dashattacking
- dashattacking.dashstate = 0, -- if 0, it's not charged; if 1, it's charged; if 2, it's from a cannon

- dashattacking.candashattack = true, -- if false, the player can only use the dash via a cannon
- dashattacking.airbehavior = 1, -- 0: only chargable on ground, only usable on ground. 1: only chargable on ground, also usable in the air. 2: chargable and usable in the air
- dashattacking.chargeuptime = 60, -- the time in ticks the player needs to charge up the dash. If the player can charge in air, it should be longer

- dashattacking.gfxoffsetY = 8, -- the default amount of pixels the graphic is rendered below the place it actually would
- dashattacking.gfxwidth = 50, -- the width one frame takes up on a spritesheet
- dashattacking.gfxheight = 50, -- the height one frame takes up on a spritesheet
- dashattacking.runupframes = 4, -- the default amount of frames the ground dashing animation has
- dashattacking.chargedframes = 5, -- the default amount of frames the air dashing animation has

- dashattacking.blacklistBlock(BlockID) -- Prevent a block from breaking when dashattacking into it!
- dashattacking.whitelistBlock(BlockID) -- Make a block break when dashattacking into it!
- dashattacking.blacklistNPC(NPCid) -- Make an NPC unhittable by the dashattack!
- dashattacking.whitelistNPC(NPCid) -- Make an NPC hittable by the dashattack, if it isn't for some reason!
How to register characters to the libraries:
Spoiler: show
wariodashing.whitelistCharacter(1, -- number or CHARACTER_MARIO (etc). The character that is registered
"shoulderbashingframes.png" -- the spritesheet that is used
--, optional: gfxoffsetY (number) that's different from the default,
-- optional: groundframes (number) different frameamount than the default,
-- optional: airframes (number) different frameamount than the default
)
wariorolling.whitelistCharacter(1, -- number or CHARACTER_MARIO (etc). The character that is registered
"rollingframes.png" -- the spritesheet that is used
--, optional: gfxoffsetY (number) that's different from the default,
-- optional: framecount (number) different frameamount than the default
)
dashattacking.whitelistCharacter(1, -- number or CHARACTER_MARIO (etc). The character that is registered
"dashattackingframes.png" -- the spritesheet that is used
--, optional: gfxoffsetY (number) that's different from the default,
-- optional: runupframes (number) different frameamount than the default,
-- optional: chargedframes (number) different frameamount than the default
)
bouncing.whitelistCharacter(1, -- number or CHARACTER_MARIO (etc). The character that is registered
"bouncingframes.png" -- the spritesheet that is used
--, optional: gfxoffsetY (number) that's different from the default,
-- optional: groundbouncingframes (number) different frameamount than the default,
-- optional: highbouncingframes (number) different frameamount than the default,
-- optional: bounceendingframes(number) different frameamount than the default
)
burning.whitelistCharacter(1, -- number or CHARACTER_MARIO (etc). The character that is registered
"burningframes.png", -- the spritesheet that is used
"ashesrisingframes.png" -- the second spritesheet that is used for the rising animation
--, optional: gfxoffsetY (number) that's different from the default,
-- optional: runningframes (number) different frameamount than the default,
-- optional: risingframes (number) different frameamount than the default
)
And now to the fun part:
Some Gameplay footage of Wario almost being fully implemented as a playable
Spoiler: show
Flammable Clothes are a bad idea, Wario.
Image
Good that there's water around!
Image

Don't ask how that works logically
Image

You'll inevitably hit a ceiling at some point, you won't believe what happens next
Image

Running head first into a wall is the only good way to use your head
Image

When you enter a cannon and gain the ability to turn around and most importantly - act like Jesus, BE Jesus
Image
Do the usual crediting stuff or else you'll also (totally) burn to a crisp

Here's the download:
https://www.dropbox.com/scl/fo/vr8ocgn1 ... 8sk1m&dl=0

Old versions:
v1.4:
https://www.dropbox.com/scl/fo/cvel9c1e ... ogvn4&dl=0
v1.3:
https://www.dropbox.com/sh/uvael8ifobc6 ... S_vea?dl=0
v1.2:
https://www.dropbox.com/sh/dejf4zmnyeh9 ... HacOa?dl=0
v.1.1:
https://www.dropbox.com/sh/1bj0ci1ept4z ... KdOoa?dl=0
v.1.0:
https://www.dropbox.com/sh/ummm0mmatbe4 ... xPE4a?dl=0

Re: Wario Movement Tetrapack

Posted: Sat Apr 01, 2023 7:30 pm
by ChromaNyan
small wario can't fit into one block tall spaces when crouching (which can lead to clipping through blocks or dying if using antizip if you lose the rolling state while in a one block space)

Re: Wario Movement Tetrapack

Posted: Sun Apr 02, 2023 12:46 pm
by ChromaNyan
it's possible to softlock yourself by springing into an upside down slope

Image

Re: Wario Movement Tetrapack

Posted: Mon Apr 03, 2023 4:20 am
by Master of Disaster
hmm the small Wario stuff is a costume thing, that shoouuuld be somewhat easy to fix. And about the slope glitch, I am pretty sure you can hold right to get out but it definitely should be fixed. Maybe I should add another collider that checks whether it hits a slope (as slopes don't count as ceiling collision by default, for some reason)

Re: Wario Movement Tetrapack

Posted: Mon Apr 03, 2023 5:17 pm
by ChromaNyan
Master of Disaster wrote:
Mon Apr 03, 2023 4:20 am
And about the slope glitch, I am pretty sure you can hold right to get out
i tried that and it didn't seem to work, wario would move for a few pixels but then he would stop moving and i would be truly softlocked

Re: Wario Movement Quintpack

Posted: Tue Aug 15, 2023 11:13 pm
by ChromaNyan
for whatever reason, wario's jesus water running feels really buggy, jumping off the water's surface is delayed but only sometimes making it really inconsistent to platform with

Re: Wario Movement Quintpack

Posted: Fri Aug 18, 2023 7:11 am
by Master of Disaster
ChromaNyan wrote:
Tue Aug 15, 2023 11:13 pm
for whatever reason, wario's jesus water running feels really buggy, jumping off the water's surface is delayed but only sometimes making it really inconsistent to platform with
hmm I realised the delayed water jump, but due to it being caused by base SMBX water, I'll have to see if I can fix that. If it's not fixed in the next update, I haven't found a way to circumvent that.

Re: Wario Movement Quintpack

Posted: Fri Aug 18, 2023 9:14 am
by deice
Master of Disaster wrote:
Fri Aug 18, 2023 7:11 am
hmm I realised the delayed water jump, but due to it being caused by base SMBX water, I'll have to see if I can fix that.
while i haven't looked at your code, there's basegame jank where the player will be counted as "in water" even if they're standing right above it on solid ground. you should look into player memory offsets 0x34 and 0x36

Re: Wario Movement Quintpack

Posted: Sun Aug 20, 2023 8:03 pm
by ChromaNyan
Master of Disaster wrote:
Fri Aug 18, 2023 7:11 am
ChromaNyan wrote:
Tue Aug 15, 2023 11:13 pm
for whatever reason, wario's jesus water running feels really buggy, jumping off the water's surface is delayed but only sometimes making it really inconsistent to platform with
hmm I realised the delayed water jump, but due to it being caused by base SMBX water, I'll have to see if I can fix that. If it's not fixed in the next update, I haven't found a way to circumvent that.
while i'm thinking about it, i feel i should also mention running up slopes with wario is fairly buggy as well, sometimes you bump into the slope and lose all your speed as a consequence

i know that's a result of vanilla jank and idk if it's fixable but i feel it's worth mentioning

Re: Wario Movement Quintpack

Posted: Sun Oct 13, 2024 6:44 am
by Master of Disaster
Released a small update for this pack. Doesn't do much more than just making it easier to work with outside of the library.