Skip to content
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

The Witness: New hint type ("area hints") #2494

Merged
merged 121 commits into from
Feb 28, 2024

Conversation

NewSoupVi
Copy link
Member

@NewSoupVi NewSoupVi commented Nov 24, 2023

Adds a new option called "Area Hint Percentage".

So far, Witness hints refer to singular locations, i.e. "Shipwreck Vault Box contains Hookshot (Player 4)"

This new type of "area hint" will instead give you general information about one of the named geographical areas in your world.
Example:

There are 4 progression items in the "Quarry" region.
Of them, 2 are for other players.
Also, one of them is a laser for this world.

This also renames some of the locations in the game to better fit into an "area", such as the "River Obelisk" being renamed to the "Mountainside Obelisk".
For this reason, it will block future PRs such as #2805 because I don't want a bunch of "soft conflicts" from location name mismatches.

Also added location groups based on these new "areas".

Testing

100+ random settings test generations.
Many generations where I breakpoint after all hints are created and look at all of them.
Several full seeds played.

Client

There is a compatible client in prerelease.

Special handling if you're curious

1. Not enough areas

There are only ~20 areas in the game but you can have 49 hints with an area_hint_percentage up to 100%. The generator will generate as many area hints as possible and then make random location/item based hints.

But, this creates another strange situation:
Say the player wants 49 hints with 100% area hints.
They would now instead get 20 area hints and 29 location/item hints.
However, those 29 hints would be fully random rather than acting like normally generated hints. This could potentially be confusing in mystery settings
To prevent this, the generator keeps track of "always hints" and "priority hints" that it did not use, and tries to "reuse" them if possible.

2. "Duplicate hints"

A lot went into not having it happen that an area is hinted, and then all locations in it are seperately hinted. It'll only ever hint all but one location individually in an area-hinted area.

@NewSoupVi NewSoupVi marked this pull request as draft November 24, 2023 18:21
@ThePhar ThePhar added the is: enhancement Issues requesting new features or pull requests implementing new features. label Nov 25, 2023
@NewSoupVi NewSoupVi added the affects: PR/blocker Issue/PR blocks another PR. label Feb 22, 2024
Copy link
Member

@Exempt-Medic Exempt-Medic left a comment

Choose a reason for hiding this comment

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

Merged regional_hints into main, did 1000 generations (no errors), read through several spoiler logs and generated hint lists. Played at least 20 runs with the changes. All the text and location changes LGTM. Specifically tested the weighted_sample code quite a lot. Read through the rest of the code as well, which LGTM aside from some comments that are now resolved.

@NewSoupVi NewSoupVi added waiting-on: core-review Issue/PR has been peer-reviewed and is ready to be merged or needs input from a core maintainer. and removed waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. labels Feb 26, 2024
@Berserker66 Berserker66 merged commit 59a6e4a into ArchipelagoMW:main Feb 28, 2024
15 checks passed
@github-actions github-actions bot removed the waiting-on: core-review Issue/PR has been peer-reviewed and is ready to be merged or needs input from a core maintainer. label Feb 28, 2024
Jouramie pushed a commit to Jouramie/Archipelago that referenced this pull request Feb 28, 2024
This new type of "area hint" will instead give you general information about one of the named geographical areas in your world.
Example:

```
There are 4 progression items in the "Quarry" region.
Of them, 2 are for other players.
Also, one of them is a laser for this world.
```

This also renames some of the locations in the game to better fit into an "area", such as the "River Obelisk" being renamed to the "Mountainside Obelisk".

---------

Co-authored-by: Exempt-Medic <[email protected]>
Co-authored-by: Scipio Wright <[email protected]>
TheLX5 pushed a commit to TheLX5/Archipelago that referenced this pull request Mar 2, 2024
This new type of "area hint" will instead give you general information about one of the named geographical areas in your world.
Example:

```
There are 4 progression items in the "Quarry" region.
Of them, 2 are for other players.
Also, one of them is a laser for this world.
```

This also renames some of the locations in the game to better fit into an "area", such as the "River Obelisk" being renamed to the "Mountainside Obelisk".

---------

Co-authored-by: Exempt-Medic <[email protected]>
Co-authored-by: Scipio Wright <[email protected]>
TheLX5 pushed a commit to TheLX5/Archipelago that referenced this pull request Mar 2, 2024
This new type of "area hint" will instead give you general information about one of the named geographical areas in your world.
Example:

```
There are 4 progression items in the "Quarry" region.
Of them, 2 are for other players.
Also, one of them is a laser for this world.
```

This also renames some of the locations in the game to better fit into an "area", such as the "River Obelisk" being renamed to the "Mountainside Obelisk".

---------

Co-authored-by: Exempt-Medic <[email protected]>
Co-authored-by: Scipio Wright <[email protected]>
EmilyV99 pushed a commit to EmilyV99/Archipelago that referenced this pull request Apr 15, 2024
This new type of "area hint" will instead give you general information about one of the named geographical areas in your world.
Example:

```
There are 4 progression items in the "Quarry" region.
Of them, 2 are for other players.
Also, one of them is a laser for this world.
```

This also renames some of the locations in the game to better fit into an "area", such as the "River Obelisk" being renamed to the "Mountainside Obelisk".

---------

Co-authored-by: Exempt-Medic <[email protected]>
Co-authored-by: Scipio Wright <[email protected]>
EmilyV99 pushed a commit to EmilyV99/Archipelago that referenced this pull request Apr 15, 2024
This new type of "area hint" will instead give you general information about one of the named geographical areas in your world.
Example:

```
There are 4 progression items in the "Quarry" region.
Of them, 2 are for other players.
Also, one of them is a laser for this world.
```

This also renames some of the locations in the game to better fit into an "area", such as the "River Obelisk" being renamed to the "Mountainside Obelisk".

---------

Co-authored-by: Exempt-Medic <[email protected]>
Co-authored-by: Scipio Wright <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects: PR/blocker Issue/PR blocks another PR. is: enhancement Issues requesting new features or pull requests implementing new features.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants