# 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