Skip to content

Commit

Permalink
Merge pull request #295 from SirChuckOfTheChuckles/OdinRaceswapData
Browse files Browse the repository at this point in the history
Engine of Destruction and Media Blitz Raceswap Locations
  • Loading branch information
Ziktofel authored Sep 14, 2024
2 parents d4c5b63 + 43252a7 commit f5532be
Show file tree
Hide file tree
Showing 5 changed files with 203 additions and 22 deletions.
15 changes: 9 additions & 6 deletions worlds/sc2/items.py
Original file line number Diff line number Diff line change
Expand Up @@ -1159,19 +1159,22 @@ def get_full_item_list():
item_names.ZERGLING_HARDENED_CARAPACE:
ItemData(200 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 0, SC2Race.ZERG, parent_item=item_names.ZERGLING, origin={"hots"}),
item_names.ZERGLING_ADRENAL_OVERLOAD:
ItemData(201 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 1, SC2Race.ZERG, parent_item=item_names.ZERGLING, origin={"hots"}),
ItemData(201 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 1, SC2Race.ZERG, parent_item=item_names.ZERGLING,
origin={"hots"}, classification=ItemClassification.progression),
item_names.ZERGLING_METABOLIC_BOOST:
ItemData(202 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 2, SC2Race.ZERG, parent_item=item_names.ZERGLING,
origin={"hots"}, classification=ItemClassification.filler),
item_names.ROACH_HYDRIODIC_BILE:
ItemData(203 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 3, SC2Race.ZERG, parent_item=item_names.ROACH, origin={"hots"}),
ItemData(203 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 3, SC2Race.ZERG, parent_item=item_names.ROACH,
origin={"hots"}, classification=ItemClassification.progression),
item_names.ROACH_ADAPTIVE_PLATING:
ItemData(204 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 4, SC2Race.ZERG, parent_item=item_names.ROACH, origin={"hots"}),
item_names.ROACH_TUNNELING_CLAWS:
ItemData(205 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 5, SC2Race.ZERG, parent_item=item_names.ROACH,
origin={"hots"}, classification=ItemClassification.filler),
item_names.HYDRALISK_FRENZY:
ItemData(206 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 6, SC2Race.ZERG, parent_item=item_names.HYDRALISK, origin={"hots"}),
ItemData(206 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 6, SC2Race.ZERG, parent_item=item_names.HYDRALISK, \
origin={"hots"}, classification=ItemClassification.progression),
item_names.HYDRALISK_ANCILLARY_CARAPACE:
ItemData(207 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 7, SC2Race.ZERG, parent_item=item_names.HYDRALISK,
origin={"hots"}, classification=ItemClassification.filler),
Expand Down Expand Up @@ -1370,7 +1373,7 @@ def get_full_item_list():
origin={"ext"}, classification=ItemClassification.filler),
item_names.SWARM_QUEEN_BIO_MECHANICAL_TRANSFUSION:
ItemData(271 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 11, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN,
origin={"ext"}),
origin={"ext"}, classification=ItemClassification.progression),
item_names.SWARM_QUEEN_RESOURCE_EFFICIENCY:
ItemData(272 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 12, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN,
origin={"ext"}),
Expand Down Expand Up @@ -1812,7 +1815,7 @@ def get_full_item_list():
item_names.HAVOC_DETECT_WEAKNESS: ItemData(374 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 14, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.HAVOC),
item_names.HAVOC_BLOODSHARD_RESONANCE: ItemData(375 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 15, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.HAVOC),
item_names.ZEALOT_SENTINEL_CENTURION_LEG_ENHANCEMENTS: ItemData(376 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 16, SC2Race.PROTOSS, origin={"bw"}),
item_names.ZEALOT_SENTINEL_CENTURION_SHIELD_CAPACITY: ItemData(377 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 17, SC2Race.PROTOSS, origin={"bw"}),
item_names.ZEALOT_SENTINEL_CENTURION_SHIELD_CAPACITY: ItemData(377 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 17, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"bw"}),
item_names.ORACLE_BOSONIC_CORE: ItemData(378 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 18, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.ORACLE),
item_names.SCOUT_RESOURCE_EFFICIENCY: ItemData(379 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 19, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.SCOUT),
item_names.IMMORTAL_ANNIHILATOR_STALWART_DISRUPTOR_DISPERSION: ItemData(380 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 20, SC2Race.PROTOSS, origin={"ext"}),
Expand All @@ -1836,7 +1839,7 @@ def get_full_item_list():
item_names.DARK_TEMPLAR_LESSER_SHADOW_FURY: ItemData(509 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.War_Council, 9, SC2Race.PROTOSS, parent_item=item_names.DARK_TEMPLAR),
item_names.DARK_TEMPLAR_GREATER_SHADOW_FURY: ItemData(510 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.War_Council, 10, SC2Race.PROTOSS, parent_item=item_names.DARK_TEMPLAR),
item_names.BLOOD_HUNTER_BRUTAL_EFFICIENCY: ItemData(511 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.War_Council, 11, SC2Race.PROTOSS, parent_item=item_names.BLOOD_HUNTER),
item_names.SENTRY_DOUBLE_SHIELD_RECHARGE: ItemData(512 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.War_Council, 12, SC2Race.PROTOSS, parent_item=item_names.SENTRY),
item_names.SENTRY_DOUBLE_SHIELD_RECHARGE: ItemData(512 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.War_Council, 12, SC2Race.PROTOSS, classification=ItemClassification.progression, parent_item=item_names.SENTRY),
item_names.ENERGIZER_MOBILE_CHRONO_BEAM: ItemData(513 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.War_Council, 13, SC2Race.PROTOSS, classification=ItemClassification.progression, parent_item=item_names.ENERGIZER),
item_names.HAVOC_ENDURING_SIGHT: ItemData(514 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.War_Council, 14, SC2Race.PROTOSS, parent_item=item_names.HAVOC),
item_names.HIGH_TEMPLAR_PLASMA_SURGE: ItemData(515 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.War_Council, 15, SC2Race.PROTOSS, parent_item=item_names.HIGH_TEMPLAR),
Expand Down
132 changes: 124 additions & 8 deletions worlds/sc2/locations.py
Original file line number Diff line number Diff line change
Expand Up @@ -711,34 +711,34 @@ def get_locations(world: Optional['SC2World']) -> Tuple[LocationData, ...]:
logic.terran_common_unit
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION.mission_name, "Victory", SC2WOL_LOC_ID_OFFSET + 1900, LocationType.VICTORY,
logic.engine_of_destruction_requirement
logic.terran_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION.mission_name, "Odin", SC2WOL_LOC_ID_OFFSET + 1901, LocationType.EXTRA,
logic.marine_medic_upgrade
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION.mission_name, "Loki", SC2WOL_LOC_ID_OFFSET + 1902, LocationType.CHALLENGE,
logic.engine_of_destruction_requirement
logic.terran_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION.mission_name, "Lab Devourer", SC2WOL_LOC_ID_OFFSET + 1903, LocationType.VANILLA,
logic.marine_medic_upgrade
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION.mission_name, "North Devourer", SC2WOL_LOC_ID_OFFSET + 1904, LocationType.VANILLA,
logic.engine_of_destruction_requirement
logic.terran_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION.mission_name, "Southeast Devourer", SC2WOL_LOC_ID_OFFSET + 1905, LocationType.VANILLA,
logic.engine_of_destruction_requirement
logic.terran_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION.mission_name, "West Base", SC2WOL_LOC_ID_OFFSET + 1906, LocationType.EXTRA,
logic.engine_of_destruction_requirement
logic.terran_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION.mission_name, "Northwest Base", SC2WOL_LOC_ID_OFFSET + 1907, LocationType.EXTRA,
logic.engine_of_destruction_requirement
logic.terran_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION.mission_name, "Northeast Base", SC2WOL_LOC_ID_OFFSET + 1908, LocationType.EXTRA,
logic.engine_of_destruction_requirement
logic.terran_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION.mission_name, "Southeast Base", SC2WOL_LOC_ID_OFFSET + 1909, LocationType.EXTRA,
logic.engine_of_destruction_requirement
logic.terran_engine_of_destruction_requirement
),
make_location_data(SC2Mission.MEDIA_BLITZ.mission_name, "Victory", SC2WOL_LOC_ID_OFFSET + 2000, LocationType.VICTORY,
logic.terran_competent_comp
Expand Down Expand Up @@ -2895,6 +2895,122 @@ def get_locations(world: Optional['SC2World']) -> Tuple[LocationData, ...]:
make_location_data(SC2Mission.CUTTHROAT_P.mission_name, "West Command Center", SC2_RACESWAP_LOC_ID_OFFSET + 3607, LocationType.EXTRA,
logic.protoss_common_unit
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_Z.mission_name, "Victory", SC2_RACESWAP_LOC_ID_OFFSET + 3700, LocationType.VICTORY,
logic.zerg_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_Z.mission_name, "Odin", SC2_RACESWAP_LOC_ID_OFFSET + 3701, LocationType.EXTRA,
logic.zergling_hydra_roach_start
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_Z.mission_name, "Loki", SC2_RACESWAP_LOC_ID_OFFSET + 3702, LocationType.CHALLENGE,
logic.zerg_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_Z.mission_name, "Lab Devourer", SC2_RACESWAP_LOC_ID_OFFSET + 3703, LocationType.VANILLA,
logic.zergling_hydra_roach_start
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_Z.mission_name, "North Devourer", SC2_RACESWAP_LOC_ID_OFFSET + 3704, LocationType.VANILLA,
logic.zerg_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_Z.mission_name, "Southeast Devourer", SC2_RACESWAP_LOC_ID_OFFSET + 3705, LocationType.VANILLA,
logic.zerg_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_Z.mission_name, "West Base", SC2_RACESWAP_LOC_ID_OFFSET + 3706, LocationType.EXTRA,
logic.zerg_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_Z.mission_name, "Northwest Base", SC2_RACESWAP_LOC_ID_OFFSET + 3707, LocationType.EXTRA,
logic.zerg_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_Z.mission_name, "Northeast Base", SC2_RACESWAP_LOC_ID_OFFSET + 3708, LocationType.EXTRA,
logic.zerg_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_Z.mission_name, "Southeast Base", SC2_RACESWAP_LOC_ID_OFFSET + 3709, LocationType.EXTRA,
logic.zerg_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_P.mission_name, "Victory", SC2_RACESWAP_LOC_ID_OFFSET + 3800, LocationType.VICTORY,
logic.protoss_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_P.mission_name, "Odin", SC2_RACESWAP_LOC_ID_OFFSET + 3801, LocationType.EXTRA,
logic.zealot_sentry_slayer_start
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_P.mission_name, "Loki", SC2_RACESWAP_LOC_ID_OFFSET + 3802, LocationType.CHALLENGE,
logic.protoss_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_P.mission_name, "Lab Devourer", SC2_RACESWAP_LOC_ID_OFFSET + 3803, LocationType.VANILLA,
logic.zealot_sentry_slayer_start
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_P.mission_name, "North Devourer", SC2_RACESWAP_LOC_ID_OFFSET + 3804, LocationType.VANILLA,
logic.protoss_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_P.mission_name, "Southeast Devourer", SC2_RACESWAP_LOC_ID_OFFSET + 3805, LocationType.VANILLA,
logic.protoss_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_P.mission_name, "West Base", SC2_RACESWAP_LOC_ID_OFFSET + 3806, LocationType.EXTRA,
logic.protoss_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_P.mission_name, "Northwest Base", SC2_RACESWAP_LOC_ID_OFFSET + 3807, LocationType.EXTRA,
logic.protoss_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_P.mission_name, "Northeast Base", SC2_RACESWAP_LOC_ID_OFFSET + 3808, LocationType.EXTRA,
logic.protoss_engine_of_destruction_requirement
),
make_location_data(SC2Mission.ENGINE_OF_DESTRUCTION_P.mission_name, "Southeast Base", SC2_RACESWAP_LOC_ID_OFFSET + 3809, LocationType.EXTRA,
logic.protoss_engine_of_destruction_requirement
),
make_location_data(SC2Mission.MEDIA_BLITZ_Z.mission_name, "Victory", SC2_RACESWAP_LOC_ID_OFFSET + 3900, LocationType.VICTORY,
logic.zerg_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_Z.mission_name, "Tower 1", SC2_RACESWAP_LOC_ID_OFFSET + 3901, LocationType.VANILLA,
logic.zerg_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_Z.mission_name, "Tower 2", SC2_RACESWAP_LOC_ID_OFFSET + 3902, LocationType.VANILLA,
logic.zerg_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_Z.mission_name, "Tower 3", SC2_RACESWAP_LOC_ID_OFFSET + 3903, LocationType.VANILLA,
logic.zerg_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_Z.mission_name, "Science Facility", SC2_RACESWAP_LOC_ID_OFFSET + 3904, LocationType.VANILLA),
make_location_data(SC2Mission.MEDIA_BLITZ_Z.mission_name, "All Barracks", SC2_RACESWAP_LOC_ID_OFFSET + 3905, LocationType.EXTRA,
logic.zerg_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_Z.mission_name, "All Factories", SC2_RACESWAP_LOC_ID_OFFSET + 3906, LocationType.EXTRA,
logic.zerg_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_Z.mission_name, "All Starports", SC2_RACESWAP_LOC_ID_OFFSET + 3907, LocationType.EXTRA,
lambda state: adv_tactics or logic.zerg_competent_comp(state)
),
make_location_data(SC2Mission.MEDIA_BLITZ_Z.mission_name, "Odin Not Trashed", SC2_RACESWAP_LOC_ID_OFFSET + 3908, LocationType.CHALLENGE,
lambda state: (
logic.zerg_competent_comp(state)
and logic.zerg_repair_odin(state))
),
make_location_data(SC2Mission.MEDIA_BLITZ_Z.mission_name, "Surprise Attack Ends", SC2_RACESWAP_LOC_ID_OFFSET + 3909, LocationType.EXTRA),
make_location_data(SC2Mission.MEDIA_BLITZ_P.mission_name, "Victory", SC2_RACESWAP_LOC_ID_OFFSET + 4000, LocationType.VICTORY,
logic.protoss_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_P.mission_name, "Tower 1", SC2_RACESWAP_LOC_ID_OFFSET + 4001, LocationType.VANILLA,
logic.protoss_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_P.mission_name, "Tower 2", SC2_RACESWAP_LOC_ID_OFFSET + 4002, LocationType.VANILLA,
logic.protoss_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_P.mission_name, "Tower 3", SC2_RACESWAP_LOC_ID_OFFSET + 4003, LocationType.VANILLA,
logic.protoss_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_P.mission_name, "Science Facility", SC2_RACESWAP_LOC_ID_OFFSET + 4004, LocationType.VANILLA),
make_location_data(SC2Mission.MEDIA_BLITZ_P.mission_name, "All Barracks", SC2_RACESWAP_LOC_ID_OFFSET + 4005, LocationType.EXTRA,
logic.protoss_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_P.mission_name, "All Factories", SC2_RACESWAP_LOC_ID_OFFSET + 4006, LocationType.EXTRA,
logic.protoss_competent_comp
),
make_location_data(SC2Mission.MEDIA_BLITZ_P.mission_name, "All Starports", SC2_RACESWAP_LOC_ID_OFFSET + 4007, LocationType.EXTRA,
lambda state: adv_tactics or logic.protoss_competent_comp(state)
),
make_location_data(SC2Mission.MEDIA_BLITZ_P.mission_name, "Odin Not Trashed", SC2_RACESWAP_LOC_ID_OFFSET + 4008, LocationType.CHALLENGE,
lambda state: (
logic.protoss_competent_comp(state)
and logic.protoss_repair_odin(state))
),
make_location_data(SC2Mission.MEDIA_BLITZ_P.mission_name, "Surprise Attack Ends", SC2_RACESWAP_LOC_ID_OFFSET + 4009, LocationType.EXTRA),
]

beat_events = []
Expand Down
Loading

0 comments on commit f5532be

Please sign in to comment.