Starcraft 2 Wings of Liberty AP Implementation (#528)

This commit is contained in:
TheCondor07
2022-05-18 17:27:38 -04:00
committed by GitHub
parent 90d506ee7c
commit 551cf8442f
14 changed files with 1384 additions and 1 deletions

48
worlds/sc2wol/Options.py Normal file
View File

@@ -0,0 +1,48 @@
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)