Skip to content

Commit ada6861

Browse files
committed
added item info percent, controls the percent of checks to be collected for earned item info mode, few checks cleanup
1 parent 0b04f3b commit ada6861

4 files changed

Lines changed: 16 additions & 5 deletions

File tree

worlds/crystal_project/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -835,6 +835,7 @@ def fill_slot_data(self) -> Dict[str, Any]:
835835
"includeSummonAbilities": self.options.include_summon_abilities.value,
836836
"includeScholarAbilities": self.options.include_scholar_abilities.value,
837837
"itemInfoMode": self.options.item_info_mode.value,
838+
"earnedItemInfoPercent": self.options.earned_item_info_percent.value,
838839
"randomizeMusic": bool(self.options.randomize_music.value),
839840
"useMods": self.options.use_mods.value,
840841
"modInfo": mod_info,

worlds/crystal_project/locations.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1512,8 +1512,8 @@ def get_boss_locations(player: int, options: CrystalProjectOptions | None) -> Li
15121512
LocationData(THE_DEPTHS_AP_REGION, THE_DEPTHS_DISPLAY_NAME + " Boss - The Peacekeeper", 2579 + boss_index_offset, lambda state: logic.is_area_in_level_range(state, PEACEKEEPER_FIGHT_LEVEL), tags=[END_GAME_BOSS_LOCATION_GROUP]), #Monster ID: 169
15131513
LocationData(THE_DEPTHS_AP_REGION, THE_DEPTHS_DISPLAY_NAME + " Boss - With STEM WARD in hand, offer 4 Deity Eyes to battle Gabriel", 2580 + boss_index_offset, lambda state: state.has(DEITY_EYE, player, 4) and state.has(STEM_WARD, player) and logic.is_area_in_level_range(state, GABRIEL_FIGHT_LEVEL), tags=[END_GAME_BOSS_LOCATION_GROUP, FETCH_QUEST_LOCATION_GROUP]), #Monster ID: 241
15141514
LocationData(CASTLE_SEQUOIA_AP_REGION, CASTLE_SEQUOIA_DISPLAY_NAME + " Boss - Parasite X", 1457 + boss_index_offset, lambda state: logic.is_area_in_level_range(state, PARASITE_X_FIGHT_LEVEL)), #Monster ID: 198 (Castle Sequoia (Skums) Z58_TrapdoorGuard)
1515-
LocationData(CASTLE_SEQUOIA_AP_REGION, CASTLE_SEQUOIA_DISPLAY_NAME + " Boss - Neo Warden", 1477 + boss_index_offset, lambda state: logic.is_area_in_level_range(state, NEO_WARDEN_FIGHT_LEVEL)), #Monster ID: 200 (Castle Sequoia (Bounce) Z58_F2TrapdoorGuard)
1516-
LocationData(CASTLE_SEQUOIA_AP_REGION, CASTLE_SEQUOIA_DISPLAY_NAME + " Boss - Akamanto", 1503 + boss_index_offset, lambda state: logic.is_area_in_level_range(state, AKAMANTO_FIGHT_LEVEL)), #Monster ID: 201 (Castle Sequoia (Ice) Z58_F3TrapdoorGuard)
1515+
LocationData(CASTLE_SEQUOIA_SHROOM_AP_REGION, CASTLE_SEQUOIA_DISPLAY_NAME + " Boss - Neo Warden", 1477 + boss_index_offset, lambda state: logic.is_area_in_level_range(state, NEO_WARDEN_FIGHT_LEVEL)), #Monster ID: 200 (Castle Sequoia (Bounce) Z58_F2TrapdoorGuard)
1516+
LocationData(CASTLE_SEQUOIA_ICE_AP_REGION, CASTLE_SEQUOIA_DISPLAY_NAME + " Boss - Akamanto", 1503 + boss_index_offset, lambda state: logic.is_area_in_level_range(state, AKAMANTO_FIGHT_LEVEL)), #Monster ID: 201 (Castle Sequoia (Ice) Z58_F3TrapdoorGuard)
15171517
LocationData(THE_OLD_WORLD_AP_REGION, THE_OLD_WORLD_DISPLAY_NAME + " Boss - Periculum", 3650 + boss_index_offset, tags=[END_GAME_BOSS_LOCATION_GROUP]), #Monster ID: 268 (min level 70)
15181518
]
15191519
return location_table

