114 lines
4.2 KiB
Python
114 lines
4.2 KiB
Python
from Options import Choice, DeathLink, DefaultOnToggle, Range, StartInventoryPool, PerGameCommonOptions
|
|
from dataclasses import dataclass
|
|
|
|
|
|
class PathOption(Choice):
|
|
"""Choose where you would like Hidden Chest and Pedestal checks to be placed.
|
|
Main Path includes the main 7 biomes you typically go through to get to the final boss.
|
|
Side Path includes the Lukki Lair and Fungal Caverns. 9 biomes total.
|
|
Main World includes the full world (excluding parallel worlds). 14 biomes total.
|
|
Note: The Collapsed Mines have been combined into the Mines as the biome is tiny."""
|
|
display_name = "Path Option"
|
|
option_main_path = 1
|
|
option_side_path = 2
|
|
option_main_world = 3
|
|
default = 1
|
|
|
|
|
|
class HiddenChests(Range):
|
|
"""Number of hidden chest checks added to the applicable biomes."""
|
|
display_name = "Hidden Chests per Biome"
|
|
range_start = 0
|
|
range_end = 20
|
|
default = 3
|
|
|
|
|
|
class PedestalChecks(Range):
|
|
"""Number of checks that will spawn on pedestals in the applicable biomes."""
|
|
display_name = "Pedestal Checks per Biome"
|
|
range_start = 0
|
|
range_end = 20
|
|
default = 6
|
|
|
|
|
|
class Traps(DefaultOnToggle):
|
|
"""Whether negative effects on the Noita world are added to the item pool."""
|
|
display_name = "Traps"
|
|
|
|
|
|
class OrbsAsChecks(Choice):
|
|
"""Decides whether finding the orbs that naturally spawn in the world count as checks.
|
|
The Main Path option includes only the Floating Island and Abyss Orb Room orbs.
|
|
The Side Path option includes the Main Path, Magical Temple, Lukki Lair, and Lava Lake orbs.
|
|
The Main World option includes all 11 orbs."""
|
|
display_name = "Orbs as Location Checks"
|
|
option_no_orbs = 0
|
|
option_main_path = 1
|
|
option_side_path = 2
|
|
option_main_world = 3
|
|
default = 0
|
|
|
|
|
|
class BossesAsChecks(Choice):
|
|
"""Makes bosses count as location checks. The boss only needs to die, you do not need the kill credit.
|
|
The Main Path option includes Gate Guardian, Suomuhauki, and Kolmisilmä.
|
|
The Side Path option includes the Main Path bosses, Sauvojen Tuntija, and Ylialkemisti.
|
|
The All Bosses option includes all 12 bosses."""
|
|
display_name = "Bosses as Location Checks"
|
|
option_no_bosses = 0
|
|
option_main_path = 1
|
|
option_side_path = 2
|
|
option_all_bosses = 3
|
|
default = 0
|
|
|
|
|
|
# Note: the Sampo is an item that is picked up to trigger the boss fight at the normal ending location.
|
|
# The sampo is required for every ending (having orbs and bringing the sampo to a different spot changes the ending).
|
|
class VictoryCondition(Choice):
|
|
"""Greed is to get to the bottom, beat the boss, and win the game.
|
|
Pure is to get 11 orbs, grab the sampo, and bring it to the mountain altar.
|
|
Peaceful is to get all 33 orbs, grab the sampo, and bring it to the mountain altar.
|
|
Orbs will be added to the randomizer pool based on which victory condition you chose.
|
|
The base game orbs will not count towards these victory conditions."""
|
|
display_name = "Victory Condition"
|
|
option_greed_ending = 0
|
|
option_pure_ending = 1
|
|
option_peaceful_ending = 2
|
|
default = 0
|
|
|
|
|
|
class ExtraOrbs(Range):
|
|
"""Add extra orbs to your item pool, to prevent you from needing to wait as long for the last orb you need for your victory condition.
|
|
Extra orbs received past your victory condition's amount will be received as hearts instead.
|
|
Can be turned on for the Greed Ending goal, but will only really make it harder."""
|
|
display_name = "Extra Orbs"
|
|
range_start = 0
|
|
range_end = 10
|
|
default = 0
|
|
|
|
|
|
class ShopPrice(Choice):
|
|
"""Reduce the costs of Archipelago items in shops.
|
|
By default, the price of Archipelago items matches the price of wands at that shop."""
|
|
display_name = "Shop Price Reduction"
|
|
option_full_price = 100
|
|
option_25_percent_off = 75
|
|
option_50_percent_off = 50
|
|
option_75_percent_off = 25
|
|
default = 100
|
|
|
|
|
|
@dataclass
|
|
class NoitaOptions(PerGameCommonOptions):
|
|
start_inventory_from_pool: StartInventoryPool
|
|
death_link: DeathLink
|
|
bad_effects: Traps
|
|
victory_condition: VictoryCondition
|
|
path_option: PathOption
|
|
hidden_chests: HiddenChests
|
|
pedestal_checks: PedestalChecks
|
|
orbs_as_checks: OrbsAsChecks
|
|
bosses_as_checks: BossesAsChecks
|
|
extra_orbs: ExtraOrbs
|
|
shop_price: ShopPrice
|