Bug Reports (snapshot builds)
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Bug Reports (snapshot builds)
by Agetian » 12 Dec 2012, 17:46
Hunter Sliver does not work correctly for the AI when the AI tries to use the Provoke ability it grants to its Slivers (it says "Targeting error", my creatures untap if they're tapped, but they're not provoked to block). Here's an example test case:
- Code: Select all
ActivePlayer=AI
ActivePhase=Main1
HumanCardsInPlay=Hunter Sliver; Hunter Sliver
AICardsInPlay=Plated Sliver; Plated Sliver; Plated Sliver; Plated Sliver; Plated Sliver
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Sloth » 12 Dec 2012, 20:37
Fixed! Thanks Agetian.Agetian wrote:Skirk Alarmist appears to have an error in it - when you use it on a morphed creature, the card that goes to graveyard at the end of turn is Skirk Alarmist itself, not the morphed creature (tried on morphed Aphetto Alchemist).
The AI will use it correctly when there is a creature that can be killed. The AI doesn't want to use the triggered ability in your case and skips targeting.Agetian wrote:Hunter Sliver does not work correctly for the AI when the AI tries to use the Provoke ability it grants to its Slivers (it says "Targeting error", my creatures untap if they're tapped, but they're not provoked to block). Here's an example test case:
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Bug Reports (snapshot builds)
by Agetian » 13 Dec 2012, 05:37
Oh, OK... but why do the creatures I control get untapped in that case anyway?... It seems like the AI is using "half" of the ability or something, not sure what's going onSloth wrote:The AI will use it correctly when there is a creature that can be killed. The AI doesn't want to use the triggered ability in your case and skips targeting.

Thanks a lot for the fixes!!
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Agetian » 14 Dec 2012, 03:05
There was a bug with Necropotence but I fixed it, so nevermind if you've seen my report about that earlier. 
Here's an odd thing: One time AI played Exquisite Blood, and then during his cleanup step, for some reason a stack effect (with the same text as that card) appears and is impossible to resolve. I can't reproduce it again because no matter how many times I try it again, it works fine in a simulated scenario. Not sure what was up with it and what it was connected with...
- Agetian

Here's an odd thing: One time AI played Exquisite Blood, and then during his cleanup step, for some reason a stack effect (with the same text as that card) appears and is impossible to resolve. I can't reproduce it again because no matter how many times I try it again, it works fine in a simulated scenario. Not sure what was up with it and what it was connected with...
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by swordshine » 14 Dec 2012, 04:33
The spelldescription of Slaughter Games should be "Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them."
- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Re: Bug Reports (snapshot builds)
by swordshine » 14 Dec 2012, 05:14
Surgical Extraction also has a text of "any number of cards". I think the correct script should be:
- Surgical Extraction | Open
- Code: Select all
Name:Surgical Extraction
ManaCost:PB
Types:Instant
Text:no text
A:SP$ ChangeZone | Cost$ PB | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Card.nonBasic | TgtPrompt$ Choose target card in a graveyard | Optional$ True | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ ExileYard | SpellDescription$ Choose target card in a graveyard other than a basic land card. Search its owner's graveyard, hand, and library for any number of cards with the same name as that card and exile them. Then that player shuffles his or her library.
SVar:ExileYard:DB$ ChangeZone | ChangeType$ Remembered.sameName | Origin$ Graveyard | DefinedPlayer$ TargetedController | Chooser$ You | Destination$ Exile | ChangeNum$ NumInYard | Hidden$ True | SubAbility$ ExileHand | StackDescription$ Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
SVar:ExileHand:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | DefinedPlayer$ TargetedController | ChangeType$ Remembered.sameName | ChangeNum$ NumInHand | Chooser$ You | SubAbility$ ExileLib | StackDescription$ None
SVar:ExileLib:DB$ ChangeZone | Origin$ Library | Destination$ Exile | DefinedPlayer$ TargetedController | ChangeType$ Remembered.sameName | ChangeNum$ NumInLib | Chooser$ You | Shuffle$ True | StackDescription$ None | SubAbility$ DBCleanup
SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True
SVar:NumInLib:TargetedController$CardsInLibrary
SVar:NumInHand:TargetedController$CardsInHand
SVar:NumInYard:TargetedController$CardsInGraveyard
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/surgical_extraction.jpg
SetInfo:NPH|Rare|http://magiccards.info/scans/en/nph/74.jpg
Oracle:({B/P} can be paid with either {B} or 2 life.)\nChoose target card in a graveyard other than a basic land card. Search its owner's graveyard, hand, and library for any number of cards with the same name as that card and exile them. Then that player shuffles his or her library.
End
- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Re: Bug Reports (snapshot builds)
by moomarc » 14 Dec 2012, 06:21
swordshine wrote:Surgical Extraction also has a text of "any number of cards". I think the correct script should be:
- Surgical Extraction | Open
- Code: Select all
Name:Surgical Extraction
ManaCost:PB
Types:Instant
Text:no text
A:SP$ ChangeZone | Cost$ PB | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Card.nonBasic | TgtPrompt$ Choose target card in a graveyard | Optional$ True | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ ExileYard | SpellDescription$ Choose target card in a graveyard other than a basic land card. Search its owner's graveyard, hand, and library for any number of cards with the same name as that card and exile them. Then that player shuffles his or her library.
SVar:ExileYard:DB$ ChangeZone | ChangeType$ Remembered.sameName | Origin$ Graveyard | DefinedPlayer$ TargetedController | Chooser$ You | Destination$ Exile | ChangeNum$ NumInYard | Hidden$ True | SubAbility$ ExileHand | StackDescription$ Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
SVar:ExileHand:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | DefinedPlayer$ TargetedController | ChangeType$ Remembered.sameName | ChangeNum$ NumInHand | Chooser$ You | SubAbility$ ExileLib | StackDescription$ None
SVar:ExileLib:DB$ ChangeZone | Origin$ Library | Destination$ Exile | DefinedPlayer$ TargetedController | ChangeType$ Remembered.sameName | ChangeNum$ NumInLib | Chooser$ You | Shuffle$ True | StackDescription$ None | SubAbility$ DBCleanup
SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True
SVar:NumInLib:TargetedController$CardsInLibrary
SVar:NumInHand:TargetedController$CardsInHand
SVar:NumInYard:TargetedController$CardsInGraveyard
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/surgical_extraction.jpg
SetInfo:NPH|Rare|http://magiccards.info/scans/en/nph/74.jpg
Oracle:({B/P} can be paid with either {B} or 2 life.)\nChoose target card in a graveyard other than a basic land card. Search its owner's graveyard, hand, and library for any number of cards with the same name as that card and exile them. Then that player shuffles his or her library.
End
Thanks swordshine. Both changes have been applied.swordshine wrote:The spelldescription of Slaughter Games should be "Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them."
-Marc
-
moomarc - Pixel Commander
- Posts: 2091
- Joined: 04 Jun 2010, 15:22
- Location: Johannesburg, South Africa
- Has thanked: 371 times
- Been thanked: 372 times
Re: Bug Reports (snapshot builds)
by friarsol » 14 Dec 2012, 15:58
It looks like quest opponents no longer list their difficulty? Leading to the confusing scenario I have right now where I can play Hobbes (assumably hard), Radioactive Man (assumably hard), and Hobbes (assumably expert). But the two Hobbes are in distinguishable aside from their positioning.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by Agetian » 14 Dec 2012, 17:27
A minor thing but still interesting - if Fecundity and Ashnod's Altar are in play, and you have Saproling Cluster and get a Saproling out, if you activate Ashnod's Altar on Saproling, the effect on Fecundity does not trigger immediately, but it triggers when you switch the phase. Is it intended?.. (I'm pretty sure that it's a bug though)
Test case:
Test case:
- Code: Select all
HumanCardsInPlay=Ashnod's Altar;Saproling Cluster;Swamp;Swamp;Swamp;Swamp;Swamp;Forest;Forest;Forest;Forest;Forest;Fecundity
HumanCardsInHand=Plains
ActivePlayer=Human
Last edited by Agetian on 14 Dec 2012, 17:30, edited 1 time in total.
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by friarsol » 14 Dec 2012, 17:29
No it's an odd corner case with Triggers and Mana Abilities.Agetian wrote:A minor thing but still interesting - if Fecundity and Ashnod's Altar are in play, and you have Saproling Cluster and get a Saproling out, if you activate Ashnod's Altar on Saproling, the effect on Fecundity does not trigger immediately, but it triggers when you switch the phase. Is it intended?..
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by Agetian » 14 Dec 2012, 17:31
Umm is it an easy enough fix or is it a difficult bug to squash?.. It would most surely break some constructed decks of old times that are based on effects like that.
P.S. If it makes any difference, it's interesting but other similar effects seem to work correctly - for instance, if I sacrifice a token as an extra cost of Artillerize, it correctly triggers immediately. Also, smashing a token with a Lightning Bolt makes Fecundity trigger correctly and on time.
- Agetian
P.S. If it makes any difference, it's interesting but other similar effects seem to work correctly - for instance, if I sacrifice a token as an extra cost of Artillerize, it correctly triggers immediately. Also, smashing a token with a Lightning Bolt makes Fecundity trigger correctly and on time.
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by friarsol » 14 Dec 2012, 22:31
That's why I called it a corner case. I'm not sure what the hangup is, but basically the trigger queue isn't being checked when you activate a mana ability outside trying to play a SpellAbility. Basically, when a mana ability finishes resolving, and we aren't in the middle of trying to cast some other spell, then we need the triggers to run immediately.Agetian wrote:Umm is it an easy enough fix or is it a difficult bug to squash?.. It would most surely break some constructed decks of old times that are based on effects like that.
P.S. If it makes any difference, it's interesting but other similar effects seem to work correctly - for instance, if I sacrifice a token as an extra cost of Artillerize, it correctly triggers immediately. Also, smashing a token with a Lightning Bolt makes Fecundity trigger correctly and on time.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by friarsol » 14 Dec 2012, 22:33
I cast Clone and choose Changeling Hero, but wasn't asked to Champion a creature. I'm guessing this has to do with the way Champion is written up.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by ArsenalNut » 14 Dec 2012, 23:14
I would start by looking at the difference between how mana abilities and other spell abilities are handled by the method that adds things to the stack. If I remember correctly, mana abilities just resolve immediately which probably impacts the timing.friarsol wrote:That's why I called it a corner case. I'm not sure what the hangup is, but basically the trigger queue isn't being checked when you activate a mana ability outside trying to play a SpellAbility. Basically, when a mana ability finishes resolving, and we aren't in the middle of trying to cast some other spell, then we need the triggers to run immediately.Agetian wrote:Umm is it an easy enough fix or is it a difficult bug to squash?.. It would most surely break some constructed decks of old times that are based on effects like that.
P.S. If it makes any difference, it's interesting but other similar effects seem to work correctly - for instance, if I sacrifice a token as an extra cost of Artillerize, it correctly triggers immediately. Also, smashing a token with a Lightning Bolt makes Fecundity trigger correctly and on time.
Similar things happen when you tap a mana source like City of Brass to pay for a cost but cancel before the cost is paid. The City of Brass will untap from the cancellation but the "taps for mana" trigger will still fires.
So many cards, so little time
-
ArsenalNut - Posts: 512
- Joined: 08 Jul 2011, 03:49
- Has thanked: 27 times
- Been thanked: 121 times
Re: Bug Reports (snapshot builds)
by Agetian » 16 Dec 2012, 17:40
Today while I was experimenting with ante-related stuff and discussing it with my friend something peculiar struck me: in Draft mode, I think there should be a rule that all cards in the pack that are "ante" cards (and Draft is not played for ante) should be replaced with equivalent cards of the same rarity, but that's currently not done... Not a huge deal, but just thought it'd be nice to have that at least as an option (or something that toggles on/off with the ante).
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Who is online
Users browsing this forum: No registered users and 19 guests