mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
New Game: Faxanadu (#3059)
This commit is contained in:
107
worlds/faxanadu/Options.py
Normal file
107
worlds/faxanadu/Options.py
Normal file
@@ -0,0 +1,107 @@
|
||||
from Options import PerGameCommonOptions, Toggle, DefaultOnToggle, StartInventoryPool, Choice
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
class KeepShopRedPotions(Toggle):
|
||||
"""
|
||||
Prevents the Shop's Red Potions from being shuffled. Those locations
|
||||
will have purchasable Red Potion as usual for their usual price.
|
||||
"""
|
||||
display_name = "Keep Shop Red Potions"
|
||||
|
||||
|
||||
class IncludePendant(Toggle):
|
||||
"""
|
||||
Pendant is an item that boosts your attack power permanently when picked up.
|
||||
However, due to a programming error in the original game, it has the reverse
|
||||
effect. You start with the Pendant power, and lose it when picking
|
||||
it up. So this item is essentially a trap.
|
||||
There is a setting in the client to reverse the effect back to its original intend.
|
||||
This could be used in conjunction with this option to increase or lower difficulty.
|
||||
"""
|
||||
display_name = "Include Pendant"
|
||||
|
||||
|
||||
class IncludePoisons(DefaultOnToggle):
|
||||
"""
|
||||
Whether or not to include Poison Potions in the pool of items. Including them
|
||||
effectively turn them into traps in multiplayer.
|
||||
"""
|
||||
display_name = "Include Poisons"
|
||||
|
||||
|
||||
class RequireDragonSlayer(Toggle):
|
||||
"""
|
||||
Requires the Dragon Slayer to be available before fighting the final boss is required.
|
||||
Turning this on will turn Progressive Shields into progression items.
|
||||
|
||||
This setting does not force you to use Dragon Slayer to kill the final boss.
|
||||
Instead, it ensures that you will have the Dragon Slayer and be able to equip
|
||||
it before you are expected to beat the final boss.
|
||||
"""
|
||||
display_name = "Require Dragon Slayer"
|
||||
|
||||
|
||||
class RandomMusic(Toggle):
|
||||
"""
|
||||
All levels' music is shuffled. Except the title screen because it's finite.
|
||||
This is an aesthetic option and doesn't affect gameplay.
|
||||
"""
|
||||
display_name = "Random Musics"
|
||||
|
||||
|
||||
class RandomSound(Toggle):
|
||||
"""
|
||||
All sounds are shuffled.
|
||||
This is an aesthetic option and doesn't affect gameplay.
|
||||
"""
|
||||
display_name = "Random Sounds"
|
||||
|
||||
|
||||
class RandomNPC(Toggle):
|
||||
"""
|
||||
NPCs and their portraits are shuffled.
|
||||
This is an aesthetic option and doesn't affect gameplay.
|
||||
"""
|
||||
display_name = "Random NPCs"
|
||||
|
||||
|
||||
class RandomMonsters(Choice):
|
||||
"""
|
||||
Choose how monsters are randomized.
|
||||
"Vanilla": No randomization
|
||||
"Level Shuffle": Monsters are shuffled within a level
|
||||
"Level Random": Monsters are picked randomly, balanced based on the ratio of the current level
|
||||
"World Shuffle": Monsters are shuffled across the entire world
|
||||
"World Random": Monsters are picked randomly, balanced based on the ratio of the entire world
|
||||
"Chaotic": Completely random, except big vs small ratio is kept. Big are mini-bosses.
|
||||
"""
|
||||
display_name = "Random Monsters"
|
||||
option_vanilla = 0
|
||||
option_level_shuffle = 1
|
||||
option_level_random = 2
|
||||
option_world_shuffle = 3
|
||||
option_world_random = 4
|
||||
option_chaotic = 5
|
||||
default = 0
|
||||
|
||||
|
||||
class RandomRewards(Toggle):
|
||||
"""
|
||||
Monsters drops are shuffled.
|
||||
"""
|
||||
display_name = "Random Rewards"
|
||||
|
||||
|
||||
@dataclass
|
||||
class FaxanaduOptions(PerGameCommonOptions):
|
||||
start_inventory_from_pool: StartInventoryPool
|
||||
keep_shop_red_potions: KeepShopRedPotions
|
||||
include_pendant: IncludePendant
|
||||
include_poisons: IncludePoisons
|
||||
require_dragon_slayer: RequireDragonSlayer
|
||||
random_musics: RandomMusic
|
||||
random_sounds: RandomSound
|
||||
random_npcs: RandomNPC
|
||||
random_monsters: RandomMonsters
|
||||
random_rewards: RandomRewards
|
Reference in New Issue
Block a user