mtgred / netrunner

http://www.jinteki.net
Other
900 stars 393 forks source link

Blacklist chat log is not correct with Boomerang #5275

Closed tolaasin closed 4 years ago

tolaasin commented 4 years ago

wlip started their turn 8 with 11 and 5 cards in their Grip. wlip uses Beth Kilrain-Chang to draw 1 card. wlip uses Security Testing to target Archives. wlip spends and pays 2 to install Boomerang. wlip uses Boomerang to target ICE protecting HQ at position 0. wlip spends and pays 1 to play Diversion of Funds. wlip approaches ICE protecting HQ at position 0. The_Greasy_Thumb pays 2 to rez IP Block. wlip encounters IP Block protecting HQ at position 0. wlip to use Boomerang to break 2 subroutines on IP Block (" Trace 3 - Give the Runner 1 tag" and " End the run if the Runner is tagged"). wlip has no further action. wlip passes IP Block protecting HQ at position 0. wlip approaches HQ. The_Greasy_Thumb pays 0 to rez Blacklist. wlip uses Paragon to gain 1 and look at the top card of Stack. wlip uses Paragon to add the top card of Stack to the bottom. wlip chooses to use the replacement effect from Diversion of Funds. wlip uses Diversion of Funds to force the Corp to lose 5, and gain 5. wlip places a power counter on The Turning Wheel. wlip uses Boomerang to shuffle a copy of Boomerang back into the Stack. wlip spends to make a run on Server 5. wlip approaches ICE protecting Server 5 at position 1.

Boomerang correctly does not leave the heap, but I think we need a message in the chat log to say it was prevented.

NoahTheDuke commented 4 years ago

Thanks for the report!

tblackwe commented 4 years ago

Cards this would effect: (checked means a fix has been developed)

tblackwe commented 4 years ago

@NoahTheDuke do we assign issues when people are working on them? If so feel free to assign to me

NoahTheDuke commented 4 years ago

We don’t, cuz there’s not enough work being done for that to be necessary.

tblackwe commented 4 years ago

some of these cards have not locked requirement implemented, some don't. I will add the check where appropriate.

For cases like Clone Chip and Buffer Drive, I'm torn on whether or not code should have a requirement. Currently clone chip checks, buffer drive doesnt. Both cards have an ability that is pointless with Blacklist up but still changes board state. Anyone have thoughts? My gut says to prevent the ability from triggering, and anyone that wants to use this edge case can do so manually.

Alternatively, if I can figure out conditionals, I could present a confirmation dialog instead of select card(s) prompt

the requirement = (not (zone-locked? state :runner :discard))