magefree / magefree/mage

Combat damage assignment for attackers with trample and blockers blocking multiple creatures

Open
#11,567 12 comments 0 reactions 0 assignees View on GitHub
bug refactoring
Dominant language
Java
Stars
2.4k
Forks
940
Avg merge
2d 12h
Merged PRs (30d)
160

Description

Noticed today in the XDHS with [[Guardian of the Gateless]] but is presumably a general issue with how combat is implemented. It was blocking a 3/5, 4/4 trample, and 4/4 not trample (so becoming a 6/6). The correct functionality would be to assign 0-4 trample damage. However, the way it seems to work was assigning 3 from the 3/5, then prompting to assign 3 or 4 from the trampler (so 0 or 1 to face), then 4 from the non trampler all to the blocker.

> 702.19b The controller of an attacking creature with trample first assigns damage to the creature(s) blocking it. Once all those blocking creatures are assigned lethal damage, any excess damage is assigned as its controller chooses among those blocking creatures and the player, planeswalker, or battle the creature is attacking. When checking for assigned lethal damage, take into account damage already marked on the creature **and damage from other creatures that’s being assigned during the same combat damage step**, but not any abilities or effects that might change the amount of damage that’s actually dealt. The attacking creature’s controller need not assign lethal damage to all those blocking creatures but in that case can’t assign any damage to the player or planeswalker it’s attacking.

One potential kludge to fix this in most scenarios would be to order attackers (i.e. combat groups) as follows when assigning damage:
1. Attackers without trample
2. Attackers with trample and deathtouch
3. Attackers with trample but not deathtouch

More formally true to rules would be like, have the attackers assign in any order, tramplers can assign 0-N, at the end check that the blocker is receiving lethal and if not reject all assignments and make them try again, but that seems a bit trickier! Ideally it would be possible to assign damage from three 2/4 tramplers to one 3/3 blocker as 1+1 1+1 1+1 (if you wanted each creature to trigger damage to player for example).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.