SC2: Add option presets (#5436)
* SC2: Add option presets * SC2: Address reviews * SC2: Fix import * SC2: Update key mode * SC2: Update renamed option * sc2: PR comment; switching from __dataclass_fields__ to dataclasses.fields() * sc2: Changing quote style to match AP standard * sc2: PR comments; Switching to Starcraft2.type_hints --------- Co-authored-by: Snarky <sparkykueken@gmail.com> Co-authored-by: MatthewMarinets <matthew.marinets@gmail.com>
This commit is contained in:
@@ -35,6 +35,7 @@ from .mission_tables import SC2Campaign, SC2Mission, SC2Race, MissionFlag
|
||||
from .regions import create_mission_order
|
||||
from .mission_order import SC2MissionOrder
|
||||
from worlds.LauncherComponents import components, Component, launch as launch_component
|
||||
from .mission_order.presets import sc2_options_presets
|
||||
|
||||
logger = logging.getLogger("Starcraft 2")
|
||||
VICTORY_MODULO = 100
|
||||
@@ -75,6 +76,7 @@ class Starcraft2WebWorld(WebWorld):
|
||||
|
||||
tutorials = [setup_en, setup_fr, custom_mission_orders_en]
|
||||
game_info_languages = ["en", "fr"]
|
||||
options_presets = sc2_options_presets
|
||||
option_groups = option_groups
|
||||
|
||||
|
||||
|
||||
446
worlds/sc2/mission_order/presets.py
Normal file
446
worlds/sc2/mission_order/presets.py
Normal file
@@ -0,0 +1,446 @@
|
||||
from typing import Any, Dict
|
||||
|
||||
import Options as ap_options
|
||||
from .. import options
|
||||
from Options import Accessibility, ProgressionBalancing
|
||||
from .. import item_names
|
||||
from ..mission_tables import SC2Race, SC2Campaign
|
||||
|
||||
from ..options import (
|
||||
# avoid import *
|
||||
GameDifficulty, DifficultyDamageModifier, GameSpeed, DisableForcedCamera, SkipCutscenes, AllInMap, MissionOrder,
|
||||
MaximumCampaignSize, TwoStartPositions, KeyMode, PlayerColorTerranRaynor, PlayerColorProtoss, PlayerColorZerg,
|
||||
PlayerColorZergPrimal, PlayerColorNova, SelectedRaces, EnabledCampaigns, EnableRaceSwapVariants, EnableMissionRaceBalancing,
|
||||
ShuffleCampaigns, ShuffleNoBuild, StarterUnit, RequiredTactics, EnableVoidTrade, VoidTradeAgeLimit, VoidTradeWorkers,
|
||||
EnsureGenericItems, MinNumberOfUpgrades, MaxNumberOfUpgrades, MercenaryHighlanders, MaxUpgradeLevel, GenericUpgradeMissions,
|
||||
GenericUpgradeResearch, GenericUpgradeResearchSpeedup, GenericUpgradeItems, KerriganPresence, KerriganLevelsPerMissionCompleted,
|
||||
KerriganLevelsPerMissionCompletedCap, KerriganLevelItemSum, KerriganLevelItemDistribution, KerriganTotalLevelCap, StartPrimaryAbilities,
|
||||
KerriganPrimalStatus, KerriganMaxActiveAbilities, KerriganMaxPassiveAbilities, EnableMorphling, WarCouncilNerfs, SpearOfAdunPresence,
|
||||
SpearOfAdunPresentInNoBuild, SpearOfAdunPassiveAbilityPresence, SpearOfAdunPassivesPresentInNoBuild, SpearOfAdunMaxActiveAbilities,
|
||||
SpearOfAdunMaxAutocastAbilities, GrantStoryTech, GrantStoryLevels, NovaMaxWeapons, NovaMaxGadgets, NovaGhostOfAChanceVariant,
|
||||
TakeOverAIAllies, LockedItems, ExcludedItems, UnexcludedItems, ExcludedMissions, DifficultyCurve, ExcludeVeryHardMissions, VanillaItemsOnly,
|
||||
ExcludeOverpoweredItems, VictoryCache, VanillaLocations, ExtraLocations, ChallengeLocations, MasteryLocations, BasebustLocations,
|
||||
SpeedrunLocations, PreventativeLocations, FillerPercentage, MineralsPerItem, VespenePerItem, StartingSupplyPerItem, MaximumSupplyPerItem,
|
||||
MaximumSupplyReductionPerItem, LowestMaximumSupply, ResearchCostReductionPerItem, FillerItemsDistribution, MissionOrderScouting,
|
||||
CustomMissionOrder, OPTION_NAME
|
||||
)
|
||||
|
||||
template_settings = {
|
||||
# Free to play, 25 WoL missions, Terran only Golden Path. Matches the template.yaml.
|
||||
OPTION_NAME[Accessibility]: Accessibility.option_full,
|
||||
OPTION_NAME[ProgressionBalancing]: ProgressionBalancing.default,
|
||||
OPTION_NAME[GameDifficulty]: GameDifficulty.option_normal,
|
||||
OPTION_NAME[SelectedRaces]: {SC2Race.TERRAN.get_title()},
|
||||
OPTION_NAME[MissionOrder]: MissionOrder.option_golden_path,
|
||||
OPTION_NAME[RequiredTactics]: RequiredTactics.option_standard,
|
||||
OPTION_NAME[EnabledCampaigns]: {SC2Campaign.WOL.campaign_name},
|
||||
OPTION_NAME[EnableRaceSwapVariants]: EnableRaceSwapVariants.option_disabled,
|
||||
OPTION_NAME[KeyMode]: KeyMode.option_disabled,
|
||||
OPTION_NAME[MaximumCampaignSize]: 25,
|
||||
OPTION_NAME[StarterUnit]: StarterUnit.option_balanced,
|
||||
OPTION_NAME[NovaGhostOfAChanceVariant]: NovaGhostOfAChanceVariant.option_wol,
|
||||
OPTION_NAME[TakeOverAIAllies]: TakeOverAIAllies.option_false,
|
||||
OPTION_NAME[DifficultyCurve]: DifficultyCurve.option_standard,
|
||||
OPTION_NAME[MasteryLocations]: MasteryLocations.option_disabled,
|
||||
OPTION_NAME[MissionOrderScouting]: MissionOrderScouting.option_completed,
|
||||
OPTION_NAME[MineralsPerItem]: 10,
|
||||
OPTION_NAME[VespenePerItem]: 10,
|
||||
OPTION_NAME[StartingSupplyPerItem]: 2,
|
||||
OPTION_NAME[MaximumSupplyPerItem]: 1,
|
||||
OPTION_NAME[ResearchCostReductionPerItem]: 2,
|
||||
}
|
||||
|
||||
|
||||
|
||||
f2p_big_settings = {
|
||||
# Free to play, all race 7x7 Grid
|
||||
OPTION_NAME[Accessibility]: Accessibility.option_full,
|
||||
OPTION_NAME[ProgressionBalancing]: ProgressionBalancing.default,
|
||||
OPTION_NAME[GameDifficulty]: GameDifficulty.option_normal,
|
||||
OPTION_NAME[SelectedRaces]: SelectedRaces.valid_keys,
|
||||
OPTION_NAME[MissionOrder]: MissionOrder.option_grid,
|
||||
OPTION_NAME[RequiredTactics]: RequiredTactics.option_standard,
|
||||
OPTION_NAME[EnabledCampaigns]: {
|
||||
SC2Campaign.WOL.campaign_name,
|
||||
SC2Campaign.PROPHECY.campaign_name,
|
||||
SC2Campaign.PROLOGUE.campaign_name
|
||||
},
|
||||
OPTION_NAME[EnableRaceSwapVariants]: EnableRaceSwapVariants.option_shuffle_all,
|
||||
OPTION_NAME[EnableMissionRaceBalancing]: EnableMissionRaceBalancing.option_semi_balanced,
|
||||
OPTION_NAME[KeyMode]: KeyMode.option_disabled,
|
||||
OPTION_NAME[MaximumCampaignSize]: 48,
|
||||
OPTION_NAME[TwoStartPositions]: TwoStartPositions.option_true,
|
||||
OPTION_NAME[StarterUnit]: StarterUnit.option_balanced,
|
||||
OPTION_NAME[EnableMorphling]: EnableMorphling.option_true,
|
||||
OPTION_NAME[TakeOverAIAllies]: TakeOverAIAllies.option_false,
|
||||
OPTION_NAME[DifficultyCurve]: DifficultyCurve.option_standard,
|
||||
OPTION_NAME[VanillaLocations]: VanillaLocations.option_enabled,
|
||||
OPTION_NAME[ExtraLocations]: ExtraLocations.option_enabled,
|
||||
OPTION_NAME[ChallengeLocations]: ChallengeLocations.option_enabled,
|
||||
OPTION_NAME[MasteryLocations]: MasteryLocations.option_disabled,
|
||||
OPTION_NAME[KerriganPrimalStatus]: KerriganPrimalStatus.option_item,
|
||||
OPTION_NAME[WarCouncilNerfs]: WarCouncilNerfs.option_false,
|
||||
OPTION_NAME[SpearOfAdunPresence]: SpearOfAdunPresence.option_everywhere,
|
||||
OPTION_NAME[SpearOfAdunPresentInNoBuild]: SpearOfAdunPresentInNoBuild.option_false,
|
||||
OPTION_NAME[SpearOfAdunPassiveAbilityPresence]: SpearOfAdunPassiveAbilityPresence.option_everywhere,
|
||||
OPTION_NAME[SpearOfAdunPassivesPresentInNoBuild]: SpearOfAdunPassivesPresentInNoBuild.option_false,
|
||||
OPTION_NAME[MissionOrderScouting]: MissionOrderScouting.option_completed,
|
||||
OPTION_NAME[MineralsPerItem]: 5,
|
||||
OPTION_NAME[VespenePerItem]: 5,
|
||||
OPTION_NAME[StartingSupplyPerItem]: 2,
|
||||
OPTION_NAME[MaximumSupplyPerItem]: 1,
|
||||
OPTION_NAME[ResearchCostReductionPerItem]: 2,
|
||||
}
|
||||
|
||||
zerg_rush_settings = {
|
||||
# Zerg only, Blitz, short (5 required, 15 total). Sync-friendly
|
||||
OPTION_NAME[Accessibility]: Accessibility.option_full,
|
||||
OPTION_NAME[ProgressionBalancing]: ProgressionBalancing.default,
|
||||
OPTION_NAME[GameDifficulty]: GameDifficulty.option_hard,
|
||||
OPTION_NAME[SelectedRaces]: {SC2Race.ZERG.get_title()},
|
||||
OPTION_NAME[MissionOrder]: MissionOrder.option_blitz,
|
||||
OPTION_NAME[RequiredTactics]: RequiredTactics.option_advanced,
|
||||
OPTION_NAME[EnabledCampaigns]: EnabledCampaigns.valid_keys,
|
||||
OPTION_NAME[EnableRaceSwapVariants]: EnableRaceSwapVariants.option_shuffle_all,
|
||||
OPTION_NAME[KeyMode]: KeyMode.option_disabled,
|
||||
OPTION_NAME[MaximumCampaignSize]: 15,
|
||||
OPTION_NAME[StarterUnit]: StarterUnit.option_balanced,
|
||||
OPTION_NAME[EnableMorphling]: EnableMorphling.option_true,
|
||||
OPTION_NAME[TakeOverAIAllies]: TakeOverAIAllies.option_false,
|
||||
OPTION_NAME[DifficultyCurve]: DifficultyCurve.option_standard,
|
||||
OPTION_NAME[VictoryCache]: 3,
|
||||
OPTION_NAME[GenericUpgradeItems]: GenericUpgradeItems.option_bundle_all,
|
||||
OPTION_NAME[VanillaLocations]: VanillaLocations.option_enabled,
|
||||
OPTION_NAME[ExtraLocations]: ExtraLocations.option_enabled,
|
||||
OPTION_NAME[ChallengeLocations]: ChallengeLocations.option_enabled,
|
||||
OPTION_NAME[MasteryLocations]: MasteryLocations.option_disabled,
|
||||
OPTION_NAME[ExcludeVeryHardMissions]: ExcludeVeryHardMissions.option_true,
|
||||
OPTION_NAME[KerriganPrimalStatus]: KerriganPrimalStatus.option_item,
|
||||
OPTION_NAME[MissionOrderScouting]: MissionOrderScouting.option_all,
|
||||
OPTION_NAME[GrantStoryTech]: GrantStoryTech.option_grant,
|
||||
OPTION_NAME[GrantStoryLevels]: GrantStoryLevels.option_minimum,
|
||||
OPTION_NAME[MineralsPerItem]: 25,
|
||||
OPTION_NAME[VespenePerItem]: 25,
|
||||
OPTION_NAME[StartingSupplyPerItem]: 5,
|
||||
OPTION_NAME[MaximumSupplyPerItem]: 2,
|
||||
OPTION_NAME[ResearchCostReductionPerItem]: 5,
|
||||
}
|
||||
|
||||
classic_grid_settings = {
|
||||
# Short-ish 5x5 Grid (8 required, 24 total), all races. Sync-friendly
|
||||
OPTION_NAME[Accessibility]: Accessibility.option_full,
|
||||
OPTION_NAME[ProgressionBalancing]: ProgressionBalancing.default,
|
||||
OPTION_NAME[GameDifficulty]: GameDifficulty.option_hard,
|
||||
OPTION_NAME[SelectedRaces]: SelectedRaces.valid_keys,
|
||||
OPTION_NAME[MissionOrder]: MissionOrder.option_grid,
|
||||
OPTION_NAME[RequiredTactics]: RequiredTactics.option_standard,
|
||||
OPTION_NAME[EnabledCampaigns]: EnabledCampaigns.valid_keys,
|
||||
OPTION_NAME[EnableRaceSwapVariants]: EnableRaceSwapVariants.option_shuffle_all,
|
||||
OPTION_NAME[EnableMissionRaceBalancing]: EnableMissionRaceBalancing.option_fully_balanced,
|
||||
OPTION_NAME[KeyMode]: KeyMode.option_disabled,
|
||||
OPTION_NAME[MaximumCampaignSize]: 24,
|
||||
OPTION_NAME[TwoStartPositions]: TwoStartPositions.option_true,
|
||||
OPTION_NAME[StarterUnit]: StarterUnit.option_balanced,
|
||||
OPTION_NAME[EnableMorphling]: EnableMorphling.option_true,
|
||||
OPTION_NAME[TakeOverAIAllies]: TakeOverAIAllies.option_false,
|
||||
OPTION_NAME[DifficultyCurve]: DifficultyCurve.option_standard,
|
||||
OPTION_NAME[VictoryCache]: 5,
|
||||
OPTION_NAME[GenericUpgradeItems]: GenericUpgradeItems.option_bundle_all,
|
||||
OPTION_NAME[VanillaLocations]: VanillaLocations.option_enabled,
|
||||
OPTION_NAME[ExtraLocations]: ExtraLocations.option_enabled,
|
||||
OPTION_NAME[ChallengeLocations]: ChallengeLocations.option_enabled,
|
||||
OPTION_NAME[MasteryLocations]: MasteryLocations.option_disabled,
|
||||
OPTION_NAME[ExcludeVeryHardMissions]: ExcludeVeryHardMissions.option_true,
|
||||
OPTION_NAME[KerriganPrimalStatus]: KerriganPrimalStatus.option_item,
|
||||
OPTION_NAME[WarCouncilNerfs]: WarCouncilNerfs.option_false,
|
||||
OPTION_NAME[SpearOfAdunPresence]: SpearOfAdunPresence.option_any_race_lotv,
|
||||
OPTION_NAME[SpearOfAdunPresentInNoBuild]: SpearOfAdunPresentInNoBuild.option_false,
|
||||
OPTION_NAME[SpearOfAdunPassiveAbilityPresence]: SpearOfAdunPassiveAbilityPresence.option_any_race_lotv,
|
||||
OPTION_NAME[SpearOfAdunPassivesPresentInNoBuild]: SpearOfAdunPassivesPresentInNoBuild.option_false,
|
||||
OPTION_NAME[MissionOrderScouting]: MissionOrderScouting.option_all,
|
||||
OPTION_NAME[GrantStoryTech]: GrantStoryTech.option_grant,
|
||||
OPTION_NAME[GrantStoryLevels]: GrantStoryLevels.option_minimum,
|
||||
OPTION_NAME[MineralsPerItem]: 25,
|
||||
OPTION_NAME[VespenePerItem]: 25,
|
||||
OPTION_NAME[StartingSupplyPerItem]: 5,
|
||||
OPTION_NAME[MaximumSupplyPerItem]: 2,
|
||||
OPTION_NAME[ResearchCostReductionPerItem]: 5,
|
||||
}
|
||||
|
||||
raceswap_blitz_settings = {
|
||||
# medium-sized Blitz (10 required, 50 total), all races, forced raceswaps
|
||||
OPTION_NAME[Accessibility]: Accessibility.option_full,
|
||||
OPTION_NAME[ProgressionBalancing]: ProgressionBalancing.default,
|
||||
OPTION_NAME[GameDifficulty]: GameDifficulty.option_hard,
|
||||
OPTION_NAME[SelectedRaces]: SelectedRaces.valid_keys,
|
||||
OPTION_NAME[MissionOrder]: MissionOrder.option_blitz,
|
||||
OPTION_NAME[RequiredTactics]: RequiredTactics.option_advanced,
|
||||
OPTION_NAME[EnabledCampaigns]: EnabledCampaigns.valid_keys,
|
||||
OPTION_NAME[EnableRaceSwapVariants]: EnableRaceSwapVariants.option_pick_one_non_vanilla,
|
||||
OPTION_NAME[EnableMissionRaceBalancing]: EnableMissionRaceBalancing.option_semi_balanced,
|
||||
OPTION_NAME[KeyMode]: KeyMode.option_disabled,
|
||||
OPTION_NAME[MaximumCampaignSize]: 50,
|
||||
OPTION_NAME[StarterUnit]: StarterUnit.option_off,
|
||||
OPTION_NAME[EnableMorphling]: EnableMorphling.option_true,
|
||||
OPTION_NAME[TakeOverAIAllies]: TakeOverAIAllies.option_false,
|
||||
OPTION_NAME[DifficultyCurve]: DifficultyCurve.option_standard,
|
||||
OPTION_NAME[VanillaLocations]: VanillaLocations.option_enabled,
|
||||
OPTION_NAME[ExtraLocations]: ExtraLocations.option_enabled,
|
||||
OPTION_NAME[ChallengeLocations]: ChallengeLocations.option_enabled,
|
||||
OPTION_NAME[MasteryLocations]: MasteryLocations.option_disabled,
|
||||
OPTION_NAME[KerriganPrimalStatus]: KerriganPrimalStatus.option_item,
|
||||
OPTION_NAME[WarCouncilNerfs]: WarCouncilNerfs.option_true,
|
||||
OPTION_NAME[SpearOfAdunPresence]: SpearOfAdunPresence.option_protoss,
|
||||
OPTION_NAME[SpearOfAdunPresentInNoBuild]: SpearOfAdunPresentInNoBuild.option_false,
|
||||
OPTION_NAME[SpearOfAdunPassiveAbilityPresence]: SpearOfAdunPassiveAbilityPresence.option_protoss,
|
||||
OPTION_NAME[SpearOfAdunPassivesPresentInNoBuild]: SpearOfAdunPassivesPresentInNoBuild.option_false,
|
||||
OPTION_NAME[ExcludeOverpoweredItems]: ExcludeOverpoweredItems.option_true,
|
||||
OPTION_NAME[MissionOrderScouting]: MissionOrderScouting.option_completed,
|
||||
OPTION_NAME[MineralsPerItem]: 10,
|
||||
OPTION_NAME[VespenePerItem]: 10,
|
||||
OPTION_NAME[StartingSupplyPerItem]: 2,
|
||||
OPTION_NAME[MaximumSupplyPerItem]: 1,
|
||||
OPTION_NAME[ResearchCostReductionPerItem]: 2,
|
||||
}
|
||||
|
||||
bread_and_butter_settings = {
|
||||
# 50 mission Golden Path, all races, limits on Upgrades per Unit/Kerrigan/Nova/SoA
|
||||
OPTION_NAME[Accessibility]: Accessibility.option_full,
|
||||
OPTION_NAME[ProgressionBalancing]: ProgressionBalancing.default,
|
||||
OPTION_NAME[GameDifficulty]: GameDifficulty.option_normal,
|
||||
OPTION_NAME[SelectedRaces]: SelectedRaces.valid_keys,
|
||||
OPTION_NAME[MissionOrder]: MissionOrder.option_blitz,
|
||||
OPTION_NAME[RequiredTactics]: RequiredTactics.option_standard,
|
||||
OPTION_NAME[EnabledCampaigns]: EnabledCampaigns.valid_keys,
|
||||
OPTION_NAME[EnableRaceSwapVariants]: EnableRaceSwapVariants.option_pick_one,
|
||||
OPTION_NAME[EnableMissionRaceBalancing]: EnableMissionRaceBalancing.option_semi_balanced,
|
||||
OPTION_NAME[KeyMode]: KeyMode.option_progressive_questlines,
|
||||
OPTION_NAME[MaximumCampaignSize]: 50,
|
||||
OPTION_NAME[StarterUnit]: StarterUnit.option_off,
|
||||
OPTION_NAME[EnableMorphling]: EnableMorphling.option_true,
|
||||
OPTION_NAME[TakeOverAIAllies]: TakeOverAIAllies.option_false,
|
||||
OPTION_NAME[DifficultyCurve]: DifficultyCurve.option_standard,
|
||||
OPTION_NAME[VanillaLocations]: VanillaLocations.option_enabled,
|
||||
OPTION_NAME[ExtraLocations]: ExtraLocations.option_enabled,
|
||||
OPTION_NAME[ChallengeLocations]: ChallengeLocations.option_enabled,
|
||||
OPTION_NAME[MasteryLocations]: MasteryLocations.option_disabled,
|
||||
OPTION_NAME[WarCouncilNerfs]: WarCouncilNerfs.option_true,
|
||||
OPTION_NAME[NovaGhostOfAChanceVariant]: NovaGhostOfAChanceVariant.option_nco,
|
||||
OPTION_NAME[GenericUpgradeItems]: GenericUpgradeItems.option_individual_items,
|
||||
OPTION_NAME[MinNumberOfUpgrades]: 1,
|
||||
OPTION_NAME[MaxNumberOfUpgrades]: 4,
|
||||
OPTION_NAME[NovaMaxWeapons]: 2,
|
||||
OPTION_NAME[NovaMaxGadgets]: 2,
|
||||
OPTION_NAME[KerriganPrimalStatus]: KerriganPrimalStatus.option_item,
|
||||
OPTION_NAME[KerriganMaxActiveAbilities]: 4,
|
||||
OPTION_NAME[KerriganMaxPassiveAbilities]: 2,
|
||||
OPTION_NAME[SpearOfAdunPresence]: SpearOfAdunPresence.option_protoss,
|
||||
OPTION_NAME[SpearOfAdunPresentInNoBuild]: SpearOfAdunPresentInNoBuild.option_false,
|
||||
OPTION_NAME[SpearOfAdunPassiveAbilityPresence]: SpearOfAdunPassiveAbilityPresence.option_protoss,
|
||||
OPTION_NAME[SpearOfAdunPassivesPresentInNoBuild]: SpearOfAdunPassivesPresentInNoBuild.option_false,
|
||||
OPTION_NAME[SpearOfAdunMaxActiveAbilities]: 3,
|
||||
OPTION_NAME[SpearOfAdunMaxAutocastAbilities]: 1,
|
||||
OPTION_NAME[MissionOrderScouting]: MissionOrderScouting.option_completed,
|
||||
OPTION_NAME[ExcludeOverpoweredItems]: ExcludeOverpoweredItems.option_true,
|
||||
OPTION_NAME[GrantStoryTech]: GrantStoryTech.option_allow_substitutes,
|
||||
OPTION_NAME[MineralsPerItem]: 10,
|
||||
OPTION_NAME[VespenePerItem]: 10,
|
||||
OPTION_NAME[StartingSupplyPerItem]: 2,
|
||||
OPTION_NAME[MaximumSupplyPerItem]: 1,
|
||||
OPTION_NAME[ResearchCostReductionPerItem]: 2,
|
||||
OPTION_NAME[FillerPercentage]: 30,
|
||||
OPTION_NAME[FillerItemsDistribution]: {
|
||||
item_names.STARTING_MINERALS: 10,
|
||||
item_names.STARTING_VESPENE: 10,
|
||||
item_names.STARTING_SUPPLY: 10,
|
||||
item_names.MAX_SUPPLY: 10,
|
||||
item_names.SHIELD_REGENERATION: 5,
|
||||
item_names.BUILDING_CONSTRUCTION_SPEED: 10,
|
||||
item_names.KERRIGAN_LEVELS_1: 0,
|
||||
item_names.UPGRADE_RESEARCH_SPEED: 10,
|
||||
item_names.UPGRADE_RESEARCH_COST: 10,
|
||||
item_names.REDUCED_MAX_SUPPLY: 0,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
all_protoss_settings = {
|
||||
# Vanilla campaign, but full Protoss. 62 missions, huge for one race, reduced locations, low values for fillers
|
||||
OPTION_NAME[Accessibility]: Accessibility.option_full,
|
||||
OPTION_NAME[ProgressionBalancing]: ProgressionBalancing.default,
|
||||
OPTION_NAME[GameDifficulty]: GameDifficulty.option_normal,
|
||||
OPTION_NAME[SelectedRaces]: {SC2Race.PROTOSS.get_title()},
|
||||
OPTION_NAME[MissionOrder]: MissionOrder.option_vanilla_shuffled,
|
||||
OPTION_NAME[RequiredTactics]: RequiredTactics.option_standard,
|
||||
OPTION_NAME[EnabledCampaigns]: {
|
||||
SC2Campaign.WOL.campaign_name,
|
||||
SC2Campaign.PROPHECY.campaign_name,
|
||||
SC2Campaign.HOTS.campaign_name,
|
||||
SC2Campaign.PROLOGUE.campaign_name,
|
||||
SC2Campaign.LOTV.campaign_name,
|
||||
# SC2Campaign.EPILOGUE.campaign_name, enable once Epilogue gets race-swaps
|
||||
# SC2Campaign.NCO.campaign_name, enable once NCO gets race-swaps
|
||||
},
|
||||
OPTION_NAME[EnableRaceSwapVariants]: EnableRaceSwapVariants.option_shuffle_all,
|
||||
OPTION_NAME[KeyMode]: KeyMode.option_progressive_questlines,
|
||||
OPTION_NAME[MaximumCampaignSize]: 61,
|
||||
OPTION_NAME[StarterUnit]: StarterUnit.option_off,
|
||||
OPTION_NAME[GrantStoryTech]: GrantStoryTech.option_grant,
|
||||
OPTION_NAME[GrantStoryLevels]: GrantStoryLevels.option_minimum,
|
||||
OPTION_NAME[TakeOverAIAllies]: TakeOverAIAllies.option_false,
|
||||
OPTION_NAME[DifficultyCurve]: DifficultyCurve.option_standard,
|
||||
OPTION_NAME[VanillaLocations]: VanillaLocations.option_enabled,
|
||||
OPTION_NAME[ExtraLocations]: ExtraLocations.option_enabled,
|
||||
OPTION_NAME[ChallengeLocations]: ChallengeLocations.option_disabled,
|
||||
OPTION_NAME[MasteryLocations]: MasteryLocations.option_disabled,
|
||||
OPTION_NAME[WarCouncilNerfs]: WarCouncilNerfs.option_true,
|
||||
OPTION_NAME[GenericUpgradeItems]: GenericUpgradeItems.option_individual_items,
|
||||
OPTION_NAME[MinNumberOfUpgrades]: 2,
|
||||
OPTION_NAME[MaxNumberOfUpgrades]: 4,
|
||||
OPTION_NAME[SpearOfAdunPresence]: SpearOfAdunPresence.option_protoss,
|
||||
OPTION_NAME[SpearOfAdunPresentInNoBuild]: SpearOfAdunPresentInNoBuild.option_false,
|
||||
OPTION_NAME[SpearOfAdunPassiveAbilityPresence]: SpearOfAdunPassiveAbilityPresence.option_protoss,
|
||||
OPTION_NAME[SpearOfAdunPassivesPresentInNoBuild]: SpearOfAdunPassivesPresentInNoBuild.option_false,
|
||||
OPTION_NAME[SpearOfAdunMaxActiveAbilities]: 3,
|
||||
OPTION_NAME[SpearOfAdunMaxAutocastAbilities]: 1,
|
||||
OPTION_NAME[MissionOrderScouting]: MissionOrderScouting.option_completed,
|
||||
OPTION_NAME[MineralsPerItem]: 5,
|
||||
OPTION_NAME[VespenePerItem]: 5,
|
||||
OPTION_NAME[StartingSupplyPerItem]: 1,
|
||||
OPTION_NAME[MaximumSupplyPerItem]: 1,
|
||||
OPTION_NAME[ResearchCostReductionPerItem]: 1,
|
||||
OPTION_NAME[FillerPercentage]: 30,
|
||||
OPTION_NAME[FillerItemsDistribution]: {
|
||||
item_names.STARTING_MINERALS: 1,
|
||||
item_names.STARTING_VESPENE: 1,
|
||||
item_names.STARTING_SUPPLY: 1,
|
||||
item_names.MAX_SUPPLY: 1,
|
||||
item_names.SHIELD_REGENERATION: 1,
|
||||
item_names.BUILDING_CONSTRUCTION_SPEED: 1,
|
||||
item_names.KERRIGAN_LEVELS_1: 0,
|
||||
item_names.UPGRADE_RESEARCH_SPEED: 1,
|
||||
item_names.UPGRADE_RESEARCH_COST: 1,
|
||||
item_names.REDUCED_MAX_SUPPLY: 0,
|
||||
}
|
||||
}
|
||||
|
||||
evil_logic_settings = {
|
||||
# 6x6 grid on any_unit. High difficulty, disabled Kerrigan, harsh limits, trap items. any_unit has a chance to be unbeatable
|
||||
OPTION_NAME[Accessibility]: Accessibility.option_full,
|
||||
OPTION_NAME[ProgressionBalancing]: ProgressionBalancing.default,
|
||||
OPTION_NAME[GameDifficulty]: GameDifficulty.option_brutal,
|
||||
OPTION_NAME[SelectedRaces]: SelectedRaces.valid_keys,
|
||||
OPTION_NAME[MissionOrder]: MissionOrder.option_grid,
|
||||
OPTION_NAME[RequiredTactics]: RequiredTactics.option_standard,
|
||||
OPTION_NAME[EnabledCampaigns]: EnabledCampaigns.valid_keys,
|
||||
OPTION_NAME[EnableRaceSwapVariants]: EnableRaceSwapVariants.option_pick_one,
|
||||
OPTION_NAME[EnableMissionRaceBalancing]: EnableMissionRaceBalancing.option_semi_balanced,
|
||||
OPTION_NAME[KeyMode]: KeyMode.option_progressive_questlines,
|
||||
OPTION_NAME[MaximumCampaignSize]: 35,
|
||||
OPTION_NAME[StarterUnit]: StarterUnit.option_off,
|
||||
OPTION_NAME[EnableMorphling]: EnableMorphling.option_true,
|
||||
OPTION_NAME[TakeOverAIAllies]: TakeOverAIAllies.option_false,
|
||||
OPTION_NAME[DifficultyCurve]: DifficultyCurve.option_standard,
|
||||
OPTION_NAME[VanillaLocations]: VanillaLocations.option_enabled,
|
||||
OPTION_NAME[ExtraLocations]: ExtraLocations.option_enabled,
|
||||
OPTION_NAME[ChallengeLocations]: ChallengeLocations.option_enabled,
|
||||
OPTION_NAME[MasteryLocations]: MasteryLocations.option_enabled,
|
||||
OPTION_NAME[WarCouncilNerfs]: WarCouncilNerfs.option_true,
|
||||
OPTION_NAME[NovaGhostOfAChanceVariant]: NovaGhostOfAChanceVariant.option_nco,
|
||||
OPTION_NAME[GenericUpgradeItems]: GenericUpgradeItems.option_individual_items,
|
||||
OPTION_NAME[MinNumberOfUpgrades]: 1,
|
||||
OPTION_NAME[MaxNumberOfUpgrades]: 2,
|
||||
OPTION_NAME[NovaMaxWeapons]: 1,
|
||||
OPTION_NAME[NovaMaxGadgets]: 1,
|
||||
OPTION_NAME[KerriganPresence]: KerriganPresence.option_not_present,
|
||||
OPTION_NAME[SpearOfAdunPresence]: SpearOfAdunPresence.option_any_race_lotv,
|
||||
OPTION_NAME[SpearOfAdunPresentInNoBuild]: SpearOfAdunPresentInNoBuild.option_false,
|
||||
OPTION_NAME[SpearOfAdunPassiveAbilityPresence]: SpearOfAdunPassiveAbilityPresence.option_any_race_lotv,
|
||||
OPTION_NAME[SpearOfAdunPassivesPresentInNoBuild]: SpearOfAdunPassivesPresentInNoBuild.option_false,
|
||||
OPTION_NAME[SpearOfAdunMaxActiveAbilities]: 2,
|
||||
OPTION_NAME[SpearOfAdunMaxAutocastAbilities]: 1,
|
||||
OPTION_NAME[MissionOrderScouting]: MissionOrderScouting.option_completed,
|
||||
OPTION_NAME[ExcludeOverpoweredItems]: ExcludeOverpoweredItems.option_true,
|
||||
OPTION_NAME[GrantStoryTech]: GrantStoryTech.option_allow_substitutes,
|
||||
OPTION_NAME[MineralsPerItem]: 10,
|
||||
OPTION_NAME[VespenePerItem]: 10,
|
||||
OPTION_NAME[StartingSupplyPerItem]: 2,
|
||||
OPTION_NAME[MaximumSupplyPerItem]: 1,
|
||||
OPTION_NAME[ResearchCostReductionPerItem]: 2,
|
||||
OPTION_NAME[MaximumSupplyReductionPerItem]: 10,
|
||||
OPTION_NAME[FillerPercentage]: 20,
|
||||
OPTION_NAME[FillerItemsDistribution]: {
|
||||
item_names.STARTING_MINERALS: 10,
|
||||
item_names.STARTING_VESPENE: 10,
|
||||
item_names.STARTING_SUPPLY: 10,
|
||||
item_names.MAX_SUPPLY: 0,
|
||||
item_names.SHIELD_REGENERATION: 5,
|
||||
item_names.BUILDING_CONSTRUCTION_SPEED: 10,
|
||||
item_names.KERRIGAN_LEVELS_1: 0,
|
||||
item_names.UPGRADE_RESEARCH_SPEED: 10,
|
||||
item_names.UPGRADE_RESEARCH_COST: 10,
|
||||
item_names.REDUCED_MAX_SUPPLY: 2,
|
||||
}
|
||||
}
|
||||
|
||||
full_campaign_settings = {
|
||||
# mandatory full campaign, not recommended, but will be expected. 195 mission grid, all races. Reduced locations and filler values
|
||||
OPTION_NAME[Accessibility]: Accessibility.option_full,
|
||||
OPTION_NAME[ProgressionBalancing]: ProgressionBalancing.default,
|
||||
OPTION_NAME[GameDifficulty]: GameDifficulty.option_normal,
|
||||
OPTION_NAME[SelectedRaces]: SelectedRaces.valid_keys,
|
||||
OPTION_NAME[MissionOrder]: MissionOrder.option_grid,
|
||||
OPTION_NAME[RequiredTactics]: RequiredTactics.option_standard,
|
||||
OPTION_NAME[EnabledCampaigns]: EnabledCampaigns.valid_keys,
|
||||
OPTION_NAME[EnableRaceSwapVariants]: EnableRaceSwapVariants.option_shuffle_all,
|
||||
OPTION_NAME[KeyMode]: KeyMode.option_progressive_missions,
|
||||
OPTION_NAME[MaximumCampaignSize]: MaximumCampaignSize.range_end,
|
||||
OPTION_NAME[TwoStartPositions]: TwoStartPositions.option_true,
|
||||
OPTION_NAME[StarterUnit]: StarterUnit.option_off,
|
||||
OPTION_NAME[EnableMorphling]: EnableMorphling.option_true,
|
||||
OPTION_NAME[NovaGhostOfAChanceVariant]: NovaGhostOfAChanceVariant.option_nco,
|
||||
OPTION_NAME[GrantStoryTech]: GrantStoryTech.option_allow_substitutes,
|
||||
OPTION_NAME[TakeOverAIAllies]: TakeOverAIAllies.option_false,
|
||||
OPTION_NAME[DifficultyCurve]: DifficultyCurve.option_standard,
|
||||
OPTION_NAME[VanillaLocations]: VanillaLocations.option_enabled,
|
||||
OPTION_NAME[ExtraLocations]: ExtraLocations.option_half_chance,
|
||||
OPTION_NAME[ChallengeLocations]: ChallengeLocations.option_disabled,
|
||||
OPTION_NAME[MasteryLocations]: MasteryLocations.option_disabled,
|
||||
OPTION_NAME[KerriganPrimalStatus]: KerriganPrimalStatus.option_item,
|
||||
OPTION_NAME[WarCouncilNerfs]: WarCouncilNerfs.option_true,
|
||||
OPTION_NAME[MaxUpgradeLevel]: 5,
|
||||
OPTION_NAME[SpearOfAdunPresence]: SpearOfAdunPresence.option_everywhere,
|
||||
OPTION_NAME[SpearOfAdunPresentInNoBuild]: SpearOfAdunPresentInNoBuild.option_false,
|
||||
OPTION_NAME[SpearOfAdunPassiveAbilityPresence]: SpearOfAdunPassiveAbilityPresence.option_everywhere,
|
||||
OPTION_NAME[SpearOfAdunPassivesPresentInNoBuild]: SpearOfAdunPassivesPresentInNoBuild.option_false,
|
||||
OPTION_NAME[MissionOrderScouting]: MissionOrderScouting.option_completed,
|
||||
OPTION_NAME[MineralsPerItem]: 5,
|
||||
OPTION_NAME[VespenePerItem]: 5,
|
||||
OPTION_NAME[StartingSupplyPerItem]: 1,
|
||||
OPTION_NAME[MaximumSupplyPerItem]: 1,
|
||||
OPTION_NAME[ResearchCostReductionPerItem]: 1,
|
||||
OPTION_NAME[FillerItemsDistribution]: {
|
||||
item_names.STARTING_MINERALS: 10,
|
||||
item_names.STARTING_VESPENE: 10,
|
||||
item_names.STARTING_SUPPLY: 10,
|
||||
item_names.MAX_SUPPLY: 10,
|
||||
item_names.SHIELD_REGENERATION: 5,
|
||||
item_names.BUILDING_CONSTRUCTION_SPEED: 10,
|
||||
item_names.KERRIGAN_LEVELS_1: 5,
|
||||
item_names.UPGRADE_RESEARCH_SPEED: 10,
|
||||
item_names.UPGRADE_RESEARCH_COST: 10,
|
||||
item_names.REDUCED_MAX_SUPPLY: 0,
|
||||
}
|
||||
}
|
||||
|
||||
sc2_options_presets: Dict[str, Dict[str, Any]] = {
|
||||
"F2P Terran [~7 hours]": template_settings,
|
||||
"F2P Big [~10 hours]": f2p_big_settings,
|
||||
"Zerg Rush [~3 hours]": zerg_rush_settings,
|
||||
"Classic Grid [~4 hours]": classic_grid_settings,
|
||||
"Raceswap Blitz [~8 hours]": raceswap_blitz_settings,
|
||||
"Bread and Butter [~12 hours]": bread_and_butter_settings,
|
||||
"Pure Protoss [~15 hours]": all_protoss_settings,
|
||||
"Evil Logic [~6 hours]": evil_logic_settings,
|
||||
"Giant Grid Game [30+ hours]": full_campaign_settings,
|
||||
}
|
||||
@@ -6,7 +6,8 @@ from datetime import timedelta
|
||||
from Options import (
|
||||
Choice, Toggle, DefaultOnToggle, OptionSet, Range,
|
||||
PerGameCommonOptions, Option, VerifyKeys, StartInventory,
|
||||
is_iterable_except_str, OptionGroup, Visibility, ItemDict
|
||||
is_iterable_except_str, OptionGroup, Visibility, ItemDict,
|
||||
Accessibility, ProgressionBalancing
|
||||
)
|
||||
from Utils import get_fuzzy_results
|
||||
from BaseClasses import PlandoOptions
|
||||
@@ -1756,3 +1757,6 @@ void_trade_age_limits_ms: Dict[int, int] = {
|
||||
VoidTradeAgeLimit.option_1_day: 1000 * int(timedelta(days = 1).total_seconds()),
|
||||
VoidTradeAgeLimit.option_1_week: 1000 * int(timedelta(weeks = 1).total_seconds()),
|
||||
}
|
||||
|
||||
# Store the names of all options
|
||||
OPTION_NAME = {option_type: name for name, option_type in Starcraft2Options.type_hints.items()}
|
||||
|
||||
Reference in New Issue
Block a user