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

Super Mario 64: Option groups #4161

Merged
merged 5 commits into from
Nov 29, 2024

Conversation

josephwhite
Copy link
Contributor

What is this fixing or adding?

Adds option groups to to options page for SM64.
Initially modelled after the option groups for SMW.

How was this tested?

Unit tests, and generating a YAML.

If this makes graphical changes, please attach screenshots.

ArchipelagoMW-SM64OptionGroups

@github-actions github-actions bot added the waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. label Nov 9, 2024
@Exempt-Medic Exempt-Medic added is: enhancement Issues requesting new features or pull requests implementing new features. waiting-on: world-maintainer Issue/PR is waiting for feedback or approval by the maintainer of a world. labels Nov 9, 2024
@@ -127,6 +127,30 @@ class MoveRandomizerActions(OptionSet):
valid_keys = [action for action in action_item_table if action != 'Double Jump']
default = valid_keys

sm64_options_groups = [
OptionGroup("Sanity Options", [
Copy link
Collaborator

Choose a reason for hiding this comment

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

Maybe call this logic options or something like that? "Sanity" doesn't really describe the contents super well

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Item Options?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Probably not that, since the last group is always "Item & Location Options"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Got it. Changed to "Logic Options".

worlds/sm64ex/Options.py Show resolved Hide resolved
StrictCannonRequirements,
StrictMoveRequirements,
]),
OptionGroup("Goal Options", [
Copy link
Collaborator

Choose a reason for hiding this comment

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

The only actual goal option is CompletionType (and maybe StarsToFinish), the rest arguably are not.
I'd say you could call this Star Options / Star Costs instead, and remove CompletionType from that category

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added Star Options group and separated from Goal Option(s).

Copy link
Contributor

@nicholassaylor nicholassaylor left a comment

Choose a reason for hiding this comment

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

Code works, however I have a few comments about layout and organization.

Comment on lines 137 to 138
EnableMoveRandomizer,
MoveRandomizerActions,
Copy link
Contributor

Choose a reason for hiding this comment

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

These two options cause the options page to render awkwardly. Since they are related and would take up enough room, they could probably go into their own category.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added. Also moved StrictMoveRequirements into this new grouping.

@@ -3,7 +3,7 @@
import json
from .Items import item_table, action_item_table, cannon_item_table, SM64Item
from .Locations import location_table, SM64Location
from .Options import SM64Options
from .Options import SM64Options, sm64_options_groups
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
from .Options import SM64Options, sm64_options_groups
from .Options import sm64_options_groups, SM64Options

nitpick: Import order should match the rest of the file where it is variables followed by classes.

Comment on lines 152 to 154
OptionGroup("Goal Options", [
CompletionType,
]),
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
OptionGroup("Goal Options", [
CompletionType,
]),

Having Completion Type be this low and alone is a funky decision to make. I would probably recommend leaving it out of the option groups and letting it go to the "Game Options" group since it is more fundamental to the randomizer.

Copy link
Contributor

@nicholassaylor nicholassaylor left a comment

Choose a reason for hiding this comment

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

Everything LGTM

@ScipioWright ScipioWright 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: world-maintainer Issue/PR is waiting for feedback or approval by the maintainer of a world. waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. labels Nov 11, 2024
@NewSoupVi NewSoupVi added the waiting-on: world-maintainer Issue/PR is waiting for feedback or approval by the maintainer of a world. label Nov 14, 2024
@NewSoupVi
Copy link
Member

I would actually like reapproval from @N00byKing here since significant changes were made in response to nicholassaylor's review after N00byKing's approval.

@ScipioWright ScipioWright removed the waiting-on: world-maintainer Issue/PR is waiting for feedback or approval by the maintainer of a world. label Nov 16, 2024
@NewSoupVi NewSoupVi merged commit faeb542 into ArchipelagoMW:main Nov 29, 2024
18 checks passed
@josephwhite josephwhite deleted the sm64-optiongroups branch November 30, 2024 18:15
AustinSumigray pushed a commit to AustinSumigray/Archipelago that referenced this pull request Jan 4, 2025
* sm64ex: add option groups

* sm64ex: rename sanity options group to item options

* sm64ex: rename sanity options group to logic options

* sm64ex: seperate star costs from goal options and add entrance rando to logic options

* sm64ex: seperate ability options from logic options group
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: enhancement Issues requesting new features or pull requests implementing new features. waiting-on: core-review Issue/PR has been peer-reviewed and is ready to be merged or needs input from a core maintainer.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants