39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
import typing
|
|
from dataclasses import dataclass
|
|
from Options import Choice, Option, Range, PerGameCommonOptions
|
|
|
|
|
|
class IncomeBoost(Range):
|
|
"""How much extra income the player gets per turn per boost received."""
|
|
display_name = "Income Boost"
|
|
range_start = 0
|
|
range_end = 100
|
|
default = 25
|
|
|
|
|
|
class CommanderDefenseBoost(Range):
|
|
"""How much extra defense the player's commander gets per boost received."""
|
|
display_name = "Commander Defense Boost"
|
|
range_start = 0
|
|
range_end = 8
|
|
default = 2
|
|
|
|
|
|
class CommanderChoice(Choice):
|
|
"""How the player's commander is selected for missions.
|
|
Locked Random: The player's commander is randomly predetermined for each level.
|
|
Unlockable Factions: The player starts with Mercival and can unlock playable factions.
|
|
Random Starting Faction: The player starts with a random starting faction and can unlock the rest.
|
|
When playing with unlockable factions, faction items are added to the pool.
|
|
Extra faction items after the first also reward starting Groove charge."""
|
|
display_name = "Commander Choice"
|
|
option_locked_random = 0
|
|
option_unlockable_factions = 1
|
|
option_random_starting_faction = 2
|
|
|
|
@dataclass
|
|
class WargrooveOptions(PerGameCommonOptions):
|
|
income_boost: IncomeBoost
|
|
commander_defense_boost: CommanderDefenseBoost
|
|
commander_choice: CommanderChoice
|