Smarter AI for Punish

ArtminiusArtminius Member Posts: 484
edited November 2019 in Suggestions & Ideas
I was holding a stun line with three bruisers on The Archives... right until a tank serially stunned one, then put her into struggle. Tough times. But, hey, I've got Punish! No problem.

Um, nope. The adjacent bruiser NEVER used Punish on the tank wrestling right next to him! OK, I get it: the AI favors orthogonally adjacent over diagonally.

But jeez! Can you please add a rule 'override' to prioritize attacking Zs that are wrestling with teammates over already stunned Zs that happen to be orthogonal?! It was almost ridiculous. If she hadn't had Wrestler armor, she'd be Z Chow now.

Thank you in advance for reading and considering!


  • ArtminiusArtminius Member Posts: 484
    Happened twice again, once causing mission failure.

    @Fluxxx , this change seems (a) in keeping with theme because you don't ignore a struggling guy, (b) easy to code because it's one state check against 8 squares (N, NE, E, SE, S, SW, W, NW), and I know that already happens because they WILL punish diagonally if it is the only option. Just code it to sweep those 8 for struggle status first, then sweep again for presence of a Z.

    Bonus if it prioritizes sweeping for states as follows:
    1st priority = attack a Z that is in struggle with a teammate (NOT with an enemy!!!).
    2nd priority = attack an enemy that is not stunned.
    3th priority = attack a Z that is not stunned.
    4rd priority = attack an enemy that is stunned.
    5th priority = attack any Z.

    I'm interested to read others' notions of optimal priorities, of course. Those just seem like they would be mine, if punish was like an extra attack that you could direct manually (ex: Hilltop Maggie's or Swift Strike, when it triggers) but that only happens at the end of enemy/Z turns (so you have to survive to deliver it, whereas SS you get immediately and could be a saving grace).
    But the enemy bit is even trickier, because sometimes you'd rather stun a scary Z than a not-so-scary enemy...? I had to adjust 2, 3, 4 a couple of times and I'm still not 100% sure of my priorities (and the AI has to be sure, of course... and not have hundreds of conditional checks!).
  • ArtminiusArtminius Member Posts: 484
    Ok, another improvement needed: ignoring a Z that will hit a teammate. In the turn prior to this screen shot, both Michonne and Daryl were on overwatch.
    But Michonne pointlessly attacked the Z to the left instead of probably killing the Z to the top. So Z to the top injured Rick (who wasn't on overwatch). 2* instead of 3*.

    As with the prioritization issue above, this is really, staggeringly dumb overwatch AI.
    And before someone says, "Zs that move first get priority," I don't care. Stupid AI means lazy coding. Prioritizing the safety of teammates should be in the code, only falling back on essentially random Z selection when there is no clear and immediate danger.
  • FirekidFirekid Member Posts: 2,392
    @Artminius love the punish coding idea and think you are pretty much spot on with your order of priorities.
    I also agree on the overwatch side of things, which shows up most obvious on the archives map. When you are lined up 3 vs 3 and they walk towards you and all 3 target 1 enemy leaving the other 2 to attack at will. However it isn’t random at all. They will attack the enemy which moves first, it sucks but that’s the code and I think NG would probably do more harm in trying to change that than it’s worth.
    As punish is always against stationary targets though I could see how your suggesting could and should work. As long as it doesn’t affect the wakers abilities to only hit horizontal and vertical though....
Sign In or Register to comment.