SC2: logic fixes minor bugs (#5660)

* Pulsars no longer count as basic anti-air for protoss.
  * This is in response to player feedback that they were just too weak DPS-wise
* Haven's Fall (P) logic loosened slightly.
  * Void rays are now a one-unit solution to the rule
  * Scouts are now considered a one-unit solution to the rule
  * Two-unit solutions are now considered standard rather than advanced
  * Caladrius is now listed as an anti-muta unit for the two-unit solutions
  * This was discussed in the #SC2-dev channel.
    * Snarky did some testing and found that void rays were barely any worse than destroyers at handling mutas, and destroyers are already listed as a one-unit solution.
    * Snarky also found that scouts could mostly solo the mission at low skill level
    * Note that this rule only applies to the "beating the infestations" part of the mission; there are additional requirements for beating it, including a competent comp.
* The Host (T) now also can use SoA abilities if SoA presence is set to `any_race_lotv`, not just `everywhere`
This commit is contained in:
Phaneros
2025-11-28 16:46:41 -08:00
committed by GitHub
parent 60a192b1b6
commit 8a1a715dc4
2 changed files with 488 additions and 402 deletions

View File

@@ -2151,127 +2151,6 @@ not_balanced_starting_units = {
item_names.TEMPEST,
}
# Defense rating table
# Commented defense ratings are handled in LogicMixin
tvx_defense_ratings = {
item_names.SIEGE_TANK: 5,
# "Graduating Range": 1,
item_names.PLANETARY_FORTRESS: 3,
# Bunker w/ Marine/Marauder: 3,
item_names.PERDITION_TURRET: 2,
item_names.DEVASTATOR_TURRET: 2,
item_names.VULTURE: 1,
item_names.BANSHEE: 1,
item_names.BATTLECRUISER: 1,
item_names.LIBERATOR: 4,
item_names.WIDOW_MINE: 1,
# "Concealment (Widow Mine)": 1
}
tvz_defense_ratings = {
item_names.PERDITION_TURRET: 2,
# Bunker w/ Firebat: 2,
item_names.LIBERATOR: -2,
item_names.HIVE_MIND_EMULATOR: 3,
item_names.PSI_DISRUPTER: 3,
}
tvx_air_defense_ratings = {
item_names.MISSILE_TURRET: 2,
}
zvx_defense_ratings = {
# Note that this doesn't include Kerrigan because this is just for race swaps, which doesn't involve her (for now)
item_names.SPINE_CRAWLER: 3,
# w/ Twin Drones: 1
item_names.SWARM_QUEEN: 1,
item_names.SWARM_HOST: 1,
# impaler: 3
# "Hardened Tentacle Spines (Impaler)": 2
# lurker: 1
# "Seismic Spines (Lurker)": 2
# "Adapted Spines (Lurker)": 1
# brood lord : 2
# corpser roach: 1
# creep tumors (swarm queen or overseer): 1
# w/ malignant creep: 1
# tanks with ammo: 5
item_names.INFESTED_BUNKER: 3,
item_names.BILE_LAUNCHER: 2,
}
# zvz_defense_ratings = {
# corpser roach: 1
# primal igniter: 2
# lurker: 1
# w/ adapted spines: -1
# impaler: -1
# }
zvx_air_defense_ratings = {
item_names.SPORE_CRAWLER: 2,
# w/ Twin Drones: 1
item_names.INFESTED_MISSILE_TURRET: 2,
}
pvx_defense_ratings = {
item_names.PHOTON_CANNON: 2,
item_names.KHAYDARIN_MONOLITH: 3,
item_names.SHIELD_BATTERY: 1,
item_names.NEXUS_OVERCHARGE: 2,
item_names.SKYLORD: 1,
item_names.MATRIX_OVERLOAD: 1,
item_names.COLOSSUS: 1,
item_names.VANGUARD: 1,
item_names.REAVER: 1,
}
pvz_defense_ratings = {
item_names.KHAYDARIN_MONOLITH: -2,
item_names.COLOSSUS: 1,
}
terran_passive_ratings = {
item_names.AUTOMATED_REFINERY: 4,
item_names.COMMAND_CENTER_MULE: 4,
item_names.ORBITAL_DEPOTS: 2,
item_names.COMMAND_CENTER_COMMAND_CENTER_REACTOR: 2,
item_names.COMMAND_CENTER_EXTRA_SUPPLIES: 2,
item_names.MICRO_FILTERING: 2,
item_names.TECH_REACTOR: 2
}
zerg_passive_ratings = {
item_names.TWIN_DRONES: 7,
item_names.AUTOMATED_EXTRACTORS: 4,
item_names.VESPENE_EFFICIENCY: 3,
item_names.OVERLORD_IMPROVED_OVERLORDS: 4,
item_names.MALIGNANT_CREEP: 2
}
protoss_passive_ratings = {
item_names.QUATRO: 4,
item_names.ORBITAL_ASSIMILATORS: 4,
item_names.AMPLIFIED_ASSIMILATORS: 3,
item_names.PROBE_WARPIN: 2,
item_names.ELDER_PROBES: 2,
item_names.MATRIX_OVERLOAD: 2
}
soa_energy_ratings = {
item_names.SOA_SOLAR_LANCE: 8,
item_names.SOA_DEPLOY_FENIX: 7,
item_names.SOA_TEMPORAL_FIELD: 6,
item_names.SOA_PROGRESSIVE_PROXY_PYLON: 5, # Requires Lvl 2 (Warp in Reinforcements)
item_names.SOA_SHIELD_OVERCHARGE: 5,
item_names.SOA_ORBITAL_STRIKE: 4
}
soa_passive_ratings = {
item_names.GUARDIAN_SHELL: 4,
item_names.OVERWATCH: 2
}
soa_ultimate_ratings = {
item_names.SOA_TIME_STOP: 4,
item_names.SOA_PURIFIER_BEAM: 3,
item_names.SOA_SOLAR_BOMBARDMENT: 3
}
kerrigan_levels = [
item_name for item_name, item_data in item_table.items()
if item_data.type == ZergItemType.Level and item_data.race == SC2Race.ZERG

File diff suppressed because it is too large Load Diff