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

Mario & Luigi: Superstar Saga: Implement New Game #2754

Merged
merged 123 commits into from
May 6, 2024

Conversation

jamesbrq
Copy link
Contributor

What is this fixing or adding?

Adds support for Mario & Luigi: Superstar Saga to AP.

How was this tested?

Months of testing over the course of many unsupported sync and async games.

If this makes graphical changes, please attach screenshots.

Copy link
Collaborator

@Silvris Silvris left a comment

Choose a reason for hiding this comment

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

Focused mostly on finding common pitfalls, big thing is definitely to move to the new options api since 0.4.4 will spew warnings at you until you do, and I imagine ideally we don't have any of those warnings in the next version.

worlds/mlss/Client.py Outdated Show resolved Hide resolved
worlds/mlss/Client.py Outdated Show resolved Hide resolved
worlds/mlss/Options.py Outdated Show resolved Hide resolved
worlds/mlss/Rules.py Outdated Show resolved Hide resolved
worlds/mlss/__init__.py Outdated Show resolved Hide resolved
worlds/mlss/__init__.py Outdated Show resolved Hide resolved
worlds/mlss/docs/setup_en.md Outdated Show resolved Hide resolved
@ScootyPuffJr1 ScootyPuffJr1 added the is: new game Pull requests for implementing new games into Archipelago. label Jan 23, 2024
Copy link
Collaborator

@Zunawe Zunawe left a comment

Choose a reason for hiding this comment

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

Just looking at the client in isolation for now.

worlds/mlss/Client.py Outdated Show resolved Hide resolved
worlds/mlss/Client.py Outdated Show resolved Hide resolved
worlds/mlss/Client.py Outdated Show resolved Hide resolved
worlds/mlss/Client.py Outdated Show resolved Hide resolved
worlds/mlss/Client.py Outdated Show resolved Hide resolved
worlds/mlss/Client.py Outdated Show resolved Hide resolved
worlds/mlss/Client.py Outdated Show resolved Hide resolved
worlds/mlss/Client.py Show resolved Hide resolved
worlds/mlss/Client.py Outdated Show resolved Hide resolved
worlds/mlss/Client.py Outdated Show resolved Hide resolved
@PoryGone PoryGone added the waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. label Feb 10, 2024
@jamesbrq
Copy link
Contributor Author

jamesbrq commented May 3, 2024

A 6 player sync was ran tonight, all players with 1 game of mlss, with all of the above changes from all PR reviews from the last few days. 2 small bugs we're found that were 1 liners on the asm side of things, and bugfixes were already applied to live branch. Everything else was perfectly fine and working as expected.

Copy link
Collaborator

@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.

Got through rules.py and everything looks good to me. That one error with the setup guide header should probably be addressed in some way, though that's probably a webhost error, so probably shouldn't be blocking, I think.

@jamesbrq
Copy link
Contributor Author

jamesbrq commented May 4, 2024

Got through rules.py and everything looks good to me. That one error with the setup guide header should probably be addressed in some way, though that's probably a webhost error, so probably shouldn't be blocking, I think.

Worst case, I can temp change the & to just the word and. Whatever you think.

@NewSoupVi
Copy link
Member

Looking into this Webhost issue to determine whether I consider it blocking for the merge.

worlds/mlss/Client.py Outdated Show resolved Hide resolved
@NewSoupVi
Copy link
Member

NewSoupVi commented May 5, 2024

I've found the culprit for the Webhost issue:

#3269

I'll leave it up to you whether you want to separately implement a workaround for this issue, please let me know. But I am okay with this going in without a change.

@jamesbrq
Copy link
Contributor Author

jamesbrq commented May 6, 2024

I've found the culprit for the Webhost issue:

#3269

I'll leave it up to you whether you want to separately implement a workaround for this issue, please let me know. But I am okay with this going in without a change.

Based on what I've seen in #3269 I'll be keeping the & in the title, since people are in agreeance that the PR provides the correct solution, and to keep the canonical name of the game.

eUsed: List[int]
room: int
local_events: List[int]
Copy link
Member

@NewSoupVi NewSoupVi May 6, 2024

Choose a reason for hiding this comment

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

Small thing that I will let go because it's probably not an issue in practice:

This should probably be a set, because it's only used for lookup and sets have instant to logarithmic lookup

@NewSoupVi NewSoupVi merged commit 5935093 into ArchipelagoMW:main May 6, 2024
3 checks passed
@jamesbrq jamesbrq deleted the mlss branch May 9, 2024 05:58
@jamesbrq jamesbrq restored the mlss branch May 9, 2024 05:58
jnschurig pushed a commit to Tranquilite0/Archipelago-SoulBlazer that referenced this pull request Jun 13, 2024
* Commit for PR

* Commit for PR

* Update worlds/mlss/Client.py

Co-authored-by: Silvris <[email protected]>

* Update worlds/mlss/__init__.py

Co-authored-by: Silvris <[email protected]>

* Update worlds/mlss/__init__.py

Co-authored-by: Silvris <[email protected]>

* Update worlds/mlss/docs/setup_en.md

Co-authored-by: Silvris <[email protected]>

* Remove deprecated import. Updated settings and romfile syntax

* Updated Options to new system. Changed all references from MultiWorld to World

* Changed switch statements to if else

* Update en_Mario & Luigi Superstar Saga.md

* Updated client.py

