-
Notifications
You must be signed in to change notification settings - Fork 77
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
[WIP] [ENHANCEMENT] Arbitrary Equipment Slots #731
base: develop
Are you sure you want to change the base?
[WIP] [ENHANCEMENT] Arbitrary Equipment Slots #731
Conversation
…ent implementations of arbitrary item slots can be swapped out at runtime (TODO).
As-of commit cc82799, this enhancement successfully implements a prototype of the base functionality. |
Would be beneficial for gauging interest if you add some screenshots and, preferably, a video of it in action to the GitHub PR. Big fan of modernizing controls especially when it adds additional features. |
@Caladius I am having trouble getting a video small enough to upload to github here, so I will have to just share a screenshot for now. In this screenshot, I am showing that there are 2 additional equip slots which use the L and R buttons, and currently have the Deku Stick and Deku Nuts equipped, respectively. What you can't see in this screenshot is that the red and blue item slots are actually moving back and forth from left to right to demonstrate an animated position. This will be very useful when I make the Carousel-style item slot, as the currently active item slot will slide into place when swapping with the Dpad Left/Right buttons. |
Okay, I managed to get a video recorded demonstrating the current functionality. arbitrary-equipment-slots-demo.mp4 |
I created a new implementation for arbitrary item slots that uses a carousel to switch between items. carousel_test.mp4 |
I have added some configuration options to an enhancement menu to control the location, color, and number of item slots in the carousel. carousel_test2.mp4 |
… non-special cases. Special cases like minigames may still unrestrict the items.
…sel will automatically move to the next non-disabled slot.
…rousel slot swapping logic when the pause menu is closed.
… arbitrary buttons and fixed a bug with conflicting slot IDs.
…so now arbitrary slots fade off the screen in the same way that normal C slots do on day changes and etc.
This enhancement is looking pretty good so far. There is currently an issue I found where bottles are completely broken. A slot with a bottle assigned will never update the contents of the assigned bottle, so they cannot be used to capture bugs, fish, or fairies, and when releasing a bug, fish, or fairy they don't empty the bottle's contents, essentially producing an infinite supply of whatever entity was in the bottle. The equipment slot also doesn't update with new contents if the bottle is updated elsewhere, such as from the save editor, another equipment slot, or buying an item in a store. There are a number of other minor issues as well:
|
…ems to the save file.
…harkinian.json file.
The 10 MB file size limit on Github is too limiting to properly demonstrate the functionality via video, so here is a Youtube link with the demos for the newest changes. Since the last video, I have fixed a number of issues the core item slot behavior. The biggest remaining issue is that the bottles don't still work, as I mentioned previously. Masks do work however. |
I also wanna say that feedback is welcome right now if anyone has thoughts on the implementation. |
Okay I did some refactoring and now the arbitrary equipment slots now respect bottle contents. |
I'm working on some logic to allow the user to configure the number of dedicated slots and carousels. This multiple configuration flow is still a WIP. I should also add that these flexible options for equipment slot configurations is heavily dependent on the Intent Control changes I made in Libultraship previously. Without those changes, it would be much more difficult to set up controls for these custom slots, and the number of slots would be limited to a static number for sure. |
…ads all the states instead of just the default state.
This PR contains WIP changes to enhance Equipment Slot customization, and I wanted to share it here to gauge interest.
The inspiration here is to modernize equipment controls. With the vanilla C Button item slots, the player has to dedicate 3 buttons to use 3 different items. This was improved with the DPad item slots enhancement, but that is an additional 4 buttons than need to be dedicated.
This is clunky on modern controllers IMO. Ideally it would be much more intuitive to use the same button(s) to use all/some items. Example: Bows, the Hookshot, and the Camera work best on a trigger button (such as R or L).
In 2ship especially, the addition of masks makes the vanilla equipment slots even more strained than in SoH, because the masks require an entire equipment slot for items that are largely just toggle switches and really don't need dedicated buttons for accessibility.
In addition to increasing the number of equipment slots, this also will free up buttons on the controller for other usages, such as splitting out
A
button actions into separate controls.Anticipated features:
This branch was branched off of another enhancement branch I was working on, which was separating certain control events into separate mappings. These changes include separating some
A
button controls into separate mappable buttons.If this Arbitrary Equipment Slots Enhancement gets a lot of attention and demand, I may rebase to fast track this enhancement.
Build Artifacts