* - 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
* Add cccharles world to AP
> The logic has been tested, the game can be completed
> The logic is simple and it does not take into account options
! The documentations are a work in progress
* Update documentations
> Redacted French and English Setup Guides
> Redacted French and English Game Pages
* Handling PR#5287 remarks
> Revert unexpected changes on .run\Archipelago Unittests.run.xml (base Archipelago file)
> Fixed typo "querty" -> "qwerty" in fr and eng Game Pages
> Adding "Game page in other languages" section to eng Game Page documentation
> Improved Steam path in fr and eng Setup Guides
* Handled PR remarks + fixes
> Added get_filler_item_name() to remove warnings
> Fixed irrelevant links for documentations
> Used the Player Options page instead of the default YAML on GitHub
> Reworded all locations to make them simple and clear
> Split some locations that can be linked with an entrance rule
> Reworked all options
> Updated regions according to locations
> Replaced unnecessary rules by rules on entrances
* Empty Options.py
Only the base options are handled yet, "work in progress" features removed.
* Handled PR remark
> Fixed specific UT name
* Handled PR remarks
> UT updated by replacing depreciated features
* Add start_inventory_from_pool as option
This start_inventory_from_pool option is like regular start inventory but it takes items from the pool and replaces them with fillers
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Handled PR remarks
> Mainly fixed editorial and minor issues without impact on UT results (still passed)
* Update the guides according to releases
> Updated the depreciated guides because the may to release the Mod has been changed
> Removed the fixed issues from 'Known Issues'
> Add the "Mod Download" section to simplify the others sections.
* Handled PR remark
> base_id reduced to ensure it fits to signed int (32 bits) in case of future AP improvements
* Handled PR remarks
> Set topology_present to False because unnecessary
> Added an exception in case of unknown item instead of using filler classification
> Fixed an issue that caused the "Bug Spray" to be considered as filler
> Reworked the test_claire_breakers() test to ensure the lighthouse mission can only be finished if at least 4 breakers are collected
* Added Choo-Choo Charles to README.md
* CCCharles: Added rules to win
> The victory could be accessed from sphere 1, this is now fixed by adding the following items as requirements:
- Temple Key
- Green Egg
- Blue Egg
- Red Egg
* CCCharles: Fixed cyclic Entrances connections
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* adding in boss rando type options for Timespinner
* removing new options from the backwards compatible section
* adding in boss rando type options for Timespinner
* removing new options from the backwards compatible section
* re-adding accidentally deleted line
* better documenting the different boss rando types
* adding missing options to the interpret_slot_data function
* making boss override schema more strict and allow for weights
* now actually rolling using the weights for boss rando overrides
* adding boss rando overrides to the spoiler header
* simplifying the schema for the manual boss mappings
* adds a custom KeyError for raising on world.create_item() if the passed in name is invalid
* Update __init__.py
---------
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Add cccharles world to AP
> The logic has been tested, the game can be completed
> The logic is simple and it does not take into account options
! The documentations are a work in progress
* Update documentations
> Redacted French and English Setup Guides
> Redacted French and English Game Pages
* Handling PR#5287 remarks
> Revert unexpected changes on .run\Archipelago Unittests.run.xml (base Archipelago file)
> Fixed typo "querty" -> "qwerty" in fr and eng Game Pages
> Adding "Game page in other languages" section to eng Game Page documentation
> Improved Steam path in fr and eng Setup Guides
* Handled PR remarks + fixes
> Added get_filler_item_name() to remove warnings
> Fixed irrelevant links for documentations
> Used the Player Options page instead of the default YAML on GitHub
> Reworded all locations to make them simple and clear
> Split some locations that can be linked with an entrance rule
> Reworked all options
> Updated regions according to locations
> Replaced unnecessary rules by rules on entrances
* Empty Options.py
Only the base options are handled yet, "work in progress" features removed.
* Handled PR remark
> Fixed specific UT name
* Handled PR remarks
> UT updated by replacing depreciated features
* Add start_inventory_from_pool as option
This start_inventory_from_pool option is like regular start inventory but it takes items from the pool and replaces them with fillers
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Handled PR remarks
> Mainly fixed editorial and minor issues without impact on UT results (still passed)
* Update the guides according to releases
> Updated the depreciated guides because the may to release the Mod has been changed
> Removed the fixed issues from 'Known Issues'
> Add the "Mod Download" section to simplify the others sections.
* Handled PR remark
> base_id reduced to ensure it fits to signed int (32 bits) in case of future AP improvements
* Handled PR remarks
> Set topology_present to False because unnecessary
> Added an exception in case of unknown item instead of using filler classification
> Fixed an issue that caused the "Bug Spray" to be considered as filler
> Reworked the test_claire_breakers() test to ensure the lighthouse mission can only be finished if at least 4 breakers are collected
* Added Choo-Choo Charles to README.md
* CCCharles: Added rules to win
> The victory could be accessed from sphere 1, this is now fixed by adding the following items as requirements:
- Temple Key
- Green Egg
- Blue Egg
- Red Egg
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Restrict Allow Orphan for items to missions that already require that
* Add test for build mission orphan behavior
* Update item lists for Allow Orphan flag
* Update the unit test to clear that BotB is not in the mission list
* Update unit test name
* 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
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
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>
Co-authored-by: qwint <qwint.42@gmail.com>
* APWorld Skeleton
* Hair Color Rando and first items
* All interactable items
* Checkpoint Items and Locations
* First pass sample intermediate data
* Bulk of Region/location code
* JSON Data Parser
* New items and Level Item mapping
* Data Parsing fixes and most of 1a data
* 1a complete data and region/location/item creation fixes
* Add Key Location type and ID output
* Add options to slot data
* 1B Level Data
* Added Location logging
* Add Goal Area Options
* 1c Level Data
* Old Site A B C level data
* Key/Binosanity and Hair Length options
* Key Item/Location and Clutter Event handling
* Remove generic 'keys' item
* 3a level data
* 3b and 3c level data
* Chapter 4 level data
* Chapter 5 Logic Data
* Chapter 5 level data
* Trap Support
* Add TrapLink Support
* Chapter 6 A/B/C Level Data
* Add active_levels to slot_data
* Item and Location Name Groups + style cleanups
* Chapter 7 Level Data and Items, Gemsanity option
* Goal Area and victory handling
* Fix slot_data
* Add Core Level Data
* Carsanity
* Farewell Level Data and ID Range Update
* Farewell level data and handling
* Music Shuffle
* Require Cassettes
* Change default trap expiration action to Deaths
* Handle Poetry
* Mod versioning
* Rename folder, general cleanup
* Additional Cleanup
* Handle Farewell Golden Goal when Include Goldens is off
* Better handling of Farewell Golden
* Update Docs
* Beta test bug fixes
* Bump to v1.0.0
* Update Changelog
* Several Logic tweaks
* Update APWorld Version
* Add Celeste (Open World) to README
* Peer review changes
* Logic Fixes:
* Adjust Mirror Temple B Key logic
* Increment APWorld version
* Fix several logic bugs
* Add missing link
* Add Item Name Groups for common alternative item names
* Account for Madeline's post-Celeste hair-dying activities
* Account for ignored member variable and hardcoded color in Celeste codebase
* Add Blue Clouds to the logic of reaching Farewell - intro-02-launch
* Type checking workaround
* Bump version number
* Adjust Setup Guide
* Minor typing fixes
* Logic and PR fixes
* Increment APWorld Version
* Use more world helpers
* Core review
* CODEOWNERS
* Minor logic fix and insert APWorld version into spoiler
* Fix merge error