mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
SA2B: v2.1 Content Update (#1563)
Changelog: Features: - New goal - Grand Prix - Complete all of the Kart Races to win! - New optional Location Checks - Omosanity (Activating Omochao) - Kart Race Mode - Ring Loss option - `Classic` - lose all rings on hit - `Modern` - lose 20 rings on hit - `OHKO` - instantly die on hit, regardless of ring count (shields still protect you) - New Trap - Pong Trap Quality of Life: - SA2B is now distributed as an `.apworld` - Maximum possible number of Emblems in item pool is increased from 180 to 250 - An indicator now shows on the Stage Select screen when `Cannon's Core` is available - Certain traps (`Exposition` and `Pong`) are now possible to receive on `Route 101` and `Route 280` - Certain traps (`Confusion`, `Chaos Control`, `Exposition` and `Pong`) are now possible to receive on `FinalHazard` Bug Fixes: - Actually swap Intermediate and Expert Chao Races correctly - Don't always grant double score for killing Gold Beetles anymore - Ensure upgrades are applied properly, even when received while dying - Fix the Message Queue getting disordered when receiving many messages in quick succession - Fix Logic errors - `City Escape - 3` (Hard Logic) now requires no upgrades - `Mission Street - Pipe 2` (Hard Logic) now requires no upgrades - `Crazy Gadget - Pipe 3` (Hard Logic) now requires no upgrades - `Egg Quarters - 3` (Hard Logic) now requires only `Rouge - Mystic Melody` - `Mad Space - 5` (Hard Logic) now requires no upgrades Co-authored-by: RaspberrySpaceJam <tyler.summers@gmail.com>
This commit is contained in:
@@ -9,11 +9,13 @@ class Goal(Choice):
|
||||
Biolizard: Finish Cannon's Core and defeat the Biolizard and Finalhazard
|
||||
Chaos Emerald Hunt: Find the Seven Chaos Emeralds and reach Green Hill Zone
|
||||
Finalhazard Chaos Emerald Hunt: Find the Seven Chaos Emeralds and reach Green Hill Zone, then defeat Finalhazard
|
||||
Grand Prix: Win every race in Kart Race Mode (all standard levels are disabled)
|
||||
"""
|
||||
display_name = "Goal"
|
||||
option_biolizard = 0
|
||||
option_chaos_emerald_hunt = 1
|
||||
option_finalhazard_chaos_emerald_hunt = 2
|
||||
option_grand_prix = 3
|
||||
default = 0
|
||||
|
||||
|
||||
@@ -84,6 +86,24 @@ class DarknessTrapWeight(BaseTrapWeight):
|
||||
display_name = "Darkness Trap Weight"
|
||||
|
||||
|
||||
class PongTrapWeight(BaseTrapWeight):
|
||||
"""
|
||||
Likelihood of receiving a trap which forces you to play a Pong minigame
|
||||
"""
|
||||
display_name = "Pong Trap Weight"
|
||||
|
||||
|
||||
class MinigameTrapDifficulty(Choice):
|
||||
"""
|
||||
How difficult any Minigame-style traps are
|
||||
"""
|
||||
display_name = "Minigame Trap Difficulty"
|
||||
option_easy = 0
|
||||
option_medium = 1
|
||||
option_hard = 2
|
||||
default = 1
|
||||
|
||||
|
||||
class JunkFillPercentage(Range):
|
||||
"""
|
||||
Replace a percentage of non-required emblems in the item pool with random junk items
|
||||
@@ -150,6 +170,27 @@ class Beetlesanity(Toggle):
|
||||
display_name = "Beetlesanity"
|
||||
|
||||
|
||||
class Omosanity(Toggle):
|
||||
"""
|
||||
Determines whether activating Omochao grants checks
|
||||
"""
|
||||
display_name = "Omosanity"
|
||||
|
||||
|
||||
class KartRaceChecks(Choice):
|
||||
"""
|
||||
Determines whether Kart Race Mode grants checks
|
||||
None: No Kart Races grant checks
|
||||
Mini: Each Kart Race difficulty must be beaten only once
|
||||
Full: Every Character must separately beat each Kart Race difficulty
|
||||
"""
|
||||
display_name = "Kart Race Checks"
|
||||
option_none = 0
|
||||
option_mini = 1
|
||||
option_full = 2
|
||||
default = 0
|
||||
|
||||
|
||||
class EmblemPercentageForCannonsCore(Range):
|
||||
"""
|
||||
Allows logic to gate the final mission behind a number of Emblems
|
||||
@@ -440,6 +481,27 @@ class CannonsCoreMission5(DefaultOnToggle):
|
||||
display_name = "Cannon's Core Mission 5"
|
||||
|
||||
|
||||
class RingLoss(Choice):
|
||||
"""
|
||||
How taking damage is handled
|
||||
Classic: You lose all of your rings when hit
|
||||
Modern: You lose 20 rings when hit
|
||||
OHKO: You die immediately when hit (NOTE: Some Hard Logic tricks require damage boosts!)
|
||||
"""
|
||||
display_name = "SADX Music"
|
||||
option_classic = 0
|
||||
option_modern = 1
|
||||
option_ohko = 2
|
||||
default = 0
|
||||
|
||||
@classmethod
|
||||
def get_option_name(cls, value) -> str:
|
||||
if cls.auto_display_name and value == 2:
|
||||
return cls.name_lookup[value].upper()
|
||||
else:
|
||||
return cls.name_lookup[value]
|
||||
|
||||
|
||||
class SADXMusic(Choice):
|
||||
"""
|
||||
Whether the randomizer will include Sonic Adventure DX Music in the music pool
|
||||
@@ -515,6 +577,8 @@ sa2b_options: typing.Dict[str, type(Option)] = {
|
||||
"keysanity": Keysanity,
|
||||
"whistlesanity": Whistlesanity,
|
||||
"beetlesanity": Beetlesanity,
|
||||
"omosanity": Omosanity,
|
||||
"kart_race_checks": KartRaceChecks,
|
||||
"required_rank": RequiredRank,
|
||||
"emblem_percentage_for_cannons_core": EmblemPercentageForCannonsCore,
|
||||
"required_cannons_core_missions": RequiredCannonsCoreMissions,
|
||||
@@ -533,6 +597,9 @@ sa2b_options: typing.Dict[str, type(Option)] = {
|
||||
"gravity_trap_weight": GravityTrapWeight,
|
||||
"exposition_trap_weight": ExpositionTrapWeight,
|
||||
#"darkness_trap_weight": DarknessTrapWeight,
|
||||
"pong_trap_weight": PongTrapWeight,
|
||||
"minigame_trap_difficulty": MinigameTrapDifficulty,
|
||||
"ring_loss": RingLoss,
|
||||
"sadx_music": SADXMusic,
|
||||
"music_shuffle": MusicShuffle,
|
||||
"narrator": Narrator,
|
||||
|
Reference in New Issue
Block a user