forked from ArchipelagoMW/Archipelago
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* My big dumb shortcut: a 2000 item array. * A better idea: bundle orbs as a numerical option and make array variable size. * Have Item/Region generation respect the chosen Orbsanity bundle size. Fix trade logic. * Separate Global/Local Orbsanity options. TODO - re-introduce orb factory for per-level option. * Per-level Orbsanity implemented w/ orb bundle factory. * Implement Orbsanity for client, fix some things up for regions. * Fix location name/id mappings. * Fix client orb collection on connection. * Fix minor Deathlink bug, add Update instructions.
- Loading branch information
1 parent
f875169
commit f7b688d
Showing
28 changed files
with
822 additions
and
196 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,74 @@ | ||
import os | ||
from dataclasses import dataclass | ||
from Options import Toggle, PerGameCommonOptions | ||
from Options import Toggle, PerGameCommonOptions, Choice | ||
|
||
|
||
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. | ||
Adds 11 items to the pool.""" | ||
"""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(Toggle): | ||
# """Enable to include Precursor Orbs as an ordered list of progressive checks. | ||
# Each orb you collect triggers the next release in the list. | ||
# Adds 2000 items to the pool.""" | ||
# display_name = "Enable Orbsanity" | ||
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 | ||
|
||
|
||
@dataclass | ||
class JakAndDaxterOptions(PerGameCommonOptions): | ||
enable_move_randomizer: EnableMoveRandomizer | ||
# enable_orbsanity: EnableOrbsanity | ||
enable_orbsanity: EnableOrbsanity | ||
global_orbsanity_bundle_size: GlobalOrbsanityBundleSize | ||
level_orbsanity_bundle_size: PerLevelOrbsanityBundleSize |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.