-
Notifications
You must be signed in to change notification settings - Fork 233
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
Option to allow progressive items to give all the upgrades at once #2108
base: Dev
Are you sure you want to change the base?
Conversation
…ty is enabled or not
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.
This is a cool feature, but I'm unsure if there's any demand for it. It's possible there was positive reception to it on the Discord that I missed
'Max Upgrade Hookshot': (["Water Tenple's keepsake", "the largest Grapple Beam", "the BOINGEST! chain"], "a Max Upgrade Hookshot", 'item'), | ||
'Max Upgrade Strength': (["power gloves", "metal mittens", "the heavy lifty"], "a Max Upgrade Strength", 'item'), | ||
'Max Upgrade Bomb Bag': (["biggest explosive container", "a huge blast bag"], "a Max Upgrade Bomb Bag", 'item'), | ||
'Max Upgrade Bow': (["a fully archery enabler", "a very danger dart launcher"], "a Max Upgrade Bow", 'item'), | ||
'Max Upgrade Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], "a Max Upgrade Slingshot", 'item'), | ||
'Max Upgrade Wallet': (["the biggest mo' money holder", "a big gem purse", "a huge portable bank"], "a Max Upgrade Wallet", 'item'), | ||
'Max Upgrade Scale': (["the deepest dive", "a piece of Zora"], "a Max Upgrade Zora Scale", 'item'), | ||
'Max Upgrade Nut': (["even more nuts", "the largest flashbang storage"], "Max Upgrade Deku Nut Capacity", 'item'), | ||
'Max Upgrade Stick': (["tons of lumber rack", "even more flammable twigs"], "Max Upgrade Deku Stick Capacity", 'item'), | ||
'Max Upgrade Bombchu': (["tons of mice bombs", "tons of proximity mice", "tons of wall crawlers", "tons of trail blazers"], "Max Upgrade Bombchus", 'item'), | ||
'Max Upgrade Magic': (["ultimate mystic training", "lots of pixie dust", "the largest green rectangle"], "a Max Upgrade Magic Meter", 'item'), | ||
'Max Upgrade Ocarina': (["a time flute"], "a Max Upgrade Ocarina", 'item'), | ||
|
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'm not sure if the max upgrade items should have separate hints from the normal ones. I guess if you're on random settings, it's a good way to tell what items are set to max upgrade, though. I could see it being either way
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.
iirc it was suggested to me over discord to add individual hints for those items. I tried to look up the convo about it but I suck at using Discord's search feature, sorry.
Either way, I'm indifferent to having specific hints for those or not
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.
Note to self: Take a closer look at the cryptic hints at some point.
ASM/c/item_table.c
Outdated
[0x0121] = ITEM_ROW(0x53, GILDED_CHEST, 0x54, -1, 0x00CE, 0x00DB, 0x2B, no_upgrade, no_effect, -1, -1, NULL), // Max Upgrade Scale | ||
[0x0122] = ITEM_ROW(0x53, BROWN_CHEST, 0x9B, -1, 0x00A8, 0x00BB, 0x12, no_upgrade, no_effect, -1, -1, NULL), // Max Upgrade Nut | ||
[0x0123] = ITEM_ROW(0x53, BROWN_CHEST, 0x99, -1, 0x0091, 0x00C7, 0x1B, no_upgrade, no_effect, -1, -1, NULL), // Max Upgrade Stick | ||
[0x0124] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, -1, 0x9019, 0x0197, 0x7E, no_upgrade, give_bombchus, 20, -1, NULL), // Max Upgrade Bombchu |
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.
Does this need to be a separate item? It seems to be identical in behavior to a pack of 20 chus. It also seems to be missing the upgrade to a chu bag.
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.
iirc I added this one for completeness sake and as a placeholder in case the bombchu pack logic changed in the future.
I can remove it if prefered.
'Max Upgrade Hookshot': (["Water Tenple's keepsake", "the largest Grapple Beam", "the BOINGEST! chain"], "a Max Upgrade Hookshot", 'item'), | ||
'Max Upgrade Strength': (["power gloves", "metal mittens", "the heavy lifty"], "a Max Upgrade Strength", 'item'), | ||
'Max Upgrade Bomb Bag': (["biggest explosive container", "a huge blast bag"], "a Max Upgrade Bomb Bag", 'item'), | ||
'Max Upgrade Bow': (["a fully archery enabler", "a very danger dart launcher"], "a Max Upgrade Bow", 'item'), | ||
'Max Upgrade Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], "a Max Upgrade Slingshot", 'item'), | ||
'Max Upgrade Wallet': (["the biggest mo' money holder", "a big gem purse", "a huge portable bank"], "a Max Upgrade Wallet", 'item'), | ||
'Max Upgrade Scale': (["the deepest dive", "a piece of Zora"], "a Max Upgrade Zora Scale", 'item'), | ||
'Max Upgrade Nut': (["even more nuts", "the largest flashbang storage"], "Max Upgrade Deku Nut Capacity", 'item'), | ||
'Max Upgrade Stick': (["tons of lumber rack", "even more flammable twigs"], "Max Upgrade Deku Stick Capacity", 'item'), | ||
'Max Upgrade Bombchu': (["tons of mice bombs", "tons of proximity mice", "tons of wall crawlers", "tons of trail blazers"], "Max Upgrade Bombchus", 'item'), | ||
'Max Upgrade Magic': (["ultimate mystic training", "lots of pixie dust", "the largest green rectangle"], "a Max Upgrade Magic Meter", 'item'), | ||
'Max Upgrade Ocarina': (["a time flute"], "a Max Upgrade Ocarina", 'item'), | ||
|
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.
Note to self: Take a closer look at the cryptic hints at some point.
Co-authored-by: Fenhl <[email protected]>
Co-authored-by: Fenhl <[email protected]>
Someone above commented wondering about demand for this, so i just want to add my vote. The feature would be great if for no other reason than i like running scarce items but hate only ever having half a magic bar for the late game. |
Honestly IMO scarce ought to still have 2 magics. |
This new option allows to choose which progressive items will grant the player both the item and all of its upgrades. I named this feature "upgradeful items", but we can rename it if anybody can think on a better name.
For example, if the Bow is selected to be an upgradeful item, then picking up a bow will give the player a bow and the biggest quiver at the same time.
Which items will be upgradeful items and which ones aren't can be selected in the gui by using the corresponding checkboxes:
Codewise the changes are kinda simple. The
UPGRADEFUL_ITEM_FLAGS
flag variable controls which items will be considered upgradeful.Most upgradeable items can just give the last upgrade and the game will just work as expected, with the exceptions of the bomb bag, the bow and the slingshot. I had to introduce 3 new items in the
item_table
to handle them properly. I also added custom text for those 3 items too. I made the logic to handle those 3 items based on how OoT handles it onItem_Give
The only progressive item that does not implement upgradeful logic is the bombchu because bombchus doesn't seem to be upgradeable.
This PR does not touch randomizer logic like the item pools, meaning that playing with a Balanced item pool and an upgradeful bow will place 3 bows in the world, of which all of them will give all the upgrades to the player, which can be a bit confusing to the Player. Any suggestions about this are welcome.
Example videos
2023-10-06_15-18-33.mp4
2023-10-06_15-10-34.mp4
Final words
I tested this a bit but I may have overlook something, so more testing would be appreciated
Feel free to ping me on discord, I'm angiealf