fenhl / oottracker

A tracker for the Ocarina of Time Randomizer
10 stars 1 forks source link

Go Mode calculation #9

Open fenhl opened 3 years ago

fenhl commented 3 years ago

The tracker used on ZSR restreams has a cell to indicate that the runner is in Go Mode. When feeding the tracker enough information, it should be able to automatically determine when that is the case.

Go Mode is defined on the wiki as “The point in a randomizer game when you either have or know the location of every item you require to beat the game.” This seems to be typically interpreted as not including keys that are set to only be shuffled in their own dungeon. It also doesn't matter if you don't know which of the items you need is where, or even what those items are, as long as you know exactly which item locations to check without getting an item that's not required.

fenhl commented 3 years ago

An attempt at a more formal definition:

  1. There is a set of required items. Start with the goal items for this seed. For non-Triforce Hunt seeds, this is the Triforce item that's hardcoded onto the Ganon location. For m/n Triforce Hunt seeds, consider every subset of m Triforce Piece items.
  2. You are in Go Mode if for each required item that hasn't been collected:
    1. It is known in which hint region each item is (multiple interchangeable items each being in any of that many hint regions also works)
    2. There is a known path from Root to each location where an item can be
    3. For each requirement in each of those paths:
      1. If the requirement is an age requirement:
        1. That age being the starting age satisfies the requirement
        2. Otherwise, there must be a go-mode path from Root to Time Travel with the additional restriction that everything can be done as the starting age, and if there are any starting-age requirements in the required items, there must also be one with the additional restriction that everything can be done as the non-starting age.
      2. If the requirement is a time-of-day requirement, there must be a go-mode path from Root to a region that gives access to that time of day
      3. Otherwise, add the required item to the set of required items, handling and/or expressions accordingly.
fenhl commented 3 years ago

I recently learned while tracking for a ZSR restream that they use a different definition of go mode: A player is in go mode if they have all items to beat the game. Presumably dungeon rewards are not considered items for that definition, but are songs?