CCCharles: Bug fix for cyclic connections of Entrances with the ignored rules by the logic (#5442)

* 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>
This commit is contained in:
Yaranorgoth
2025-09-12 23:32:42 +02:00
committed by GitHub
parent 27e50aa81a
commit 76a8b0d582

View File

@@ -232,11 +232,9 @@ def create_regions(world: MultiWorld, options: CCCharlesOptions, player: int) ->
# Connect the Regions by named Entrances that must have access Rules # Connect the Regions by named Entrances that must have access Rules
menu_region.connect(start_camp_region) menu_region.connect(start_camp_region)
menu_region.connect(tony_tiddle_mission_region) menu_region.connect(tony_tiddle_mission_region)
menu_region.connect(barn_region) menu_region.connect(barn_region, "Barn Door")
tony_tiddle_mission_region.connect(barn_region, "Barn Door")
menu_region.connect(candice_mission_region) menu_region.connect(candice_mission_region)
menu_region.connect(tutorial_house_region) menu_region.connect(tutorial_house_region, "Tutorial House Door")
candice_mission_region.connect(tutorial_house_region, "Tutorial House Door")
menu_region.connect(swamp_edges_region) menu_region.connect(swamp_edges_region)
menu_region.connect(swamp_mission_region) menu_region.connect(swamp_mission_region)
menu_region.connect(junkyard_area_region) menu_region.connect(junkyard_area_region)
@@ -244,7 +242,6 @@ def create_regions(world: MultiWorld, options: CCCharlesOptions, player: int) ->
menu_region.connect(junkyard_shed_region) menu_region.connect(junkyard_shed_region)
menu_region.connect(military_base_region) menu_region.connect(military_base_region)
menu_region.connect(south_mine_outside_region) menu_region.connect(south_mine_outside_region)
menu_region.connect(south_mine_inside_region)
south_mine_outside_region.connect(south_mine_inside_region, "South Mine Gate") south_mine_outside_region.connect(south_mine_inside_region, "South Mine Gate")
menu_region.connect(middle_station_region) menu_region.connect(middle_station_region)
menu_region.connect(canyon_region) menu_region.connect(canyon_region)
@@ -258,13 +255,11 @@ def create_regions(world: MultiWorld, options: CCCharlesOptions, player: int) ->
menu_region.connect(lost_stairs_region) menu_region.connect(lost_stairs_region)
menu_region.connect(east_house_region) menu_region.connect(east_house_region)
menu_region.connect(rockets_testing_ground_region) menu_region.connect(rockets_testing_ground_region)
menu_region.connect(rockets_testing_bunker_region)
rockets_testing_ground_region.connect(rockets_testing_bunker_region, "Stuck Bunker Door") rockets_testing_ground_region.connect(rockets_testing_bunker_region, "Stuck Bunker Door")
menu_region.connect(workshop_region) menu_region.connect(workshop_region)
menu_region.connect(east_tower_region) menu_region.connect(east_tower_region)
menu_region.connect(lighthouse_region) menu_region.connect(lighthouse_region)
menu_region.connect(north_mine_outside_region) menu_region.connect(north_mine_outside_region)
menu_region.connect(north_mine_inside_region)
north_mine_outside_region.connect(north_mine_inside_region, "North Mine Gate") north_mine_outside_region.connect(north_mine_inside_region, "North Mine Gate")
menu_region.connect(wood_bridge_region) menu_region.connect(wood_bridge_region)
menu_region.connect(museum_region) menu_region.connect(museum_region)
@@ -278,11 +273,9 @@ def create_regions(world: MultiWorld, options: CCCharlesOptions, player: int) ->
menu_region.connect(north_beach_region) menu_region.connect(north_beach_region)
menu_region.connect(mine_shaft_region) menu_region.connect(mine_shaft_region)
menu_region.connect(mob_camp_region) menu_region.connect(mob_camp_region)
menu_region.connect(mob_camp_locked_room_region)
mob_camp_region.connect(mob_camp_locked_room_region, "Mob Camp Locked Door") mob_camp_region.connect(mob_camp_locked_room_region, "Mob Camp Locked Door")
menu_region.connect(mine_elevator_exit_region) menu_region.connect(mine_elevator_exit_region)
menu_region.connect(mountain_ruin_outside_region) menu_region.connect(mountain_ruin_outside_region)
menu_region.connect(mountain_ruin_inside_region)
mountain_ruin_outside_region.connect(mountain_ruin_inside_region, "Mountain Ruin Gate") mountain_ruin_outside_region.connect(mountain_ruin_inside_region, "Mountain Ruin Gate")
menu_region.connect(prism_temple_region) menu_region.connect(prism_temple_region)
menu_region.connect(pickle_val_region) menu_region.connect(pickle_val_region)