mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-04-10 10:48:17 -07:00
* Set up connector level thresholds, completion goal choices. * Send AP sender/recipient info to game via client. * Slight refactors. * Refactor option checking, add DataStorage handling of traded orbs. * Update instructions to change order of load/connect. * Add Option check to ensure enough Locations exist for Cell Count thresholds. Fix Final Door region. * Need some height move to get LPC sunken chamber cell.
116 lines
3.8 KiB
Python
116 lines
3.8 KiB
Python
from dataclasses import dataclass
|
|
from Options import Toggle, PerGameCommonOptions, Choice, Range
|
|
|
|
|
|
class EnableMoveRandomizer(Toggle):
|
|
"""Enable to include movement options as items in the randomizer. Jak is only able to run, swim, and single jump,
|
|
until you find his other moves. This adds 11 items to the pool."""
|
|
display_name = "Enable Move Randomizer"
|
|
|
|
|
|
class EnableOrbsanity(Choice):
|
|
"""Enable to include bundles of Precursor Orbs as an ordered list of progressive checks. Every time you collect
|
|
the chosen number of orbs, you will trigger the next release in the list. "Per Level" means these lists are
|
|
generated and populated for each level in the game (Geyser Rock, Sandover Village, etc.). "Global" means there is
|
|
only one list for the entire game.
|
|
|
|
This adds a number of Items and Locations to the pool inversely proportional to the size of the bundle.
|
|
For example, if your bundle size is 20 orbs, you will add 100 items to the pool. If your bundle size is 250 orbs,
|
|
you will add 8 items to the pool."""
|
|
display_name = "Enable Orbsanity"
|
|
option_off = 0
|
|
option_per_level = 1
|
|
option_global = 2
|
|
default = 0
|
|
|
|
|
|
class GlobalOrbsanityBundleSize(Choice):
|
|
"""Set the size of the bundle for Global Orbsanity.
|
|
This only applies if "Enable Orbsanity" is set to "Global."
|
|
There are 2000 orbs in the game, so your bundle size must be a factor of 2000."""
|
|
display_name = "Global Orbsanity Bundle Size"
|
|
option_1_orb = 1
|
|
option_2_orbs = 2
|
|
option_4_orbs = 4
|
|
option_5_orbs = 5
|
|
option_8_orbs = 8
|
|
option_10_orbs = 10
|
|
option_16_orbs = 16
|
|
option_20_orbs = 20
|
|
option_25_orbs = 25
|
|
option_40_orbs = 40
|
|
option_50_orbs = 50
|
|
option_80_orbs = 80
|
|
option_100_orbs = 100
|
|
option_125_orbs = 125
|
|
option_200_orbs = 200
|
|
option_250_orbs = 250
|
|
option_400_orbs = 400
|
|
option_500_orbs = 500
|
|
option_1000_orbs = 1000
|
|
option_2000_orbs = 2000
|
|
default = 1
|
|
|
|
|
|
class PerLevelOrbsanityBundleSize(Choice):
|
|
"""Set the size of the bundle for Per Level Orbsanity.
|
|
This only applies if "Enable Orbsanity" is set to "Per Level."
|
|
There are 50, 150, or 200 orbs per level, so your bundle size must be a factor of 50."""
|
|
display_name = "Per Level Orbsanity Bundle Size"
|
|
option_1_orb = 1
|
|
option_2_orbs = 2
|
|
option_5_orbs = 5
|
|
option_10_orbs = 10
|
|
option_25_orbs = 25
|
|
option_50_orbs = 50
|
|
default = 1
|
|
|
|
|
|
class FireCanyonCellCount(Range):
|
|
"""Set the number of orbs you need to cross Fire Canyon."""
|
|
display_name = "Fire Canyon Cell Count"
|
|
range_start = 0
|
|
range_end = 100
|
|
default = 20
|
|
|
|
|
|
class MountainPassCellCount(Range):
|
|
"""Set the number of orbs you need to reach Klaww and cross Mountain Pass."""
|
|
display_name = "Mountain Pass Cell Count"
|
|
range_start = 0
|
|
range_end = 100
|
|
default = 45
|
|
|
|
|
|
class LavaTubeCellCount(Range):
|
|
"""Set the number of orbs you need to cross Lava Tube."""
|
|
display_name = "Lava Tube Cell Count"
|
|
range_start = 0
|
|
range_end = 100
|
|
default = 72
|
|
|
|
|
|
class CompletionCondition(Choice):
|
|
"""Set the goal for completing the game."""
|
|
display_name = "Completion Condition"
|
|
option_cross_fire_canyon = 69
|
|
option_cross_mountain_pass = 87
|
|
option_cross_lava_tube = 89
|
|
option_defeat_dark_eco_plant = 6
|
|
option_defeat_klaww = 86
|
|
option_defeat_gol_and_maia = 112
|
|
option_open_100_cell_door = 116
|
|
default = 112
|
|
|
|
|
|
@dataclass
|
|
class JakAndDaxterOptions(PerGameCommonOptions):
|
|
enable_move_randomizer: EnableMoveRandomizer
|
|
enable_orbsanity: EnableOrbsanity
|
|
global_orbsanity_bundle_size: GlobalOrbsanityBundleSize
|
|
level_orbsanity_bundle_size: PerLevelOrbsanityBundleSize
|
|
fire_canyon_cell_count: FireCanyonCellCount
|
|
mountain_pass_cell_count: MountainPassCellCount
|
|
lava_tube_cell_count: LavaTubeCellCount
|
|
completion_condition: CompletionCondition
|