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

SM and SMZ3 option_definitions deprecation fix #3372

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
256 commits
Select commit Hold shift + click to select a range
e51ba5b
- reenabled balancing
lordlou Aug 1, 2021
472ff36
post rebase fixes
lordlou Aug 1, 2021
b275706
updated SmClient.py
lordlou Aug 2, 2021
be0b190
+ added VariaRandomizer LICENSE
lordlou Aug 7, 2021
c327f21
+ added sm_randomizer_rom project (which builds sm.ips)
lordlou Aug 7, 2021
6389df8
Moved VariaRandomizer and sm_randomizer_rom projects inside worlds/sm…
lordlou Aug 8, 2021
f227519
properly revert change made to CollectionState and more cleaning
lordlou Aug 8, 2021
4b95263
Fixed multiworld support patch not working with VariaRandomizer's
lordlou Aug 8, 2021
9752260
missing file commit
lordlou Aug 8, 2021
f35a93c
Fixed syntax error in unused code to satisfy Linter
lordlou Aug 9, 2021
a2f3321
Revert "Fixed multiworld support patch not working with VariaRandomiz…
lordlou Aug 10, 2021
f038100
many fixes and improovement
lordlou Aug 14, 2021
e37b465
first working (most of the time) progression generation for SM using …
lordlou Jul 23, 2021
db17501
first working single-world randomized SM rom patches
lordlou Jul 24, 2021
9e92900
- SM now displays message when getting an item outside for someone el…
lordlou Jul 28, 2021
7c521be
First working MultiWorld SM
lordlou Jul 30, 2021
7e26c8b
some missing things:
lordlou Aug 1, 2021
c39f972
replaced CollectionState inheritance from SMBoolManager with a compos…
lordlou Aug 1, 2021
1cb8829
- reenabled balancing
lordlou Aug 1, 2021
695c9c3
post rebase fixes
lordlou Aug 1, 2021
605fbe3
updated SmClient.py
lordlou Aug 2, 2021
8010ccd
+ added VariaRandomizer LICENSE
lordlou Aug 7, 2021
6b5331d
+ added sm_randomizer_rom project (which builds sm.ips)
lordlou Aug 7, 2021
aec748e
Moved VariaRandomizer and sm_randomizer_rom projects inside worlds/sm…
lordlou Aug 8, 2021
f86d140
properly revert change made to CollectionState and more cleaning
lordlou Aug 8, 2021
ca732df
Fixed multiworld support patch not working with VariaRandomizer's
lordlou Aug 8, 2021
262e03f
missing file commit
lordlou Aug 8, 2021
df57f4d
Fixed syntax error in unused code to satisfy Linter
lordlou Aug 9, 2021
2eea867
Revert "Fixed multiworld support patch not working with VariaRandomiz…
lordlou Aug 10, 2021
9bef993
many fixes and improovement
lordlou Aug 14, 2021
a3eec29
Fixed multiworld support patch not working with VariaRandomizer's
lordlou Aug 21, 2021
a6474d9
+ added missing files from variaRandomizer project
lordlou Aug 22, 2021
91b52e1
+ added missing variaRandomizer files (custom sprites)
lordlou Aug 24, 2021
7b54dcd
Some fixes for player and server name display
lordlou Aug 24, 2021
057cc72
Fixed Goal completion not triggering in smClient
lordlou Aug 26, 2021
74faec7
integrated VariaRandomizer's options into AP (WIP)
lordlou Aug 31, 2021
2f985f3
- fixed itemsounds.ips crash by always including nofanfare.ips into m…
lordlou Sep 1, 2021
6f91194
skillset are now instanced per player instead of being a singleton class
lordlou Sep 2, 2021
44f9d86
RomPatches are now instanced per player instead of being a singleton …
lordlou Sep 2, 2021
3010fa9
DoorManager is now instanced per player instead of being a singleton …
lordlou Sep 3, 2021
8df3a62
- fixed the last bugs that prevented generation of >1 SM world
lordlou Sep 3, 2021
82bf9e5
fixed crash when no skillset preset is specified in randoPreset (defa…
lordlou Sep 3, 2021
d6f65bd
maxDifficulty support and itemsounds removal
lordlou Sep 4, 2021
f0dbb8b
Merge branch 'variaOptionsIntegration'
lordlou Sep 4, 2021
e1c30c4
Fixed bad merge
lordlou Sep 4, 2021
2413617
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 4, 2021
8972874
Post merge adaptation
lordlou Sep 4, 2021
4a67aee
fixed player name length fix that got lost with the merge
lordlou Sep 5, 2021
afb5904
fixed generation with other game type than SM
lordlou Sep 5, 2021
c4bcdac
added default randoPreset json for SM in playerSettings.yaml
lordlou Sep 5, 2021
f3846b8
fixed broken SM client following merge
lordlou Sep 5, 2021
4729355
beautified json skillset presets
lordlou Sep 7, 2021
8f02b71
Fixed ArchipelagoSmClient not building
lordlou Sep 7, 2021
fc9d390
Fixed conflict between mutliworld patch and beam_doors_plms patch
lordlou Sep 7, 2021
8941af9
SM generation now outputs APBP
lordlou Sep 7, 2021
36dc99d
added missing file and fixed multithreading issue
lordlou Sep 8, 2021
47f55ba
temporarily set data_version = 0
lordlou Sep 8, 2021
9575a56
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 11, 2021
d8f549d
more work
lordlou Sep 16, 2021
767e671
commited missing asm files
lordlou Sep 17, 2021
0b8b15b
Nothing item are now handled game-side. the game will now skip displa…
lordlou Sep 18, 2021
3b951bb
fixed No Energy Item missing its ID
lordlou Sep 19, 2021
876dc39
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 20, 2021
bdf671f
merge post fixes
lordlou Sep 20, 2021
6c289d8
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 23, 2021
57b139b
fixed start item Grapple, XRay and Reserve HUD, as well as graphic be…
lordlou Sep 23, 2021
46e1e86
fixed freeze in blue brinstar caused by Varia's custom PLM not being …
lordlou Sep 24, 2021
efe8d0a
fixed start item x-ray HUD display
lordlou Sep 25, 2021
d88a8c7
Fixed start items being sent by the server (is all handled in ROM)
lordlou Sep 26, 2021
1de52c5
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 26, 2021
c1efffc
fixed settings that could be applied to any SM players
lordlou Sep 27, 2021
28047cb
fixed auth to server only using player name (now does as ALTTP to aut…
lordlou Sep 29, 2021
d579814
- fixed End Credits broken text
lordlou Oct 1, 2021
33ac23e
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 1, 2021
a6bccbf
added non SM item name display
lordlou Oct 2, 2021
e1d018a
added all supported SM options in playerSettings.yaml
lordlou Oct 4, 2021
1482bae
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 4, 2021
6461a82
fixed locations needing a list of parent regions (now generate a regi…
lordlou Oct 8, 2021
cd8077c
minor setting fixes and tweaks
lordlou Oct 8, 2021
d42ab88
added option start_inventory_removes_from_pool
lordlou Oct 9, 2021
1f1b4d7
Hopefully fixed ROR2 that could not send any items
lordlou Oct 10, 2021
a141ab1
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 10, 2021
eaa8e67
- fixed missing required change to ROR2
lordlou Oct 10, 2021
efc849e
fixed 0 hp when respawning without having ever saved (start items wer…
lordlou Oct 12, 2021
65c1366
fixed typo with doors_colors_rando
lordlou Oct 12, 2021
db799c9
fixed checksum
lordlou Oct 13, 2021
f33acac
added custom sprites for off-world items (progression or not)
lordlou Oct 19, 2021
cf756cc
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 19, 2021
b75755d
- added missing change following upstream merge
lordlou Oct 19, 2021
c151f19
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 22, 2021
8734231
added morph placement options: early means local and sphere 1
lordlou Oct 22, 2021
63979db
fixed failing unit tests
lordlou Oct 22, 2021
5fdb9ea
- fixed broken custom_preset options
lordlou Oct 24, 2021
6c2a453
- big cleanup to remove unnecessary or unsupported features
lordlou Oct 24, 2021
71cc1a8
- more cleanup
lordlou Oct 24, 2021
e36e0c0
- moved sm_randomizer_rom and all always applied patches into an exte…
lordlou Oct 24, 2021
8058ded
- added comment to refer to project for generating basepatch.ips (htt…
lordlou Oct 24, 2021
aad65ef
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 24, 2021
3f5795c
fixed g4_skip patch that can be not applied if hud is enabled
lordlou Oct 25, 2021
ca3470e
- fixed off world sprite that can have broken graphics (restricted to…
lordlou Oct 25, 2021
272fe40
- updated basepatch to reflect g4_skip removal
lordlou Oct 25, 2021
4df71d6
- tourian grey doors at baby metroid are now always flashing (allowin…
lordlou Oct 29, 2021
be0c005
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 29, 2021
332030e
fixed wrong path if using built as exe
lordlou Oct 29, 2021
efc89d3
- cleaned exposed maxDifficulty options
lordlou Oct 29, 2021
a1cf495
Merged LttPClient and SMClient into SNIClient
lordlou Oct 31, 2021
4308443
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 31, 2021
2baf457
added varia_custom Preset Option that fetch a preset (read from a new…
lordlou Nov 1, 2021
8bf976f
small doc precision
lordlou Nov 4, 2021
ec9024b
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Nov 4, 2021
182947f
- added death_link support
lordlou Nov 5, 2021
186dca1
- removed now useless presets
lordlou Nov 6, 2021
090cfab
- fixed bad internal mapping with maxDiff
lordlou Nov 6, 2021
2ba3b9c
- added support for lowercase custom preset sections (knows, settings…
lordlou Nov 8, 2021
1cc271c
- fixed death loop when dying with Door rando, bomb or speed booster …
lordlou Nov 9, 2021
9146966
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Nov 9, 2021
d2f5eaf
-added docstring for generated yaml
lordlou Nov 9, 2021
63ee5fe
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Nov 12, 2021
fb5ba87
fixed bad merge
lordlou Nov 12, 2021
83130d5
fixed broken infinity max difficulty
lordlou Nov 12, 2021
534f285
commented debug prints
lordlou Nov 12, 2021
2bf555e
adjusted credits to mark progression speed and difficulty as Non Avai…
lordlou Nov 13, 2021
23b9ea7
added support for more than 255 players (will print Archipelago for h…
lordlou Nov 13, 2021
2755836
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Nov 13, 2021
dc027fc
fixed missing cleanup
lordlou Nov 13, 2021
b99145a
added support for 65535 different player names in ROM
lordlou Nov 14, 2021
265f49c
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Nov 14, 2021
bc5ce7e
fixed generations failing when only bosses are unreachable
lordlou Nov 24, 2021
90ef9e2
- replaced setting maxDiff to infinity with a bool only affecting bos…
lordlou Nov 26, 2021
808a1b7
fixed failling generations when using 'fun' settings
lordlou Nov 27, 2021
e43626d
fixed debug logger
lordlou Nov 27, 2021
2d12a89
removed unsupported "suits_restriction" option
lordlou Nov 27, 2021
63fb461
fixed generations failing when only bosses are unreachable (using a l…
lordlou Nov 30, 2021
0874506
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Dec 2, 2021
cda843f
Merge branch 'fix/onlyBossLeft'
lordlou Dec 2, 2021
cdea398
- fixed deathlink emptying reserves
lordlou Dec 2, 2021
8ac1405
- merged death_link and death_link_survive options
lordlou Dec 2, 2021
54ed17e
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jan 4, 2022
958a016
fixed death_link
lordlou Jan 5, 2022
74f153d
added a fallback default starting location instead of failing generat…
lordlou Jan 5, 2022
f1d5a29
added Nothing and NoEnergy as hint blacklist
lordlou Jan 5, 2022
98f11c2
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jan 17, 2022
1589660
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jan 21, 2022
7ffd3dd
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jan 22, 2022
cc47e63
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jan 23, 2022
2c2afb4
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jan 23, 2022
792a8cf
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 5, 2022
bea27db
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 6, 2022
d4b7ded
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 6, 2022
0a40a95
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 8, 2022
c7dd84b
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 12, 2022
31d6952
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 13, 2022
029b4f6
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 16, 2022
09a4ad0
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 19, 2022
92bd79c
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 21, 2022
6396de3
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 26, 2022
c8487a0
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Mar 2, 2022
218c374
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Mar 4, 2022
1f33a83
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Mar 13, 2022
284aae7
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Mar 13, 2022
59f6390
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Mar 17, 2022
3fd3075
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Mar 19, 2022
bfd0e9e
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Mar 24, 2022
4865509
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Mar 26, 2022
4209035
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 2, 2022
7a83bdc
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 2, 2022
c3723bc
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 22, 2022
4b307f3
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou May 14, 2022
0c18c4d
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou May 16, 2022
c4f7cb5
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou May 19, 2022
3609d7a
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou May 25, 2022
785f67d
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou May 30, 2022
a955588
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jun 18, 2022
86475cc
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jun 25, 2022
e563908
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jul 7, 2022
f8d006c
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jul 16, 2022
c21a741
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jul 17, 2022
5ae0467
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jul 22, 2022
7cd64df
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jul 29, 2022
d0f3d18
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jul 30, 2022
406dd8d
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Aug 7, 2022
9a8dec2
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Aug 9, 2022
3759939
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Aug 12, 2022
6c9ffa3
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Aug 18, 2022
6ae4624
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Aug 20, 2022
d008de2
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Aug 27, 2022
a81035f
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Aug 30, 2022
ae47002
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 3, 2022
c52769f
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 6, 2022
20f4b9b
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 8, 2022
a645fe4
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 10, 2022
baacaf9
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 18, 2022
84847db
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 24, 2022
b70a311
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Nov 25, 2022
6fa9572
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Nov 30, 2022
b854c75
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jan 21, 2023
50e4a4a
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jan 28, 2023
cb1948d
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 1, 2023
205e268
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Feb 24, 2023
6779da5
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Mar 3, 2023
ce32da2
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Mar 24, 2023
9b16991
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 3, 2023
d4b4db8
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 8, 2023
992ca2f
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 8, 2023
050d14a
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 10, 2023
b47a629
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 15, 2023
d7fc291
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 18, 2023
836b1e4
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 20, 2023
8a647a7
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 22, 2023
3da86c4
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 27, 2023
f0412e7
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 27, 2023
31f99ee
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou May 7, 2023
a85a351
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou May 9, 2023
df40e3d
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou May 30, 2023
5ac7aa4
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jul 2, 2023
a0cdac0
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jul 6, 2023
15f92d6
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Aug 13, 2023
8d8b587
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 12, 2023
770c962
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 15, 2023
c4a57f6
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 19, 2023
ed33fb7
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 22, 2023
7732527
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 22, 2023
51db619
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 25, 2023
376271b
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Sep 26, 2023
b44f92f
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 18, 2023
7b2baf0
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Oct 24, 2023
63120ce
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Nov 16, 2023
bf41bf2
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Dec 8, 2023
edb5db9
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Dec 12, 2023
735b56e
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Dec 17, 2023
325111e
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Dec 26, 2023
6eea9ba
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jan 4, 2024
961a3c0
Merge tag '0.4.5'
lordlou Apr 5, 2024
7d8f4d2
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Apr 21, 2024
4f1fab9
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou May 21, 2024
619966d
replaced deprecated use of option_definitions for SM and SMZ3 by opti…
lordlou May 22, 2024
f12dcf6
fixed missed references to option_definitions
lordlou May 24, 2024
c81e977
Update worlds/sm/variaRandomizer/utils/utils.py
lordlou May 24, 2024
c58c171
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jun 1, 2024
1cd63ac
Merge branch 'main' into SM_SMZ3_option_definitions_deprecation
lordlou Jun 5, 2024
18ffe4c
Merge branch 'main' into SM_SMZ3_option_definitions_deprecation
lordlou Jun 5, 2024
6defa9c
Merge branch 'main' into SM_SMZ3_option_definitions_deprecation
lordlou Jun 13, 2024
af92075
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jun 13, 2024
641bde1
Merge branch 'main' into SM_SMZ3_option_definitions_deprecation
lordlou Jul 27, 2024
e06835d
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Jul 27, 2024
ce62705
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
lordlou Aug 17, 2024
88ee06d
Merge branch 'main' of https://github.com/lordlou/Archipelago into SM…
lordlou Aug 17, 2024
631a485
fixed conflicts and made SMZ3 accessibility related code more future …
lordlou Aug 17, 2024
b628d75
Update worlds/smz3/Options.py
lordlou Aug 17, 2024
7e8c0a5
Update worlds/smz3/__init__.py
lordlou Aug 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 61 additions & 60 deletions worlds/sm/Options.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import typing
from Options import Choice, Range, OptionDict, OptionList, OptionSet, Option, Toggle, DefaultOnToggle
from Options import Choice, PerGameCommonOptions, Range, OptionDict, OptionList, OptionSet, Option, Toggle, DefaultOnToggle
from .variaRandomizer.utils.objectives import _goals
from dataclasses import dataclass

class StartItemsRemovesFromPool(Toggle):
"""Remove items in starting inventory from pool."""
Expand Down Expand Up @@ -372,62 +373,62 @@ class RelaxedRoundRobinCF(Toggle):
"""
display_name = "Relaxed round robin Crystal Flash"

sm_options: typing.Dict[str, type(Option)] = {
"start_inventory_removes_from_pool": StartItemsRemovesFromPool,
"preset": Preset,
"start_location": StartLocation,
"remote_items": RemoteItems,
"death_link": DeathLink,
#"majors_split": "Full",
#"scav_num_locs": "10",
#"scav_randomized": "off",
#"scav_escape": "off",
"max_difficulty": MaxDifficulty,
#"progression_speed": "medium",
#"progression_difficulty": "normal",
"morph_placement": MorphPlacement,
#"suits_restriction": SuitsRestriction,
"hide_items": HideItems,
"strict_minors": StrictMinors,
"missile_qty": MissileQty,
"super_qty": SuperQty,
"power_bomb_qty": PowerBombQty,
"minor_qty": MinorQty,
"energy_qty": EnergyQty,
"area_randomization": AreaRandomization,
"area_layout": AreaLayout,
"doors_colors_rando": DoorsColorsRando,
"allow_grey_doors": AllowGreyDoors,
"boss_randomization": BossRandomization,
#"minimizer": "off",
#"minimizer_qty": "45",
#"minimizer_tourian": "off",
"escape_rando": EscapeRando,
"remove_escape_enemies": RemoveEscapeEnemies,
"fun_combat": FunCombat,
"fun_movement": FunMovement,
"fun_suits": FunSuits,
"layout_patches": LayoutPatches,
"varia_tweaks": VariaTweaks,
"nerfed_charge": NerfedCharge,
"gravity_behaviour": GravityBehaviour,
#"item_sounds": "on",
"elevators_speed": ElevatorsSpeed,
"fast_doors": DoorsSpeed,
"spin_jump_restart": SpinJumpRestart,
"rando_speed": SpeedKeep,
"infinite_space_jump": InfiniteSpaceJump,
"refill_before_save": RefillBeforeSave,
"hud": Hud,
"animals": Animals,
"no_music": NoMusic,
"random_music": RandomMusic,
"custom_preset": CustomPreset,
"varia_custom_preset": VariaCustomPreset,
"tourian": Tourian,
"custom_objective": CustomObjective,
"custom_objective_list": CustomObjectiveList,
"custom_objective_count": CustomObjectiveCount,
"objective": Objective,
"relaxed_round_robin_cf": RelaxedRoundRobinCF,
}
@dataclass
class SMOptions(PerGameCommonOptions):
start_inventory_removes_from_pool: StartItemsRemovesFromPool
preset: Preset
start_location: StartLocation
remote_items: RemoteItems
death_link: DeathLink
#majors_split: "Full"
#scav_num_locs: "10"
#scav_randomized: "off"
#scav_escape: "off"
max_difficulty: MaxDifficulty
#progression_speed": "medium"
#progression_difficulty": "normal"
morph_placement: MorphPlacement
#suits_restriction": SuitsRestriction
hide_items: HideItems
strict_minors: StrictMinors
missile_qty: MissileQty
super_qty: SuperQty
power_bomb_qty: PowerBombQty
minor_qty: MinorQty
energy_qty: EnergyQty
area_randomization: AreaRandomization
area_layout: AreaLayout
doors_colors_rando: DoorsColorsRando
allow_grey_doors: AllowGreyDoors
boss_randomization: BossRandomization
#minimizer: "off"
#minimizer_qty: "45"
#minimizer_tourian: "off"
escape_rando: EscapeRando
remove_escape_enemies: RemoveEscapeEnemies
fun_combat: FunCombat
fun_movement: FunMovement
fun_suits: FunSuits
layout_patches: LayoutPatches
varia_tweaks: VariaTweaks
nerfed_charge: NerfedCharge
gravity_behaviour: GravityBehaviour
#item_sounds: "on"
elevators_speed: ElevatorsSpeed
fast_doors: DoorsSpeed
spin_jump_restart: SpinJumpRestart
rando_speed: SpeedKeep
infinite_space_jump: InfiniteSpaceJump
refill_before_save: RefillBeforeSave
hud: Hud
animals: Animals
no_music: NoMusic
random_music: RandomMusic
custom_preset: CustomPreset
varia_custom_preset: VariaCustomPreset
tourian: Tourian
custom_objective: CustomObjective
custom_objective_list: CustomObjectiveList
custom_objective_count: CustomObjectiveCount
objective: Objective
relaxed_round_robin_cf: RelaxedRoundRobinCF
38 changes: 18 additions & 20 deletions worlds/sm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

logger = logging.getLogger("Super Metroid")

from .Options import sm_options
from .Options import SMOptions
from .Client import SMSNIClient
from .Rom import get_base_rom_path, SM_ROM_MAX_PLAYERID, SM_ROM_PLAYERDATA_COUNT, SMDeltaPatch, get_sm_symbols
import Utils
Expand Down Expand Up @@ -96,10 +96,11 @@ class SMWorld(World):
a wide range of options to randomize Item locations, required skills and even the connections
between the main Areas!
"""

game: str = "Super Metroid"
topology_present = True
option_definitions = sm_options
options_dataclass = SMOptions
options: SMOptions

settings: typing.ClassVar[SMSettings]

item_name_to_id = {value.Name: items_start_id + value.Id for key, value in ItemManager.Items.items() if value.Id != None}
Expand Down Expand Up @@ -129,27 +130,27 @@ def generate_early(self):
Logic.factory('vanilla')

dummy_rom_file = Utils.user_path(SMSettings.RomFile.copy_to) # actual rom set in generate_output
self.variaRando = VariaRandomizer(self.multiworld, dummy_rom_file, self.player)
self.variaRando = VariaRandomizer(self.options, dummy_rom_file, self.player)
self.multiworld.state.smbm[self.player] = SMBoolManager(self.player, self.variaRando.maxDifficulty)

# keeps Nothing items local so no player will ever pickup Nothing
# doing so reduces contribution of this world to the Multiworld the more Nothing there is though
self.multiworld.local_items[self.player].value.add('Nothing')
self.multiworld.local_items[self.player].value.add('No Energy')
self.options.local_items.value.add('Nothing')
self.options.local_items.value.add('No Energy')

if (self.variaRando.args.morphPlacement == "early"):
self.multiworld.local_early_items[self.player]['Morph Ball'] = 1

self.remote_items = self.multiworld.remote_items[self.player]
self.remote_items = self.options.remote_items

if (len(self.variaRando.randoExec.setup.restrictedLocs) > 0):
self.multiworld.accessibility[self.player].value = Accessibility.option_minimal
self.options.accessibility.value = Accessibility.option_minimal
logger.warning(f"accessibility forced to 'minimal' for player {self.multiworld.get_player_name(self.player)} because of 'fun' settings")

def create_items(self):
itemPool = self.variaRando.container.itemPool
self.startItems = [variaItem for item in self.multiworld.precollected_items[self.player] for variaItem in ItemManager.Items.values() if variaItem.Name == item.name]
if self.multiworld.start_inventory_removes_from_pool[self.player]:
if self.options.start_inventory_removes_from_pool:
for item in self.startItems:
if (item in itemPool):
itemPool.remove(item)
Expand Down Expand Up @@ -317,10 +318,10 @@ def create_item(self, name: str) -> Item:
player=self.player)

def get_filler_item_name(self) -> str:
if self.multiworld.random.randint(0, 100) < self.multiworld.minor_qty[self.player].value:
power_bombs = self.multiworld.power_bomb_qty[self.player].value
missiles = self.multiworld.missile_qty[self.player].value
super_missiles = self.multiworld.super_qty[self.player].value
if self.multiworld.random.randint(0, 100) < self.options.minor_qty.value:
power_bombs = self.options.power_bomb_qty.value
missiles = self.options.missile_qty.value
super_missiles = self.options.super_qty.value
roll = self.multiworld.random.randint(1, power_bombs + missiles + super_missiles)
if roll <= power_bombs:
return "Power Bomb"
Expand Down Expand Up @@ -633,7 +634,7 @@ def APPostPatchRom(self, romPatcher):
deathLink: List[ByteEdit] = [{
"sym": symbols["config_deathlink"],
"offset": 0,
"values": [self.multiworld.death_link[self.player].value]
"values": [self.options.death_link.value]
}]
remoteItem: List[ByteEdit] = [{
"sym": symbols["config_remote_items"],
Expand Down Expand Up @@ -859,10 +860,7 @@ def modify_multidata(self, multidata: dict):
def fill_slot_data(self):
slot_data = {}
if not self.multiworld.is_race:
for option_name in self.option_definitions:
option = getattr(self.multiworld, option_name)[self.player]
slot_data[option_name] = option.value

slot_data = self.options.as_dict(*self.options_dataclass.type_hints)
slot_data["Preset"] = { "Knows": {},
"Settings": {"hardRooms": Settings.SettingsDict[self.player].hardRooms,
"bossesDifficulty": Settings.SettingsDict[self.player].bossesDifficulty,
Expand All @@ -887,14 +885,14 @@ def fill_slot_data(self):
return slot_data

def write_spoiler(self, spoiler_handle: TextIO):
if self.multiworld.area_randomization[self.player].value != 0:
if self.options.area_randomization.value != 0:
spoiler_handle.write('\n\nArea Transitions:\n\n')
spoiler_handle.write('\n'.join(['%s%s %s %s' % (f'{self.multiworld.get_player_name(self.player)}: '
if self.multiworld.players > 1 else '', src.Name,
'<=>',
dest.Name) for src, dest in self.variaRando.randoExec.areaGraph.InterAreaTransitions if not src.Boss]))

if self.multiworld.boss_randomization[self.player].value != 0:
if self.options.boss_randomization.value != 0:
spoiler_handle.write('\n\nBoss Transitions:\n\n')
spoiler_handle.write('\n'.join(['%s%s %s %s' % (f'{self.multiworld.get_player_name(self.player)}: '
if self.multiworld.players > 1 else '', src.Name,
Expand Down
14 changes: 7 additions & 7 deletions worlds/sm/variaRandomizer/randomizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,13 +250,13 @@ class VariaRandomizer:
parser.add_argument('--tourianList', help="list to choose from when random",
dest='tourianList', nargs='?', default=None)

def __init__(self, world, rom, player):
def __init__(self, options, rom, player):
# parse args
self.args = copy.deepcopy(VariaRandomizer.parser.parse_args(["--logic", "varia"])) #dummy custom args to skip parsing _sys.argv while still get default values
self.player = player
args = self.args
args.rom = rom
# args.startLocation = to_pascal_case_with_space(world.startLocation[player].current_key)
# args.startLocation = to_pascal_case_with_space(options.startLocation.current_key)

if args.output is None and args.rom is None:
raise Exception("Need --output or --rom parameter")
Expand Down Expand Up @@ -288,7 +288,7 @@ def forceArg(arg, value, msg, altValue=None, webArg=None, webValue=None):
# print(msg)
# optErrMsgs.append(msg)

preset = loadRandoPreset(world, self.player, args)
preset = loadRandoPreset(options, args)
# use the skill preset from the rando preset
if preset is not None and preset != 'custom' and preset != 'varia_custom' and args.paramsFileName is None:
args.paramsFileName = "/".join((appDir, getPresetDir(preset), preset+".json"))
Expand All @@ -302,12 +302,12 @@ def forceArg(arg, value, msg, altValue=None, webArg=None, webValue=None):
preset = args.preset
else:
if preset == 'custom':
PresetLoader.factory(world.custom_preset[player].value).load(self.player)
PresetLoader.factory(options.custom_preset.value).load(self.player)
elif preset == 'varia_custom':
if len(world.varia_custom_preset[player].value) == 0:
if len(options.varia_custom_preset.value) == 0:
raise Exception("varia_custom was chosen but varia_custom_preset is missing.")
url = 'https://randommetroidsolver.pythonanywhere.com/presetWebService'
preset_name = next(iter(world.varia_custom_preset[player].value))
preset_name = next(iter(options.varia_custom_preset.value))
payload = '{{"preset": "{}"}}'.format(preset_name)
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
response = requests.post(url, data=payload, headers=headers)
Expand Down Expand Up @@ -463,7 +463,7 @@ def forceArg(arg, value, msg, altValue=None, webArg=None, webValue=None):
args.startLocation = random.choice(possibleStartAPs)
elif args.startLocation not in possibleStartAPs:
args.startLocation = 'Landing Site'
world.start_location[player] = StartLocation(StartLocation.default)
options.start_location = StartLocation(StartLocation.default)
#optErrMsgs.append('Invalid start location: {}. {}'.format(args.startLocation, reasons[args.startLocation]))
#optErrMsgs.append('Possible start locations with these settings: {}'.format(possibleStartAPs))
#dumpErrorMsgs(args.output, optErrMsgs)
Expand Down
72 changes: 36 additions & 36 deletions worlds/sm/variaRandomizer/utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,35 +358,35 @@ def convertParam(randoParams, param, inverse=False):
return "random"
raise Exception("invalid value for parameter {}".format(param))

def loadRandoPreset(world, player, args):
def loadRandoPreset(options, args):
defaultMultiValues = getDefaultMultiValues()
diffs = ["easy", "medium", "hard", "harder", "hardcore", "mania", "infinity"]
presetValues = getPresetValues()

args.animals = world.animals[player].value
args.noVariaTweaks = not world.varia_tweaks[player].value
args.maxDifficulty = diffs[world.max_difficulty[player].value]
#args.suitsRestriction = world.suits_restriction[player].value
args.hideItems = world.hide_items[player].value
args.strictMinors = world.strict_minors[player].value
args.noLayout = not world.layout_patches[player].value
args.gravityBehaviour = defaultMultiValues["gravityBehaviour"][world.gravity_behaviour[player].value]
args.nerfedCharge = world.nerfed_charge[player].value
args.area = world.area_randomization[player].current_key
args.animals = options.animals.value
args.noVariaTweaks = not options.varia_tweaks.value
args.maxDifficulty = diffs[options.max_difficulty.value]
#args.suitsRestriction = options.suits_restriction.value
args.hideItems = options.hide_items.value
args.strictMinors = options.strict_minors.value
args.noLayout = not options.layout_patches.value
args.gravityBehaviour = defaultMultiValues["gravityBehaviour"][options.gravity_behaviour.value]
args.nerfedCharge = options.nerfed_charge.value
args.area = options.area_randomization.current_key
if (args.area == "true"):
args.area = "full"
if args.area != "off":
args.areaLayoutBase = not world.area_layout[player].value
args.escapeRando = world.escape_rando[player].value
args.noRemoveEscapeEnemies = not world.remove_escape_enemies[player].value
args.doorsColorsRando = world.doors_colors_rando[player].value
args.allowGreyDoors = world.allow_grey_doors[player].value
args.bosses = world.boss_randomization[player].value
if world.fun_combat[player].value:
args.areaLayoutBase = not options.area_layout.value
args.escapeRando = options.escape_rando.value
args.noRemoveEscapeEnemies = not options.remove_escape_enemies.value
args.doorsColorsRando = options.doors_colors_rando.value
args.allowGreyDoors = options.allow_grey_doors.value
args.bosses = options.boss_randomization.value
if options.fun_combat.value:
args.superFun.append("Combat")
if world.fun_movement[player].value:
if options.fun_movement.value:
args.superFun.append("Movement")
if world.fun_suits[player].value:
if options.fun_suits.value:
args.superFun.append("Suits")

ipsPatches = { "spin_jump_restart":"spinjumprestart",
Expand All @@ -396,36 +396,36 @@ def loadRandoPreset(world, player, args):
"refill_before_save":"refill_before_save",
"relaxed_round_robin_cf":"relaxed_round_robin_cf"}
for settingName, patchName in ipsPatches.items():
if hasattr(world, settingName) and getattr(world, settingName)[player].value:
if hasattr(options, settingName) and getattr(options, settingName).value:
args.patches.append(patchName + '.ips')

patches = {"no_music":"No_Music", "infinite_space_jump":"Infinite_Space_Jump"}
for settingName, patchName in patches.items():
if hasattr(world, settingName) and getattr(world, settingName)[player].value:
if hasattr(options, settingName) and getattr(options, settingName).value:
args.patches.append(patchName)

args.hud = world.hud[player].value
args.morphPlacement = defaultMultiValues["morphPlacement"][world.morph_placement[player].value]
args.hud = options.hud.value
args.morphPlacement = defaultMultiValues["morphPlacement"][options.morph_placement.value]
#args.majorsSplit
#args.scavNumLocs
#args.scavRandomized
args.startLocation = defaultMultiValues["startLocation"][world.start_location[player].value]
args.startLocation = defaultMultiValues["startLocation"][options.start_location.value]
#args.progressionDifficulty
#args.progressionSpeed
args.missileQty = world.missile_qty[player].value / float(10)
args.superQty = world.super_qty[player].value / float(10)
args.powerBombQty = world.power_bomb_qty[player].value / float(10)
args.minorQty = world.minor_qty[player].value
args.energyQty = defaultMultiValues["energyQty"][world.energy_qty[player].value]
args.objectiveRandom = world.custom_objective[player].value
args.objectiveList = list(world.custom_objective_list[player].value)
args.nbObjective = world.custom_objective_count[player].value
args.objective = list(world.objective[player].value)
args.tourian = defaultMultiValues["tourian"][world.tourian[player].value]
args.missileQty = options.missile_qty.value / float(10)
args.superQty = options.super_qty.value / float(10)
args.powerBombQty = options.power_bomb_qty.value / float(10)
args.minorQty = options.minor_qty.value
args.energyQty = defaultMultiValues["energyQty"][options.energy_qty.value]
args.objectiveRandom = options.custom_objective.value
args.objectiveList = list(options.custom_objective_list.value)
args.nbObjective = options.custom_objective_count.value
args.objective = list(options.objective.value)
args.tourian = defaultMultiValues["tourian"][options.tourian.value]
#args.minimizerN
#args.minimizerTourian

return presetValues[world.preset[player].value]
return presetValues[options.preset.value]

def getRandomizerDefaultParameters():
defaultParams = {}
Expand Down
Loading
Loading