mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00
Starcraft 2 Wings of Liberty AP Implementation (#528)
This commit is contained in:
48
worlds/sc2wol/Options.py
Normal file
48
worlds/sc2wol/Options.py
Normal 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)
|
Reference in New Issue
Block a user