* support version on new manifest
* apply world version from manifest
* Update Generate.py
* docs
* reduce mm2 version again
* wrong version
* validate game in world_types
* Update Generate.py
* let unknown game fall through to later exception
* hide real world version behind property
* named tuple is immutable
* write minimum world version to template yaml, fix gen edge cases
* punctuation
* check for world version in autoworldregister
* missed one
---------
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
* sc2: Fixing a Reaver item being classified as a scout item
* sc2: any_units now requires any AA in the first 5 units
* Fixing Shoot the Messenger not requiring AA in a hard rule
* Fixing any_unit zerg still allowing unupgraded mercs
* sc2: Fixed an issue where terran was requiring zerg anti-air in any_units
* Making the fix better (thanks medic)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Fully remove fixed_shop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
* Make local_fill show up on the website
* Merge with main
* Fixes after merge
* More fixes after merge
* oh right that's why it was there, circular imports
* Swap {} to ()
* Add fuse and bell shuffle to seed groups since they're logically significant for entrance pairing
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* init
* merge upstream/main
* improve option tooltips, clean up file a bit
* ladx feels like more of an ocean game
* one more
* more cleanup
* some reorg
* Apply suggestions from code review
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* clean up accidental newlines
* rewording
* dont do the ohko alias
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* sc2: Changing default campaign options to something more performative and desirable for new players
* sc2: Fixing broken test that was missed in roundup
* SC2: Update tests for new defaults
* SC2: Fix incomplete test
* sc2: Updating description for enabled campaigns to mention which are free to play
* sc2: PR comments; Updating additional unit tests that were affected by a default change
* sc2: Adding a comment to the Enabled Campaigns option to list all the valid campaign names
* sc2: Adding quotes wrapping sample values in enabled_campaigns comment to aid copy-pasting
---------
Co-authored-by: Salzkorn <salzkitty@gmail.com>
* sc2: Fixing Launcher.py launch not properly handling command-line arguments
* sc2: Fixing some old option names in webhost
* sc2: Switching to common client url parameter handling
Adds support for a manifest file (archipelago.json) inside an .apworld file. It tells AP the game, minimum core version (optional field), maximum core version (optional field), its own version (used to determine which file to prefer to load only currently)
The file itself is marked as required starting with core 0.7.0, prior, just a warning is printed, with error trace.
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
* - Made the traveling cart test not be flaky due to worlds caching
# Conflicts:
# worlds/stardew_valley/rules.py
* - Made the traveling merchant test less flaky
# Conflicts:
# worlds/stardew_valley/test/rules/TestTravelingMerchant.py
* sc2: Fixing always-true rules in locations.py; fixed two over-constrained rules that put vanilla out-of-logic
* sc2: Minor min2() optimization in rules.py
* sc2: Fixing a Shatter the Sky logic bug where w/a upgrades were checked too many times and for the wrong units
* fix(workflows): Update Docker workflow tag pattern
- Change tag pattern from "v*" to "*.*.*" for better version matching
- Add new semver pattern type for major version
* squash! fix(workflows): Update Docker workflow tag pattern - Change tag pattern from "v*" to "*.*.*" for better version matching - Add new semver pattern type for major version
* Update docker.yml
* Update docker.yml
* Update docker.yml
* fix(docker): Correct copy command to use recursive flag for EnemizerCLI
- Changed 'cp' to 'cp -r' to properly copy EnemizerCLI directory
* fixup! Update docker.yml
* fix(docker): Correct copy command to use recursive flag for EnemizerCLI
- Changed 'cp' to 'cp -r' to properly copy EnemizerCLI directory
* chore(workflow): Update Docker workflow to support multiple platforms
- Removed matrix strategy for platform selection
- Set platforms directly in the Docker Buildx step
* docs(deployment): Update container deployment documentation
- Specify minimum versions for Docker and Podman
- Add requirement for Docker Buildx plugin
* fix(workflows): Exclude specific paths from Docker build triggers
- Prevent unnecessary builds for documentation and deployment files
* feat(ci): Update Docker workflow for multi-architecture builds
- Added new build job for ARM64 architecture support
- Created a multi-arch manifest to manage image variants
- Improved Docker Buildx setup and push steps for both architectures
* fixup! feat(ci): Update Docker workflow for multi-architecture builds - Added new build job for ARM64 architecture support - Created a multi-arch manifest to manage image variants - Improved Docker Buildx setup and push steps for both architectures
* fixup! feat(ci): Update Docker workflow for multi-architecture builds - Added new build job for ARM64 architecture support - Created a multi-arch manifest to manage image variants - Improved Docker Buildx setup and push steps for both architectures
* fixup! feat(ci): Update Docker workflow for multi-architecture builds - Added new build job for ARM64 architecture support - Created a multi-arch manifest to manage image variants - Improved Docker Buildx setup and push steps for both architectures
* fix(workflow): Cleanup temporary image tags
* fixup! fix(workflow): Cleanup temporary image tags
* fixup! fix(workflow): Cleanup temporary image tags
* fixup! fix(workflow): Cleanup temporary image tags
* fix(workflow): Apply scoped build cache to eliminate race condition
between jobs.
* fixup! fix(workflow): Apply scoped build cache to eliminate race condition between jobs.
* Remove branch wildcard
* Test comment
* Revert wildcard removal
* Remove `pr` event
* Revert `pr` event removal
* fixup! Revert `pr` event removal
* Update docker.yml
* Update docker.yml
* Update docker.yml
* feat(workflows): Add docker workflow to compute final tags
- Introduce a step to compute final tags based on GitHub ref type
- Ensure 'latest' tag is set for version tags
* chore(workflow): Enable manual dispatch for Docker workflow
- Add workflow_dispatch event trigger to allow manual runs
* fix(workflows): Update Docker workflow to handle tag outputs correctly
- Use readarray to handle tags as an array
- Prevent duplicate latest tags in the tags list
- Set multiline output for tags in GitHub Actions
* Update docker.yml
Use new `is_not_default_branch` condition
* Update docker.yml
Allow "v" prefix for semver git tags qualifying for `latest` image tag
* Update docker.yml
Tighten up `tags` push pattern mirroring that of `release` workflow.
* Merge branch 'ArchipelagoMW:main' into main
* Update docker.yml
* Merge branch 'ArchipelagoMW:main' into docker_wf
* Update docker.yml
Use new `is_not_default_branch` condition
* Update docker.yml
Allow "v" prefix for semver git tags qualifying for `latest` image tag
* Update docker.yml
Tighten up `tags` push pattern mirroring that of `release` workflow.
* ci(docker): refactor multi-arch build to use matrix strategy
- Consolidate separate amd64 and arm64 jobs into a single build job
- Introduce matrix for platform, runner, suffix, and cache-scope
- Generalize tag computation and build steps with matrix variables
* fixup! ci(docker): refactor multi-arch build to use matrix strategy - Consolidate separate amd64 and arm64 jobs into a single build job - Introduce matrix for platform, runner, suffix, and cache-scope - Generalize tag computation and build steps with matrix variables