Skip to content

Conversation

@serprex
Copy link
Contributor

@serprex serprex commented Mar 29, 2025

empty bottle still required to collect

avoids logic needing to work around player soft locking by filling bottles without poe collector access

Build Artifacts

Copy link
Contributor

@Pepper0ni Pepper0ni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Waiting on some discord chat before going deeper, but if we are skipping the poe merchant in this process, we want to move the big poe check to RR_HYRULE_FIELD while this setting is on as actually reached them is no longer a requirement to get the check unless i misunderstand something.

@Pepper0ni
Copy link
Contributor

Pepper0ni commented Apr 9, 2025

Taking some design inititive here to start a discussion, I think we should not make this a setting and instead make it the default on all seeds to remove the ever-increasing headache that is big poe softlock logic.

For those unaware, when shuffling interior or overworld entrances, there's a check in entrance validation to make sure that the player can empty big poe bottles with no items. This is to account for someone possibly going out of logic to kill big poes and fill thier bottles, but then need the bottles to get something that gives them big poe access. This cannot be handled with normal logic because it is accounting for illogical actions. This check has gotten more complex with overworld locks however, will get get even more complex with NPC souls, because they also stop handing in big poe bottles even in vanilla. Issues with this are the cause of the Inteior shuffle fails in 9.0 and have result in some very wierd logic where guard house key is sometimes needed to use bottles.

Rarther than add a setting that would force us to maintain that, I believe that it would be better to force this the default because if implemented as so, it should have minimal effect on practical gameplay:

  • The player will, when talking with a big poe after it's dropped, automatically catch it if they have an empty bottle, but it will not fill the bottle, instead immediatly granting 100 poe points. This preserves the need for an emptyable bottle to complete the check.
  • Once the player has 1000 poe points, they can speak to the poe merchant for the check, even if they haven't got a big poe to show them. This preserves the need to find the poe merchant and have any overworld keys blocking them in order to get the check.
  • As currently implemented, needing fewer big poes to hand in is done by giving the player initial poe points, except it should be possible to need 0, to avoid a headache with converting the big poe index to the actual number of big poes required.
  • Big poe bottles placed as checks in generation should not be affected, they should still need to be shown to poe merchant to empty, to preserve the mechanical difference between them and different bottle.
  • The big poe check is removed from entrance validation, as it is no longer needed as the player cannot actually fill bottles with big poes.

With this implementation, the only gameplay difference between the new system and the old is that they player does not need to run laps between hyrule field and the poe merchant, which most would consider QoL, and I consider that preferable to the esoteric bottle logic that is caused by the threat of big poe softlocks.

@serprex serprex force-pushed the too-big-to-bottle branch 2 times, most recently from c11627d to 809b952 Compare April 11, 2025 01:45
@serprex serprex changed the title setting to skip bottling big poes skip bottling big poes Apr 11, 2025
@serprex serprex force-pushed the too-big-to-bottle branch from 422574c to ff2a906 Compare April 14, 2025 14:42
@serprex serprex force-pushed the too-big-to-bottle branch from ff2a906 to df34378 Compare April 14, 2025 15:06
Copy link
Contributor

@Pepper0ni Pepper0ni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You forgot to remove an instance on AreCheckingBigPoes in ProcessExits.

Also don't forget to adjust the presets now big poes start at 0.

@serprex serprex force-pushed the too-big-to-bottle branch 2 times, most recently from 9625187 to 0072284 Compare April 14, 2025 16:11
@serprex serprex requested a review from Pepper0ni April 14, 2025 16:54
Copy link
Contributor

@Pepper0ni Pepper0ni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The actor is still breaking when being handed a big poe bottled, but I checked develop and that's an existing bug so I won't block over it (probably needs a new hook to skip a function)

Otherwise glad to have the poes headache gone even if there could be more polish on the text.

Copy link
Contributor

@Malkierian Malkierian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assuming how Pepper0ni outlined how it should work, which I now agree with after some time to think about it, is how it was implemented here (which is how the code looks), this should be good to go. May catch some people off guard at first, but overall I think this will just work and feel better all around.

@Malkierian
Copy link
Contributor

Pretty simple conflicts to resolve, looks like, and I'll look at pushing this through.

serprex added 5 commits May 23, 2025 13:36
empty bottle still required to collect

avoids logic needing to work around player soft locking by filling bottles without poe collector access
@serprex serprex force-pushed the too-big-to-bottle branch from 0072284 to 4c6aef1 Compare May 23, 2025 13:37
@Malkierian Malkierian merged commit 24013e2 into HarbourMasters:develop May 23, 2025
6 checks passed
krazyjakee pushed a commit to krazyjakee/OOT that referenced this pull request Sep 6, 2025
* setting to skip bottling big poes

empty bottle still required to collect

avoids logic needing to work around player soft locking by filling bottles without poe collector access

* No option, zero option

* TEXT_BIG_POE_COLLECTED_RANDO

* update preset

* fix talking to poe collector after receiving item
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants