It is currently 09 Sep 2025, 16:39
   
Text Size

AI and Can't Block

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

AI and Can't Block

Postby friarsol » 28 Oct 2011, 21:56

Does the AI just ignore the Can't Block Keyword?

I activated my Spin Engine on Marsh Goblins and attacked. The AI promptly blocked my Engine with his Marsh Goblins. They killed each other, and I looked in the graveyard and the Can't Block keyword is still attached to the Goblins. Also, my Spin Engine has a Card ID of 42, but the Marsh Goblins Can't Block Keyword says Spin Engine's ID is 119.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: AI and Can't Block

Postby jeffwadsworth » 28 Oct 2011, 22:12

Maybe this is related to something I ran into while testing Cauldron Dance.

The granted triggers stuck to the cards even though they were off the battlefield, etc.

Try this card and note the above. Note the activation limitation.

| Open
Name:Cauldron Dance
ManaCost:4 B R
Types:Instant
Text:no text
A:SP$ ChangeZone | Cost$ 4 B R | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature from your graveyard | ActivationPhases$ BeginCombat->EndCombat | SubAbility$ DBAnimate | SpellDescription$ Cast CARDNAME only during combat. Return target creature card from your graveyard to the battlefield. That creature gains haste. Return it to your hand at the beginning of the next end step. You may put a creature card from your hand onto the battlefield. That creature gains haste. Its controller sacrifices it at the beginning of the next end step.
SVar:DBAnimate:DB$ Animate | Defined$ Targeted | Keywords$ Haste | Triggers$ TrigBounce | sVars$ TrigReturn | SubAbility$ DBChangeZone
SVar:TrigBounce:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigReturn | TriggerDescription$ At the beginning of the next end step, return CARDNAME to its owner's hand.
SVar:TrigReturn:AB$ ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Battlefield | Destination$ Hand
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | OptionalDecider$ You | ChangeType$ Creature | ChangeNum$ 1 | RememberChanged$ True | ForgetOtherRemembered$ True | SubAbility$ DBAnimate2
SVar:DBAnimate2:DB$ Animate | Defined$ Remembered | Keywords$ Haste | Triggers$ TrigSacrifice | sVars$ TrigSac
SVar:TrigSacrifice:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ At the beginning of the next end step, sacrifice CARDNAME.
SVar:TrigSac:AB$ Sacrifice | Cost$ 0 | Defined$ Self | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/caudron_dance.jpg
End
jeffwadsworth
Super Tester Elite
 
Posts: 1172
Joined: 20 Oct 2010, 04:47
Location: USA
Has thanked: 287 times
Been thanked: 70 times

Re: AI and Can't Block

Postby Sloth » 29 Oct 2011, 05:49

friarsol wrote:They killed each other, and I looked in the graveyard and the Can't Block keyword is still attached to the Goblins.
I meant to fix this in 11527. copyCharacteristic needs to be tweaked further though:

The function should only copy printed values, but printed triggers and colors are not really checked at the moment.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: AI and Can't Block

Postby Hellfish » 29 Oct 2011, 08:52

I fixed the extrinsic triggers becoming intrinsic problem. However, for Cauldron Dance there's another problem; AF_Animate adds all keywords as intrinsic unless they are specified HIDDEN, so Haste is still copied when the creatures go to the graveyard/hand.

EDIT: I put up a temporary fix for Spin Engine (And Duct Crawler & Shrewd Hatchling). The problem is that somewhere between coming out of the CardFactory and using the ability, Spin Engine's UniqueNumber change and the "Can't block CARDID" keyword depends on the UniqueNumber.
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
User avatar
Hellfish
Programmer
 
Posts: 1297
Joined: 07 Jun 2009, 10:41
Location: South of the Pumphouse
Has thanked: 110 times
Been thanked: 169 times

Re: AI and Can't Block

Postby jeffwadsworth » 29 Oct 2011, 15:58

Well, Cauldron Dance now works correctly. Thanks.
jeffwadsworth
Super Tester Elite
 
Posts: 1172
Joined: 20 Oct 2010, 04:47
Location: USA
Has thanked: 287 times
Been thanked: 70 times

Re: AI and Can't Block

Postby Sloth » 30 Oct 2011, 13:05

Hellfish wrote:I fixed the extrinsic triggers becoming intrinsic problem. However, for Cauldron Dance there's another problem; AF_Animate adds all keywords as intrinsic unless they are specified HIDDEN, so Haste is still copied when the creatures go to the graveyard/hand.
I will try to fix AF_Animate then.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times


Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 74 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 74 users online :: 0 registered, 0 hidden and 74 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 74 guests

Login Form