Archipelago/worlds/meritous/Options.py

63 lines
1.6 KiB
Python

# Copyright (c) 2022 FelicitusNeko
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
from dataclasses import dataclass
import typing
from Options import Option, DeathLink, Toggle, DefaultOnToggle, Choice, PerGameCommonOptions
cost_scales = {
0: [80, 5, 4],
1: [60, 5, 3],
2: [50, 4, 3]
}
class Goal(Choice):
"""Which goal must be achieved to trigger completion."""
display_name = "Goal"
option_return_the_cursed_seal = 0
option_any_ending = 1
option_true_ending = 2
alias_normal_ending = 1
alias_agate_knife = 2
default = 0
class IncludePSIKeys(DefaultOnToggle):
"""Whether PSI Keys should be included in the multiworld pool. If not, they will be in their vanilla locations."""
display_name = "Include PSI Keys"
class IncludeEvolutionTraps(Toggle):
"""
Whether evolution traps should be included in the multiworld pool.
If not, they will be activated by bosses, as in vanilla.
"""
display_name = "Include Evolution Traps"
class ItemCacheCost(Choice):
"""
Determines how the cost for Alpha, Beta, and Gamma caches will scale.
Vanilla has a total cost of about 1B crystals on Normal difficulty;
Reduced has about 750M; and Heavily Reduced has about 600M.
"""
display_name = "Item cache cost scaling"
option_vanilla = 0
option_reduced = 1
option_heavily_reduced = 2
default = 0
@dataclass
class MeritousOptions(PerGameCommonOptions):
goal: Goal
include_psi_keys: IncludePSIKeys
include_evolution_traps: IncludeEvolutionTraps
item_cache_cost: ItemCacheCost
death_link: DeathLink