worlds/crystal_project/options.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ class ItemInfoMode(Choice):
479479
"""
480480
For Full, all treasure and store icons on the map will display if they are progression, useful, or filler items.
481481
482-
For Earned, all treasure and store icons on the map will display as mimics until you complete 50% of your checks.
482+
For Earned, all treasure and store icons on the map will display as mimics until you complete 50% (configurable below) of your checks.
483483
484484
For Obscured, all treasure and store icons on the map will display as mimics permanently.
485485
If you find skipping treasures is distasteful but part of your brain always wants to be efficient, this option is for you!
@@ -491,6 +491,15 @@ class ItemInfoMode(Choice):
491491
option_obscured = 2
492492
default = 0
493493

494+
class EarnedItemInfoPercent(Range):
495+
"""
496+
This is the likelihood that a trap will replace a filler check. A value of 0 means no traps.
497+
"""
498+
display_name = "Percent of checks that must be collected to earn info on treasure and store icons."
499+
range_start = 1
500+
range_end = 99
501+
default = 50
502+
494503
class RandomizeMusic(Toggle):
495504
"""
496505
When enabled, music will be randomized upon connecting to the AP World. (This toggles the base game's Randomize Music function.)
@@ -563,6 +572,7 @@ class CrystalProjectOptions(PerGameCommonOptions):
563572
include_scholar_abilities: IncludeScholarAbilities
564573
trap_likelihood: TrapLikelihood
565574
item_info_mode: ItemInfoMode
575+
earned_item_info_percent: EarnedItemInfoPercent
566576
randomize_music: RandomizeMusic
567577
use_mods: UseMods
568578

@@ -571,5 +581,5 @@ class CrystalProjectOptions(PerGameCommonOptions):
571581
"Location Options": [IncludedRegions, JobRando, StartingJobQuantity, DisableSparks, KillBossesMode, Shopsanity, Regionsanity, RegionsanityStarterRegionMinLevel, RegionsanityStarterRegionMaxLevel, HomePointHustle],
572582
"Progression Options": [ProgressiveMountMode, StartingLevel, LevelGating, LevelComparedToEnemies, ProgressiveLevelSize, MaxLevel, StartingPassivePoints, MaximumPassivePoints, PassivePointBoostSize, KeyMode, ObscureRoutes, HopToIt, PrioritizeCrystals, AutoSpendLP, AutoEquipPassives, EasyLeveling],
573583
"Item Pool Options": [ProgressiveEquipmentMode, StartWithTreasureFinder, StartWithMaps, FillFullMap, IncludeSummonAbilities, IncludeScholarAbilities],
574-
"Bonus Fun": [ItemInfoMode, RandomizeMusic, UseMods]
584+
"Bonus Fun": [ItemInfoMode, EarnedItemInfoPercent, RandomizeMusic, UseMods]
575585
}

worlds/crystal_project/regions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,7 @@ def init_areas(world: "CrystalProjectWorld", locations: List[LocationData], opti
612612
fancy_add_exits(world, ATOP_LABYRINTH_CUBE_AP_REGION, [LABYRINTH_ENTRANCE_PUSHBLOCK_AP_REGION, GOLD_BEDAZZLING_LABYRINTH_AP_REGION, TOWER_OF_ZOT_CAMP_AP_REGION, RUINS_CRUMBLING_ON_SHORE_AP_REGION, SALMON_BAY_WEST_CRAG_AP_REGION])
613613
fancy_add_exits(world, LABYRINTH_ENTRANCE_PUSHBLOCK_AP_REGION, [TOWER_OF_ZOT_CAMP_AP_REGION, ATOP_LABYRINTH_CUBE_AP_REGION, GOLD_BEDAZZLING_LABYRINTH_AP_REGION, ANCIENT_LABYRINTH_AP_REGION],
614614
{ATOP_LABYRINTH_CUBE_AP_REGION: lambda state: logic.has_vertical_movement(state) and logic.has_golden_quintar(state),
615-
GOLD_BEDAZZLING_LABYRINTH_AP_REGION: lambda state: logic.has_glide(state) or (logic.has_horizontal_movement(state) and logic.has_vertical_movement(state)),
615+
GOLD_BEDAZZLING_LABYRINTH_AP_REGION: lambda state: logic.has_glide(state) and logic.has_vertical_movement(state),
616616
ANCIENT_LABYRINTH_AP_REGION: lambda state: (state.has(POKO_POKO_DESERT_PASS, player) or logic.is_regionsanity_disabled()) and (logic.has_a_caster(state)) and (state.has(ANCIENT_TABLET_A, player) or logic.obscure_routes_on()),})
617617
fancy_add_exits(world, GOLD_BEDAZZLING_LABYRINTH_AP_REGION, [RUINS_CRUMBLING_ON_SHORE_AP_REGION])
618618
fancy_add_exits(world, POKO_POKO_LAKE_DELENDE_PASS_AP_REGION, [POKO_POKO_EAST_PLATEAU_AP_REGION, TOWER_OF_ZOT_CAMP_AP_REGION, POKO_POKO_SPAWNING_MEADOWS_PASS_AP_REGION, LAKE_DELENDE_AP_REGION, SALMON_BAY_WEST_CRAG_AP_REGION, SALMON_RIVER_MOUTH_AP_REGION],

0 commit comments

Comments
 (0)