Implement assimilate and Borg Queen, Perfection Manifest - #11716
Conversation
|
@liamiak i was waiting for this one because my gut is telling me that the Effect changes depending on if the Target is in the Graveyard or in on the Battlefield So it should probably capsuled in a Assimilate Effect @tool4ever we had ÀnimateSubAbility` before but it got replaced with some other effect? |
Closes Card-Forge#11240. Uses the existing StaticEffect$ mechanism on ChangeZone, which applies the type change before the card enters the battlefield. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Speculative, and separable from the commit before it: the printed card only assimilates from a graveyard, and this also handles a permanent already on the battlefield, which no card asks for yet. Drop this commit and the card still works through StaticEffect$. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
54349ab to
8e09b5a
Compare
|
@Hanmac — you were both right about On encapsulating it: the second commit does, as an Recording for the record that right now, Scryfall has exactly one card with the word in its oracle text and it only reaches a graveyard, so the battlefield branch has no card behind it and is only covered by a test driving the API directly. The two commits are separable — drop the second and the card still works. If you know of other assimilate cards coming, that would decide if we need this. |
Closes #11240.
Two commits, and the second one is droppable.
1 — the card. Uses the existing
StaticEffect$on ChangeZone, whichGameAction.setupStaticEffectapplies before the card enters, so the types are already in place for ETB triggers. Card script and
tests only, no engine change - the same shape as Ashiok, Nightmare Weaver and Bronzehide Lion.
2 — an
AssimilateAPI, per @Hanmac: the keyword's rules in one place so the two forms cannotdrift. A card in a graveyard or exile is moved and the type change rides that zone change; a
permanent already on the battlefield only changes hands and is animated where it stands. The card
script becomes
DB$ Assimilate | TgtZone$ Graveyard | ValidTgts$ Creature.OppOwn.That half is speculation, and I would rather label it than bury it. Scryfall has exactly one card
with "assimilate" in its oracle text and it only ever reaches a graveyard, so the battlefield branch
has no card behind it - it is covered by a test that drives the API directly. The commits are
separable: drop the second and the card still works through
StaticEffect$. I ran the firstcommit on its own to check that rather than assume it.
Entering already typed is measured, not assumed. With Reckless Fireweaver out ("whenever an artifact
you control enters"), assimilating deals 2 damage - one for the Queen, one for what she
assimilated. Applied after the move it deals 1.
Borgis already inTypeLists.txtand the edition file already lists 197. The type change addsArtifact and Creature but does not remove card types, so an assimilated Nyx-Fleece Ram stays an
enchantment.
Eight tests. The seven from the first commit are untouched by the second and pass against both
implementations, including the one that checks a creature on their battlefield stays out of reach.
Full desktop suite: 368 tests, 0 failures, 6 skipped. Checkstyle clean.
Written with Claude Opus 5 (also recorded in the commit co-authors).