Archipelago/worlds/sc2wol/Options.py

48 lines
1.5 KiB
Python
Raw Normal View History

from typing import Dict
from BaseClasses import MultiWorld
from Options import Choice, Option
class GameDifficulty(Choice):
"""The difficulty of the campaign, affects enemy AI, starting units, and game speed."""
display_name = "Game Difficulty"
option_casual = 0
option_normal = 1
option_hard = 2
option_brutal = 3
class UpgradeBonus(Choice):
"""Determines what lab upgrade to use, whether it is Ultra-Capacitors which boost attack speed with every weapon upgrade
or Vanadium Plating which boosts life with every armor upgrade."""
display_name = "Upgrade Bonus"
option_ultra_capacitors = 0
option_vanadium_plating = 1
class BunkerUpgrade(Choice):
"""Determines what bunker lab upgrade to use, whether it is Shrike Turret which outfits bunkers with an automated turret or
Fortified Bunker which boosts the life of bunkers."""
display_name = "Bunker Upgrade"
option_shrike_turret = 0
option_fortified_bunker = 1
class AllInMap(Choice):
"""Determines what verion of All-In (final map) that will be generated for the campaign."""
display_name = "All In Map"
option_ground = 0
option_air = 1
# noinspection PyTypeChecker
sc2wol_options: Dict[str, Option] = {
"game_difficulty": GameDifficulty,
"upgrade_bonus": UpgradeBonus,
"bunker_upgrade": BunkerUpgrade,
"all_in_map": AllInMap,
}
def get_option_value(world: MultiWorld, player: int, name: str) -> int:
option = getattr(world, name, None)
if option == None:
return 0
return int(option[player].value)