Ziktofel / Archipelago

Archipelago Multi-Game Randomizer and Server
https://archipelago.gg
Other
0 stars 6 forks source link

Logic: LotV and NCO Logic second pass #181

Open Bicoloursnake opened 3 months ago

Bicoloursnake commented 3 months ago

What feature would you like to see?

The logic for LotV and NCO missions could probably use a second pass since iirc, that was a bit rushed and erred on the strict side so we could get the multicampaign playable sooner. WoL and HotS have been reviewed quite a bit already, but it wouldn't hurt now that we're not in crunch time to take another look at those too.

MatthewMarinets commented 3 months ago

precise feedback I've seen so far (and remember):

Alice Voltaire:

I very much do not think Slayer-only should be Standard logic on Ghosts in the Fog this feels very much an Advanced thing

https://discord.com/channels/731205301247803413/980554570075873300/1225257450178085031

Mati:

I am not sure if this is actually a bug, but doing some trigger exclude shenanigans, and its failing to generate because templars return is not possible without Auir units

https://discord.com/channels/731205301247803413/1101186175722598521/1224948966328897638

At the very least, I can see where you are coming from for Normal Logic, but I feel Advanced Logic should be: Figure it out you rolled Havoc Wrathwalker? Do your best

https://discord.com/channels/731205301247803413/1101186175722598521/1225102944308035704

MatthewMarinets commented 3 months ago

I remember in the first pass the thing that bothered me most was templar's charge having logic that required all of a large collection of capabilities rather than any. In my book, a capital ship alone can handle it, and I'd be interested to try it with e.g. wrathwalkers + AA only, or ascendants + a mineral dump

Ziktofel commented 3 months ago

Spear of Adun - there was a report with dragoon-only struggle

MatthewMarinets commented 2 months ago

Copying this comment from BicolourSnake in #157

Amon's fall logic is probably too loose without economy upgrades. Vanilla gives you better Overlords, Twin Drones, and Auto Gas to let you get on the map quickly to prevent Amon from building up too much. Without those upgrades, you need quite a bit of punch to break through.

Bicoloursnake commented 2 months ago

Copying this comment from BicolourSnake in #157

Amon's fall logic is probably too loose without economy upgrades. Vanilla gives you better Overlords, Twin Drones, and Auto Gas to let you get on the map quickly to prevent Amon from building up too much. Without those upgrades, you need quite a bit of punch to break through.

Disclaimer: As soon as I remembered I had resource efficiency hydralisks, clearing this mission became absurdly easy even without the extra eco upgrades.

MadiMadsen commented 2 months ago

should also keep in mind that units will have a pre war council state (the deisgn doc is in #sc2 dev pinned) that will have to be considered for logic in lotv.

MatthewMarinets commented 2 months ago

Discussion with ChannelMiner 2024-04-10 (starting around here: https://discord.com/channels/731205301247803413/980554570075873300/1227782496406470656 ) revealed a lot of issues with Sudden Strike logic and how that impacts the enable_nco_missions forcing NCO items in the pool regardless of the NCO items option.

The two logic rules in use for the 4 locations in sudden strike are sudden_strike_requirement() and sudden_strike_can_reach_objectives():

    def terran_cliffjumper(self, state: CollectionState) -> bool:
        return state.has(ItemNames.REAPER, self.player) \
                or state.has_all({ItemNames.GOLIATH, ItemNames.GOLIATH_JUMP_JETS}, self.player) \
                or state.has_all({ItemNames.SIEGE_TANK, ItemNames.SIEGE_TANK_JUMP_JETS}, self.player)

    def terran_able_to_snipe_defiler(self, state: CollectionState) -> bool:
        return state.has_all({ItemNames.NOVA_JUMP_SUIT_MODULE, ItemNames.NOVA_C20A_CANISTER_RIFLE}, self.player) \
                or state.has_all({ItemNames.SIEGE_TANK, ItemNames.SIEGE_TANK_MAELSTROM_ROUNDS, ItemNames.SIEGE_TANK_JUMP_JETS}, self.player)

    def sudden_strike_requirement(self, state: CollectionState) -> bool:
        return self.sudden_strike_can_reach_objectives(state) \
            and self.terran_able_to_snipe_defiler(state) \
            and state.has_any({ItemNames.SIEGE_TANK, ItemNames.VULTURE}, self.player) \
            and self.nova_splash(state) \
            and (self.terran_defense_rating(state, True, False) >= 2
                 or state.has(ItemNames.NOVA_JUMP_SUIT_MODULE, self.player))

    def sudden_strike_can_reach_objectives(self, state: CollectionState) -> bool:
        return self.terran_cliffjumper(state) \
            or state.has_any({ItemNames.BANSHEE, ItemNames.VIKING}, self.player) \
            or (
                    self.advanced_tactics
                    and state.has(ItemNames.MEDIVAC, self.player)
                    and state.has_any({ItemNames.MARINE, ItemNames.MARAUDER, ItemNames.VULTURE, ItemNames.HELLION,
                                       ItemNames.GOLIATH}, self.player)
            )

At a first glance:

I'd propose just requiring:

MatthewMarinets commented 2 months ago

Current logic on Templar's Return is: (Immortal | Annihilator) + (Colossus | Vanguard | Reaver | DT) + (Sentry | HT)

I think this is too constraining even for standard tactics. Infinite waves of mind-controllable enemies spawn so you can always beat this mission with no units. Even in vanilla, I haven't built sentries for much beyond finding something to spend my gas on. I'd propose changing this logic to:

(Immortal | Annihilator | Colossus | Vanguard | Reaver | DT)

MatthewMarinets commented 1 month ago

After watching GGG's stream on 2024-05-17, it was found Queen Spawn Broodlings works vs rocks in Amon's Fall. Around here in discord messages that spawned a discussion on adjusting the logic for the mission:

Current logic (assuming takeover AI allies is false): Mutalisk AND zerg competent comp

Proposal: Mutalisk OR scourge OR corruptor OR brood queen OR zerg competent comp

Ziktofel commented 1 month ago

that'd allow Scourge or Corruptor only, leaving only Kerrigan and Drones to handle ground attacks. Competent comp is to handle anything on ground (while keeps you to vulnerable to air).

Ziktofel commented 1 month ago

And scourge with one my runs die before reaching the objectives (too squishy at 25 HP)