Archipelago/worlds/shorthike/Options.py

90 lines
3.2 KiB
Python

from dataclasses import dataclass
from Options import Choice, PerGameCommonOptions, Range, StartInventoryPool, Toggle
class Goal(Choice):
"""Choose the end goal.
Nap: Complete the climb to the top of Hawk Peak and take a nap
Photo: Get your picture taken at the top of Hawk Peak
Races: Complete all three races with Avery
Help Everyone: Travel around Hawk Peak and help every character with their troubles
Fishmonger: Catch one of every fish from around Hawk Peak"""
display_name = "Goal"
option_nap = 0
option_photo = 1
option_races = 2
option_help_everyone = 3
option_fishmonger = 4
default = 3
class CoinsInShops(Toggle):
"""When enabled, the randomizer can place coins into locations that are purchased, such as shops."""
display_name = "Coins in Purchaseable Locations"
default = False
class GoldenFeathers(Range):
"""Number of Golden Feathers in the item pool.
(Note that for the Photo and Help Everyone goals, a minimum of 12 Golden Feathers is enforced)"""
display_name = "Golden Feathers"
range_start = 0
range_end = 20
default = 20
class SilverFeathers(Range):
"""Number of Silver Feathers in the item pool."""
display_name = "Silver Feathers"
range_start = 0
range_end = 20
default = 2
class Buckets(Range):
"""Number of Buckets in the item pool."""
display_name = "Buckets"
range_start = 0
range_end = 2
default = 2
class GoldenFeatherProgression(Choice):
"""Determines which locations are considered in logic based on the required amount of golden feathers to reach them.
Easy: Locations will be considered inaccessible until the player has enough golden feathers to easily reach them. A minimum of 10 golden feathers is recommended for this setting.
Normal: Locations will be considered inaccessible until the player has the minimum possible number of golden feathers to reach them. A minimum of 7 golden feathers is recommended for this setting.
Hard: Removes the requirement of golden feathers for progression entirely and glitches may need to be used to progress"""
display_name = "Golden Feather Progression"
option_easy = 0
option_normal = 1
option_hard = 2
default = 1
class CostMultiplier(Range):
"""The percentage that all item shop costs will be of the vanilla values."""
display_name = "Shop Cost Multiplier"
range_start = 25
range_end = 200
default = 100
class FillerCoinAmount(Choice):
"""The number of coins that will be in each filler coin item."""
display_name = "Coins per Filler Item"
option_7_coins = 0
option_13_coins = 1
option_15_coins = 2
option_18_coins = 3
option_21_coins = 4
option_25_coins = 5
option_27_coins = 6
option_32_coins = 7
option_33_coins = 8
option_50_coins = 9
default = 1
@dataclass
class ShortHikeOptions(PerGameCommonOptions):
start_inventory_from_pool: StartInventoryPool
goal: Goal
coins_in_shops: CoinsInShops
golden_feathers: GoldenFeathers
silver_feathers: SilverFeathers
buckets: Buckets
golden_feather_progression: GoldenFeatherProgression
cost_multiplier: CostMultiplier
filler_coin_amount: FillerCoinAmount