mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00

* Commit for PR * Commit for PR * Update worlds/mlss/Client.py Co-authored-by: Silvris <58583688+Silvris@users.noreply.github.com> * Update worlds/mlss/__init__.py Co-authored-by: Silvris <58583688+Silvris@users.noreply.github.com> * Update worlds/mlss/__init__.py Co-authored-by: Silvris <58583688+Silvris@users.noreply.github.com> * Update worlds/mlss/docs/setup_en.md Co-authored-by: Silvris <58583688+Silvris@users.noreply.github.com> * Remove deprecated import. Updated settings and romfile syntax * Updated Options to new system. Changed all references from MultiWorld to World * Changed switch statements to if else * Update en_Mario & Luigi Superstar Saga.md * Updated client.py * Update Client.py * Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> * Updated logic, Updated patch implementation, Removed unused imports, Cleaned up Code * Update __init__.py * Changed reference from world to mlssworld * Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> * Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> * Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> * Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> * Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> * Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> * Fix merge conflict + update prep * v1.2 * Leftover print commands * Update basepatch.bsdiff * Update basepatch.bsdiff * v1.3 * Update Rom.py * Change tracker locations to serverside, no longer locations. Various code cleanup and logic changes. * Event removal continuation. * Partial Implementation of APPP (Incomplete)) * v1.4 Implemented APPP * Docs Updated * Update Rom.py * Update setup_en.md * Update Rom.py * Update Rules.py * Fix for APPP being broken on webhost * Update Rom.py * Update Rom.py * Location name fixes + pants color fixes * Update Rules.py * Fix for ultra hammer cutscene * Fixed compat. issues with python ver. 3.8 * Updated hidden block yaml option * pre-v1.5 * Update Client.py * Update basepatch.bsdiff * v1.5 * Update XP multiplier to have a minimum of 0 * Update 'Beanfruit' to 'Bean Fruit' * v1.6 * Update Rom.py * Update basepatch.bsdiff * Initial review refactor * Revert state logic changes. Continuation of refactor. * Fixed failed generations. Finished refactor. * Reworked colors. Removed all .txt files * Actually removed the .txt files this time * Update Rom.py * Update README.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/Client.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/docs/en_Mario & Luigi Superstar Saga.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/Data.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Review refactor. * Update README.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Add coin blocks to LocationName * Refactor. * Update Items.py * Delete mlss.apworld * Small asm bugfix * Update basepatch.bsdiff * Client sends less messages to server * Update basepatch.bsdiff --------- Co-authored-by: Silvris <58583688+Silvris@users.noreply.github.com> Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
300 lines
7.6 KiB
Python
300 lines
7.6 KiB
Python
from Options import Choice, Toggle, StartInventoryPool, PerGameCommonOptions, Range
|
|
from dataclasses import dataclass
|
|
|
|
|
|
class BowsersCastleSkip(Toggle):
|
|
"""
|
|
Skip straight from the entrance hall to Bowletta in Bowser's Castle.
|
|
All Bowser's Castle locations will be removed from the location pool.
|
|
"""
|
|
|
|
display_name = "Bowser's Castle Skip"
|
|
|
|
|
|
class ExtraPipes(Toggle):
|
|
"""
|
|
Gives the player access to pipes 1, 3, 4, and 6 from the start.
|
|
"""
|
|
|
|
display_name = "Start With Extra Pipes"
|
|
|
|
|
|
class SkipMinecart(Toggle):
|
|
"""
|
|
Skip the minecart minigame that leads you through Hoohoo Mountain Base.
|
|
This will remove the 1 location in the minecart cave from the location pool.
|
|
"""
|
|
|
|
display_name = "Skip Minecart Minigame"
|
|
|
|
|
|
class DisableSurf(Toggle):
|
|
"""
|
|
Remove the surf minigame location from the location pool.
|
|
"""
|
|
|
|
display_name = "Disable Surf Minigame"
|
|
|
|
|
|
class MusicOptions(Choice):
|
|
"""
|
|
Choose if you want to randomize or disable music.
|
|
default: Music will be untouched.
|
|
randomize: Music will be randomized.
|
|
disable: All music will be disabled. No music will play throughout the entire game.
|
|
"""
|
|
|
|
display_name = "Music Options"
|
|
option_default = 0
|
|
option_randomize = 1
|
|
option_disable = 2
|
|
default = 0
|
|
|
|
|
|
class RandomSounds(Toggle):
|
|
"""
|
|
Randomizes every sound in the game, minus a select few that can softlock the game.
|
|
"""
|
|
|
|
display_name = "Randomize Sounds"
|
|
|
|
|
|
class MarioColor(Choice):
|
|
"""
|
|
This changes the color of Mario's hat, as well as some key colors that are red including UI etc.
|
|
"""
|
|
|
|
display_name = "Mario's Color"
|
|
option_red = 0
|
|
option_green = 1
|
|
option_blue = 2
|
|
option_cyan = 3
|
|
option_yellow = 4
|
|
option_orange = 5
|
|
option_purple = 6
|
|
option_pink = 7
|
|
option_black = 8
|
|
option_white = 9
|
|
option_silhouette = 10
|
|
option_chaos = 11
|
|
option_true_chaos = 12
|
|
default = 0
|
|
|
|
|
|
class LuigiColor(Choice):
|
|
"""
|
|
This changes the color of Luigi's hat, as well as some key colors that are green including UI etc.
|
|
"""
|
|
|
|
display_name = "Luigi's Color"
|
|
option_red = 0
|
|
option_green = 1
|
|
option_blue = 2
|
|
option_cyan = 3
|
|
option_yellow = 4
|
|
option_orange = 5
|
|
option_purple = 6
|
|
option_pink = 7
|
|
option_black = 8
|
|
option_white = 9
|
|
option_silhouette = 10
|
|
option_chaos = 11
|
|
option_true_chaos = 12
|
|
default = 1
|
|
|
|
|
|
class MarioPants(Choice):
|
|
"""
|
|
This changes the color of Mario's trousers.
|
|
"""
|
|
|
|
display_name = "Mario's Pants Color"
|
|
option_vanilla = 0
|
|
option_red = 1
|
|
option_green = 2
|
|
option_blue = 3
|
|
option_cyan = 4
|
|
option_yellow = 5
|
|
option_orange = 6
|
|
option_purple = 7
|
|
option_pink = 8
|
|
option_black = 9
|
|
option_white = 10
|
|
option_chaos = 11
|
|
default = 0
|
|
|
|
|
|
class LuigiPants(Choice):
|
|
"""
|
|
This changes the color of Luigi's trousers.
|
|
"""
|
|
|
|
display_name = "Luigi's Pants Color"
|
|
option_vanilla = 0
|
|
option_red = 1
|
|
option_green = 2
|
|
option_blue = 3
|
|
option_cyan = 4
|
|
option_yellow = 5
|
|
option_orange = 6
|
|
option_purple = 7
|
|
option_pink = 8
|
|
option_black = 9
|
|
option_white = 10
|
|
option_chaos = 11
|
|
default = 0
|
|
|
|
|
|
class RandomizeEnemies(Choice):
|
|
"""
|
|
Randomize all normal enemy encounters in the game.
|
|
If Bowser's castle skip is enabled, then enemies from Bowser's Castle will not be included.
|
|
Disabled: Enemies will not be randomized.
|
|
Vanilla Groups: Vanilla enemy groups will be shuffled with each other. Custom enemy groups will not be made.
|
|
Custom Groups: Custom enemy groups will be made and shuffled. Some enemy groups will only be semi-random,
|
|
including groups with flying enemies or pestnuts in them.
|
|
"""
|
|
|
|
display_name = "Randomize Enemies"
|
|
option_disabled = 0
|
|
option_vanilla_groups = 1
|
|
option_custom_groups = 2
|
|
default = 0
|
|
|
|
|
|
class RandomizeBosses(Choice):
|
|
"""
|
|
Randomize all boss encounters in the game.
|
|
If Bowser's castle skip is enabled then bosses from Bowser's Castle will not be included.
|
|
Some bosses are not randomized due to flags, and story (such as the final boss).
|
|
Boss Only: Bosses will only be swapped with another boss.
|
|
Boss Normal: Bosses can be swapped with normal enemy encounters.
|
|
"""
|
|
|
|
display_name = "Randomize Bosses"
|
|
option_disabled = 0
|
|
option_boss_only = 1
|
|
option_boss_normal = 2
|
|
default = 0
|
|
|
|
|
|
class ScaleStats(Toggle):
|
|
"""
|
|
This scales enemy HP, POW, DEF, and XP to vanilla values.
|
|
This setting is intended for use with the Enemy Randomizer and is Recommended to turn on.
|
|
If you are not using the Enemy Randomizer the effects will be minimal.
|
|
"""
|
|
|
|
display_name = "Scale Enemy Stats"
|
|
|
|
|
|
class XPMultiplier(Range):
|
|
"""
|
|
This will multiply any XP you receive in battle by the chosen multiplier.
|
|
"""
|
|
|
|
display_name = "XP Multiplier"
|
|
range_start = 0
|
|
range_end = 4
|
|
default = 1
|
|
|
|
|
|
class TattleHp(Toggle):
|
|
"""
|
|
This will display the enemies' current and max health while in battle.
|
|
"""
|
|
|
|
display_name = "Tattle HP"
|
|
|
|
|
|
class RandomizeBackgrounds(Toggle):
|
|
"""
|
|
This randomizes the background image in battles.
|
|
"""
|
|
|
|
display_name = "Randomize Battle Backgrounds"
|
|
|
|
|
|
class HiddenVisible(Choice):
|
|
"""
|
|
This makes any hidden blocks in the game into regular item blocks and vice versa.
|
|
Disabled: Hidden blocks will remain invisible.
|
|
Hidden Visible: Hidden blocks will turn visible to the player.
|
|
Blocks Invisible: All item blocks will turn invisible. Hidden blocks will also remain invisible.
|
|
"""
|
|
|
|
display_name = "Item Block Visibility"
|
|
option_disabled = 0
|
|
option_hidden_visible = 1
|
|
option_blocks_invisible = 2
|
|
default = 0
|
|
|
|
|
|
class Coins(Toggle):
|
|
"""
|
|
Add all coin blocks in the game to the location pool.
|
|
"""
|
|
|
|
display_name = "Coin Blocks"
|
|
|
|
|
|
class HarhallsPants(Toggle):
|
|
"""
|
|
This will remove the Harhall's Pants check from the pool.
|
|
"""
|
|
|
|
display_name = "Remove Harhall's Pants"
|
|
|
|
|
|
class DifficultLogic(Toggle):
|
|
"""
|
|
This adjusts the logic to be more difficult in a few areas,
|
|
allowing for the logic to account for players getting to certain areas in unintended ways.
|
|
Enable at your own risk, this is not an option made for beginners.
|
|
"""
|
|
|
|
display_name = "Difficult Logic"
|
|
|
|
|
|
class ChuckleBeans(Choice):
|
|
"""
|
|
Choose how you want chuckle bean digspots to be randomized.
|
|
An amount of chuckle beans will be removed from the item pool,
|
|
equal to the amount of locations removed by the setting that you choose.
|
|
None: No chuckle bean digspots will be added into the location pool.
|
|
Only Visible: Only chuckle bean digspots clearly marked with an X will be added into the location pool.
|
|
All: All chuckle bean digspots will be added into the location pool.
|
|
"""
|
|
|
|
display_name = "Chuckle Beans"
|
|
option_none = 0
|
|
option_only_visible = 1
|
|
option_all = 2
|
|
default = 2
|
|
|
|
|
|
@dataclass
|
|
class MLSSOptions(PerGameCommonOptions):
|
|
start_inventory_from_pool: StartInventoryPool
|
|
coins: Coins
|
|
difficult_logic: DifficultLogic
|
|
castle_skip: BowsersCastleSkip
|
|
extra_pipes: ExtraPipes
|
|
skip_minecart: SkipMinecart
|
|
disable_surf: DisableSurf
|
|
harhalls_pants: HarhallsPants
|
|
block_visibility: HiddenVisible
|
|
chuckle_beans: ChuckleBeans
|
|
music_options: MusicOptions
|
|
randomize_sounds: RandomSounds
|
|
randomize_enemies: RandomizeEnemies
|
|
randomize_bosses: RandomizeBosses
|
|
randomize_backgrounds: RandomizeBackgrounds
|
|
scale_stats: ScaleStats
|
|
xp_multiplier: XPMultiplier
|
|
tattle_hp: TattleHp
|
|
mario_color: MarioColor
|
|
luigi_color: LuigiColor
|
|
mario_pants: MarioPants
|
|
luigi_pants: LuigiPants
|