* Update Client.py

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Updated logic, Updated patch implementation, Removed unused imports, Cleaned up Code

* Update __init__.py

* Changed reference from world to mlssworld

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Fix merge conflict + update prep

* v1.2

* Leftover print commands

* Update basepatch.bsdiff

* Update basepatch.bsdiff

* v1.3

* Update Rom.py

* Change tracker locations to serverside, no longer locations. Various code cleanup and logic changes.

* Event removal continuation.

* Partial Implementation of APPP (Incomplete))

* v1.4 Implemented APPP

* Docs Updated

* Update Rom.py

* Update setup_en.md

* Update Rom.py

* Update Rules.py

* Fix for APPP being broken on webhost

* Update Rom.py

* Update Rom.py

* Location name fixes + pants color fixes

* Update Rules.py

* Fix for ultra hammer cutscene

* Fixed compat. issues with python ver. 3.8

* Updated hidden block yaml option

* pre-v1.5

* Update Client.py

* Update basepatch.bsdiff

* v1.5

* Update XP multiplier to have a minimum of 0

* Update 'Beanfruit' to 'Bean Fruit'

* v1.6

* Update Rom.py

* Update basepatch.bsdiff

* Initial review refactor

* Revert state logic changes. Continuation of refactor.

* Fixed failed generations. Finished refactor.

* Reworked colors. Removed all .txt files

* Actually removed the .txt files this time

* Update Rom.py

* Update README.md

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/Options.py

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/Client.py

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/__init__.py

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/Data.py

Co-authored-by: Exempt-Medic <[email protected]>

* Review refactor.

* Update README.md

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/Rules.py

Co-authored-by: Exempt-Medic <[email protected]>

* Add coin blocks to LocationName

* Refactor.

* Update Items.py

* Delete mlss.apworld

* Small asm bugfix

* Update basepatch.bsdiff

* Client sends less messages to server

* Update basepatch.bsdiff

---------

Co-authored-by: Silvris <[email protected]>
Co-authored-by: Nicholas Saylor <[email protected]>
Co-authored-by: NewSoupVi <[email protected]>
Co-authored-by: Exempt-Medic <[email protected]>
qwint pushed a commit to qwint/Archipelago that referenced this pull request Jun 24, 2024
* Commit for PR

* Commit for PR

* Update worlds/mlss/Client.py

Co-authored-by: Silvris <[email protected]>

* Update worlds/mlss/__init__.py

Co-authored-by: Silvris <[email protected]>

* Update worlds/mlss/__init__.py

Co-authored-by: Silvris <[email protected]>

* Update worlds/mlss/docs/setup_en.md

Co-authored-by: Silvris <[email protected]>

* Remove deprecated import. Updated settings and romfile syntax

* Updated Options to new system. Changed all references from MultiWorld to World

* Changed switch statements to if else

* Update en_Mario & Luigi Superstar Saga.md

* Updated client.py

* Update Client.py

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Updated logic, Updated patch implementation, Removed unused imports, Cleaned up Code

* Update __init__.py

* Changed reference from world to mlssworld

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Nicholas Saylor <[email protected]>

* Fix merge conflict + update prep

* v1.2

* Leftover print commands

* Update basepatch.bsdiff

* Update basepatch.bsdiff

* v1.3

* Update Rom.py

* Change tracker locations to serverside, no longer locations. Various code cleanup and logic changes.

* Event removal continuation.

* Partial Implementation of APPP (Incomplete))

* v1.4 Implemented APPP

* Docs Updated

* Update Rom.py

* Update setup_en.md

* Update Rom.py

* Update Rules.py

* Fix for APPP being broken on webhost

* Update Rom.py

* Update Rom.py

* Location name fixes + pants color fixes

* Update Rules.py

* Fix for ultra hammer cutscene

* Fixed compat. issues with python ver. 3.8

* Updated hidden block yaml option

* pre-v1.5

* Update Client.py

* Update basepatch.bsdiff

* v1.5

* Update XP multiplier to have a minimum of 0

* Update 'Beanfruit' to 'Bean Fruit'

* v1.6

* Update Rom.py

* Update basepatch.bsdiff

* Initial review refactor

* Revert state logic changes. Continuation of refactor.

* Fixed failed generations. Finished refactor.

* Reworked colors. Removed all .txt files

* Actually removed the .txt files this time

* Update Rom.py

* Update README.md

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/Options.py

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/Client.py

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/__init__.py

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/Data.py

Co-authored-by: Exempt-Medic <[email protected]>

* Review refactor.

* Update README.md

Co-authored-by: Exempt-Medic <[email protected]>

* Update worlds/mlss/Rules.py

Co-authored-by: Exempt-Medic <[email protected]>

* Add coin blocks to LocationName

* Refactor.

* Update Items.py

* Delete mlss.apworld

* Small asm bugfix

* Update basepatch.bsdiff

* Client sends less messages to server

* Update basepatch.bsdiff

---------

Co-authored-by: Silvris <[email protected]>
Co-authored-by: Nicholas Saylor <[email protected]>
Co-authored-by: NewSoupVi <[email protected]>
Co-authored-by: Exempt-Medic <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: new game Pull requests for implementing new games into Archipelago. waiting-on: peer-review Issue/PR has not been reviewed by enough people yet.
Projects
None yet
Development

Successfully merging this pull request may close these issues.