-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Reimplement Jellyfish #895
Conversation
This does not explode the jellyfish, you get to use it again.
Just pushed a feature I missed: pressing grab while driving despawns the flappy jellyfish. The owner "reclaims" that ammo and gets to use it again without having to drop it to reload. |
That's exciting! Thank you! I'm really glad to hear that it went smoothly, especially for an extra complicated item like the Jellyfish, and taking a swift look at the code it seems like you've done things the way I would have wanted, using a player state for driving the jellyfish. Tomorrow I'm going to try to test it out and do a more thorough review and check out the questions. Thanks again! |
FYI I added it to dev level 1 on the platform above where you spawn |
I tested this out and it works! There are some polish things we'll want to add/tweak later probably, but we can do things incrementally, and I'm happy just merging this nearly as is. Some thoughts on what we might want to tweak would be:
Regarding your questions:
Yeah, I think that's fine.
I don't think it needs to in this case.
I don't think it's supposed to move while on the floor, but I could be corrected on that.
It seems like it should, but I think we need to have a different sprite that is non-rotated and designed as a hat frame that we can switch the item to. I'm still going to do a more careful code-review before merging, but otherwise I'm good doing whatever we need to in follow-up PRs. |
It should be single-use without the reload. So when the jellyfish expires (blows up), just dissolve the jelly cap.
We should follow the same convention as the RC Controller from Duck Game which the jellyfish is based on:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nelson137 I think we should probably implement the controls described above before merging, and I'm fine if we want to make try to make the hat wearable now, or do it in a follow-up, it's up to you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just realized that I think the second frame of this is meant for use as a hat, and it's probably supposed to be kind of crooked on the fishes head. So we should be able to make it look right by updating the player attachment component with the proper offset.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ooh that makes sense. I thought the same and got it up on top of the player's head with a PlayerBodyAttachment
but didn't think to move it over. I'll try that and see how good it looks.
That works for me! I'll start working on the new controls tomorrow or Tuesday then I'd like to get this merged; I'll do the rest in a separate one. I have another unrelated change I want to PR that's blocked on this 😅 |
Hm, the wiki doesn't specify what happens when you let go of the fire button while driving. @erlend-sh What is the desired behavior here? Unfortunately I don't own Duck Game |
The jellyfish should go static, and slowly descend to the nearest surface area. I'm happy to have this merged in an experimental state so we can unblock you on further work. Since the jellyfish is a partially new design instead of a 1:1 copy of a Duck Game weapon we’re gonna have to try some stuff out anyway, so it’ll be a lot easier for me to provide further feedback once there’s a basic version to try out in-game. |
That brings up another question that hasn't been mentioned yet -- should the jellyfish collide with solids on the map?
It sounds like the answer is yes. Currently, it collides with nothing but players. That should be straightforward enough to add, I've seen a few examples elsewhere in the codebase with the collision world. To clarify, it also sounds like if the user holds fire again they regain control of the jellyfish wherever it is? |
Like Erlend suggested I would like to merge this PR since there are so many changes. I will take care of everything we've discussed in a v2 PR, and possibly more depending on any tweaks that need to be made. So far I have (1) the camera following anything with a new I'm going to open a draft PR that I'll keep updated with my changes as I go. |
Roger that, merging! |
Take 2 🎬 this is the second iteration of the Jellyfish item, based on Duck Game's [RC Controller](https://duckgame.fandom.com/wiki/RC_Controller). More tweaks may come in follow-up PRs ## Notable Changes from [v1](#895) - The camera follows any entity with the new `CameraSubject` component - Entity must also have a `Transform` and `KinematicBody` to work properly - The flappy jellyfish collides with solids - The flappy is now much more jerky and overly responsive to user input, I may add acceleration to the left/right movement so that it floats around more to give it a more natural feel - Control the jellyfish like Duck Game's RC Controller - The flappy is tied to the jellyfish hat, not the player - If the driver dies/drops the jellyfish the flappy doesn't explode, another player can pick it up and take control - Despawn & dehydrate the jellyfish item when the flappy explodes ## ToDo - ~Try to get the jellyfish on the player's head~ (will handle in another PR for cosmetic changes)
Hi 👋 I've been wanting to contribute to jumpy for a bit so I started tinkering with the jellyfish item.. and it went more smoothly than I thought! I think I met all the original requirements but there were a few small things I wasn't certain about (see bottom).
Closes #577
Behavior
Outstanding Questions
LoadedMap::is_out_of_bounds
fine for explosion on out of bounds?