jumpy
jumpy copied to clipboard
Reimplement flippers
Flippers item was added in #181 and I will reimplement it based on the updated guide and official assets.
~~I have yet to wire up the PlayerEvent::Collision, just so you know. It is not very hard to do this if you just follow the method I have used to implement the other events. When that is done, you will be able to trigger effects on players on collision, which should be sufficient to implement this very easily. It should just be a matter of implementing aPassiveEffect for the flippers item, that is triggered on collision events, and you will have access to both relevant player handles in the effect coroutine...~~
I fixed this in #250
Now, collision event will be triggered every fixed update for all collisions between players, with an is_new parameter that will indicate whether the collision is fresh or ongoing
It looks like there is some extra work needed here due to limitations of our game engine (macroquad) to handle the states for walking/jumping/crouching etc.
So I will be unassigning myself from this issue in case someone else wants to jump in. Here are the assets that I've used in my branch:
Status Update
Flippers could now be implemented with new player states. When the flippers are equipped, it would transition the player to a new player state which allows complete customization of the player movement and controls.
This may involve some code duplication between the normal player states, and the new state, but that's fine. States were designed so that, while some logic may be duplicated between states, it doesn't restrict us to the concept that every state is going to share some measure of behavior, so each state can have totally different logic and controls.
If it helps, shared functionality could be moved into SystemParams or helper functions/macros.