It is currently 22 Nov 2025, 21:27
   
Text Size

Bug Reports (snapshot builds)

Post MTG Forge Related Programming Questions Here

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

Re: Bug Reports (snapshot builds)

Postby tjtillman » 11 Aug 2016, 05:16

r31911

Something weird is going on with Kindly Stranger, it wants to transform randomly at times, both when I control it or when the CPU controls it, without mana being paid, nor Delirium being met. It not only does it incorrectly and seemingly randomly, but it triggers several times. It happened a few times before, but I wasn't paying close enough attention to the conditions. The most recent time I couldn't find anything unusual that would've caused it to happen, but I did dump the game state, shown here:

Code: Select all
humanlife=12
ailife=8
activeplayer=ai
activephase=COMBAT_BEGIN
humancardsinhand=Bound by Moonsilver;Certain Death
humancardsinlibrary=Swamp;Farbog Revenant;Explosive Apparatus;Olivia's Dragoon;Bloodhall Priest;Swamp;Dark Salvation;Swamp;Mountain;Plains;Steadfast Cathar;Gisela, the Broken Blade;Asylum Visitor;Swamp;Plains;Stone Quarry;Swamp;Swamp;Plains;Heir of Falkenrath;Thalia, Heretic Cathar;Plains;Subjugator Angel;Campaign of Vengeance;Thraben Inspector;Collective Effort
humancardsingraveyard=Thraben Foulbloods;Murderous Compulsion
humancardsinplay=Plains;Swamp;Field Creeper|Tapped:True;Plains;Plains;Thraben Inspector;Kindly Stranger;Dawn Gryff|Tapped:True;Sigardian Priest;Plains
humancardsinexile=
humancardsincommand=
aicardsinhand=
aicardsinlibrary=Guardian of Pilgrims;Swamp;Certain Death;Graf Rats;Rancid Rats;Swamp;Unruly Mob;Stone Quarry;True-Faith Censer;Plains;Devilthorn Fox;Swamp;Geist-Fueled Scarecrow;Desperate Sentry;Midnight Scavengers;Dauntless Cathar;Steadfast Cathar;Sanitarium Skeleton;Eternal Scourge;Whispers of Emrakul;Plains;Swamp;Plains;Swamp;Lunarch Mantle;Plains
aicardsingraveyard=Murder;Sigardian Priest;Plains;Plains
aicardsinplay=Swamp;Vampire Cutthroat;Plains;Swamp;Bound by Moonsilver;Hanweir Battlements;Pious Evangel;Thraben Foulbloods;Dawn Gryff;Geier Reach Sanitarium
aicardsinexile=
aicardsincommand=
tjtillman
 
Posts: 202
Joined: 16 Sep 2013, 17:47
Has thanked: 0 time
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 11 Aug 2016, 12:45

Darkholme wrote:Description: Went to start a custom draft with a fantasy block.
Code: Select all
(3) Casual '96-'03 B, 5/10/7ED, Meta-JoinedSet(5ED 6ED 7ED)CORE Meta-JoinedSet(TMP STH EXO)TEMP Meta-JoinedSet(NMS PCY INV INV INV PLS APC APC ODY ODY ODY ODY ODY TOR TOR TOR JUD)EXP
and the program threw an array out of bounds error when I picked my set combination of TEMP EXP CORE.

Thought maybe it was behaving differently than I expected with the duplicate sets, tried it again without them
Code: Select all
(3) Casual '96-'03 B, 5/10/7ED, Meta-JoinedSet(5ED 6ED 7ED)CORE Meta-JoinedSet(TMP STH EXO)TEMP Meta-JoinedSet(NMS PCY INV PLS APC ODY TOR JUD)EXP
and got the same error.

Throws the same error when I pick CORE/CORE/CORE.
It looks like you are saying there should be 5 boosters, but only giving 3 "sets" to choose from. I'm guessing it's not setup to expand the draft if 3 "sets" are available.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby gamerfreak12345 » 11 Aug 2016, 19:47

Hi,

As of snapshot 31951, Draconic Roar no longer gives the option to reveal a Dragon from your hand when it is flashed back with Goblin Dark-Dwellers. It used to work properly before.

Thanks,
gamerfreak12345
 
Posts: 10
Joined: 11 May 2016, 22:07
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Shukal » 11 Aug 2016, 22:37

r31951

Prossh, Skyraider of Kher doesn't spawn any Kobolds of Kher Keep tokens when cast from the command zone.
Shukal
 
Posts: 16
Joined: 03 Mar 2015, 16:23
Has thanked: 13 times
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby friarsol » 12 Aug 2016, 02:44

r31951
AI attacked with an 8/3 creature (with a Bestowed Aura on it). I blocked with a 4/4 first striker. The Bestowed creature did not "unbestow" as the attacking creature died.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 12 Aug 2016, 06:56

Shukal wrote:r31951

Prossh, Skyraider of Kher doesn't spawn any Kobolds of Kher Keep tokens when cast from the command zone.
fixed it in r31952.
was a problem with MayPlay not setting the TotalManaSpent value for the original.

that should fix: Jeleva, Nephalia's Scourge, Marath, Will of the Wild and Prossh, Skyraider of Kher
===
friarsol wrote:r31951
AI attacked with an 8/3 creature (with a Bestowed Aura on it). I blocked with a 4/4 first striker. The Bestowed creature did not "unbestow" as the attacking creature died.
fixed it in r31953:
had a problem in the Flash check for Bestow, it should only animate/unanimate if it's not already animated.

the better question is why AI does attack with 8/3 when you have a 4/4 with First strike?

===
gamerfreak12345 wrote:Hi,

As of snapshot 31951, Draconic Roar no longer gives the option to reveal a Dragon from your hand when it is flashed back with Goblin Dark-Dwellers. It used to work properly before.

Thanks,
fixed in r31954.
Problem was a check with MayPlay, which causes the spell to not be played.

i might do a a rewrite for the DragonPresence cards.
there is currently a "ConditionDragonPresence" but its not used.

probably doing the whole DragonPresence more keywordy would be nice.
===
hm i noticed that DragonPresence currently does not work with CardTextChange effects like Artificial Evolution ... ( or does it?)
i try to rewrote the code a bit to make it working.
Last edited by Hanmac on 12 Aug 2016, 11:25, edited 1 time in total.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby Darkholme » 12 Aug 2016, 09:40

friarsol wrote:It looks like you are saying there should be 5 Packs, but only giving 3 "Sets" to choose from. I'm guessing it's not setup to expand the draft if 3 "Sets" are available.
Huh. It deals with 2 Sets and 3 Packs just fine, so I just assumed it would work. I did some testing, however, and got some interesting results.

Forge Beta: 08-02-2016 ver 1.5.55
Not sure the release #. You guys should include that on the "about" page in the game.

#A) 1 Sets, N Packs
Code: Select all
(1) Complete Kamigawa B, 5/6/CHK, Meta-JoinedSet(CHK BOK SOK)CKAM
Findings: Works, No Menu, As Expected.

#B) 2-3 Sets, 3 Packs
Code: Select all
(3) Casual '96-'03 B, 3/10/7ED, Meta-JoinedSet(5ED 6ED 7ED)CORE Meta-JoinedSet(TMP STH EXO)TEMP Meta-JoinedSet(NMS PCY INV PLS APC ODY TOR JUD)EXP
(2) Cores 3A (M15, ORI), 3/7/M15, M15 ORI
Findings: Works as Expected.

#C) 4+ Sets, 3 Packs
Code: Select all
(2) Cores 3B (M15, ORI), 3/7/M15, M15 ORI M12 M13 M14
Findings: No Crash, But not all potential combinations show up in the list.

#D) 2-3 Sets, <3 Packs
Code: Select all
(2) Cores 3C (M15, ORI), 1/7/M15, M15 ORI
(2) Cores 3D (M15, ORI), 2/7/M15, M15 ORI M13
Findings: No Crash, Menu Assumes 3 Packs Regardless of Value Given, In Draft Ignores the Extra Packs Beyond What's Listed.

#E) 4 Sets, <3 Packs
Code: Select all
(2) Cores 3E (M15, ORI), 2/7/M15, M15 ORI M13 M14
Findings: All the Problems of Both C&D

#F) 2+ Sets, >3 Packs
Code: Select all
(2) Cores 3F (M15, ORI), 4/7/M15, M15 ORI
(2) Cores 3G (M15, ORI), 5/7/M15, M15 ORI
(2) Cores 3H (M15, ORI), 4/7/M15, M15 ORI M14 M13
(2) Cores 3I (M15, ORI), 5/7/M15, M15 ORI M12 M13 M14
Findings: Menu Assumes 3 Packs Regardless of Value Given, Breaks Prior to Drafting because of Unselected Packs. Doesn't Matter if # Sets matches # Packs.

Summarized Findings
1. If you include more than 3 Sets, not all of the combinations show up properly, the menu doesn't generate properly.
2. If you call for less than 3 Packs, and more than one set, the menu doesn't generate properly, and it assumes 3 Packs. When you go to draft, it ignores any extra selected Packs.
3. If you call for more than 3 Packs, and more than one set, the menu only accounts for 3 of them, and then the draft crashes when you try to do it.

Inferred Conclusion
∴ The pack-selection menu is hardcoded to assume 3 packs rather than drawing from the block/fantasy block document as you would expect, and does not function properly if any other number of packs is asked for. Additionally, the function it uses for making the pack combinations doesn't work properly, as it misses some of the combinations.
User avatar
Darkholme
 
Posts: 49
Joined: 09 Mar 2015, 19:12
Has thanked: 0 time
Been thanked: 11 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 12 Aug 2016, 13:43

Hanmac wrote:the better question is why AI does attack with 8/3 when you have a 4/4 with First strike?
It wasn't first striking at the time he declared it, I just simplified the combat scenario since it didn't matter.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 12 Aug 2016, 16:26

friarsol wrote:
Hanmac wrote:the better question is why AI does attack with 8/3 when you have a 4/4 with First strike?
It wasn't first striking at the time he declared it, I just simplified the combat scenario since it didn't matter.
ok i thought that was just another AI combat bug.

===
i also updated the DragonPresence cards, feel free to check if they are still working.

i mostly tested Scaleguard Sentinels and Draconic Roar, but the others should work the same.

they are now also working when Artificial Evolution does change Dragon to something else.
(it does look what cards are revealed or where on the battlefield the moment when the Spell was cast. Thanks to LastStateBattlefield)

PS: i noticed that StaticAbility has with checkConditions its own list of checks, but imo it should use CardTraitBase.meetsCommonRequirements if able.
maybe i will do another rewrite later.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby gamerfreak12345 » 12 Aug 2016, 17:58

I'm sure someone is aware of this alarming bug, but in snapshot 31969 creatures seem to be able to be played out of the graveyard at all times. Not sure what's going on there.

For a more mundane bug, Goblin Dark-Dwellers flashback ability doesn't work correctly with spells that have X in the casting cost. When flashing back such spells for free, X should be set to zero. Instead the game uses the value of X that was used to cast that card before. In the case of Chord of Calling, the "Choose a value for X" dialogue box pops up.
gamerfreak12345
 
Posts: 10
Joined: 11 May 2016, 22:07
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Hanmac » 12 Aug 2016, 19:17

gamerfreak12345 wrote:I'm sure someone is aware of this alarming bug, but in snapshot 31969 creatures seem to be able to be played out of the graveyard at all times. Not sure what's going on there.

For a more mundane bug, Goblin Dark-Dwellers flashback ability doesn't work correctly with spells that have X in the casting cost. When flashing back such spells for free, X should be set to zero. Instead the game uses the value of X that was used to cast that card before. In the case of Chord of Calling, the "Choose a value for X" dialogue box pops up.
yeah the first thing was broken by me.
had to get it working right, that a Spell can't be casted normally, but can be with Goblin Dark-Dwellers or with MayPlay.

for Chord of Calling, yeah it had Announce X without needing it, thats why it did ask even if it should not. i fixed the card, and also add a fix that the xPaid value is reset in such case. (because otherwise it does use the old value for it)
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby allas » 13 Aug 2016, 20:51

I get a crash every time I enter the spell shop in quest mode :

NullPointerException | Open
Code: Select all
Forge Version:    1.5.56-SNAPSHOT-r31951
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_92 Oracle Corporation

java.lang.NullPointerException
   at java.util.TreeMap.getEntry(Unknown Source)
   at java.util.TreeMap.containsKey(Unknown Source)
   at forge.itemmanager.views.ImageView.updateLayout(ImageView.java:587)
   at forge.itemmanager.views.ImageView.onRefresh(ImageView.java:557)
   at forge.itemmanager.views.ItemView.refresh(ItemView.java:160)
   at forge.itemmanager.ItemManager.updateView(ItemManager.java:1054)
   at forge.itemmanager.ItemManager.setPoolImpl(ItemManager.java:498)
   at forge.itemmanager.ItemManager.setPool(ItemManager.java:483)
   at forge.screens.deckeditor.controllers.CEditorQuestCardShop.update(CEditorQuestCardShop.java:256)
   at forge.screens.deckeditor.CDeckEditorUI.setCurrentEditorController(CDeckEditorUI.java:269)
   at forge.screens.deckeditor.CDeckEditorUI.setEditorController(CDeckEditorUI.java:124)
   at forge.GuiDesktop.showSpellShop(GuiDesktop.java:264)
   at forge.quest.QuestUtil.showSpellShop(QuestUtil.java:483)
   at forge.screens.home.quest.CSubmenuChallenges$1.run(CSubmenuChallenges.java:54)
   at forge.toolbox.FLabel._doMouseAction(FLabel.java:314)
   at forge.toolbox.FLabel.access$1300(FLabel.java:55)
   at forge.toolbox.FLabel$6.onLeftClick(FLabel.java:352)
   at forge.toolbox.FMouseAdapter.mouseReleased(FMouseAdapter.java:246)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
Edit : I've removed the preferences files and it's fine now.
allas
 
Posts: 13
Joined: 15 Feb 2015, 21:59
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby xbon » 14 Aug 2016, 08:21

r31980
I played Ivy Elemental from hand paying 6 for X, it entered battle field as 0/0 and self-destructed. there's nothing stopping counters being placed on cards.

also this

Description: attack w/ bonebreaker giant and obstinate baloth, opponent defended with Goblin Turncoat, I have two Primal Rage in play so my monsters have Trample,Trample.

StackOverflowError | Open
Code: Select all
Forge Version:    1.5.56-SNAPSHOT-r31980
Operating System: Windows 10 10.0 amd64
Java Version:     1.8.0_101 Oracle Corporation

java.lang.StackOverflowError
   at forge.game.card.Card.getEquippedBy(Card.java:2293)
   at forge.game.card.Card.isEquippedBy(Card.java:2308)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1785)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:334)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:679)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(Compute
... (truncated)
xbon
 
Posts: 124
Joined: 04 Jun 2013, 22:52
Has thanked: 18 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 14 Aug 2016, 08:40

xbon: fixed the thing with Ivy Elemental, was totally my fault, i had the reset for xPaid not specific enough. (now its for Spells, that should fix the problem)

and thanks for the stacktrace of that crash.
yeah the problem does happen with Effects like: "Sacrifice X: regenerate Y"
the AI currently got confused when your creatures has trample.
i can look at it, but may not be able to fix that.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby tjtillman » 14 Aug 2016, 21:46

r31929
Something similar to the Kindly Stranger issue ended up happening again with Cult of the Waxing Moon. I had it out, CPU had Kessig Prowler, pass to CPU's turn. On CPU's upkeep it activated Kessig Prowler's transform ability, somehow triggering my Cult of the Waxing Moon, but not just once, hundreds of times, effectively infintessimally.

Game State here:
Code: Select all
humanlife=13
ailife=13
activeplayer=ai
activephase=UPKEEP
humancardsinhand=Lunarch Mantle;It of the Horrid Swarm
humancardsinlibrary=Geier Reach Sanitarium;Silverstrike;Faithbearer Paladin;Plains;Plains;Mockery of Nature;Foul Emissary;Forest;Plains;Backwoods Survivalists;Plains;Inquisitor's Ox;Forest;Prey Upon;Thraben Inspector;Forest;Plains;Forest;Expose Evil;Emrakul, the Promised End;Sanctifier of Souls;Gnarlwood Dryad;Faith Unbroken;Plains
humancardsingraveyard=Declaration in Stone;Terrarion
humancardsinplay=Forest;Plains;Ulvenwald Captive;Forest;Sigardian Priest;Hanweir Militia Captain;Plains;Dawn Gryff;Forest;Cult of the Waxing Moon;Plains;t:Human Cleric,P:1,T:1,Cost:no cost,Types:Creature-Human-Cleric,Keywords:,Image:wb_1_1_human_cleric;Forest;t:Human Cleric,P:1,T:1,Cost:no cost,Types:Creature-Human-Cleric,Keywords:,Image:wb_1_1_human_cleric|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True;t:Wolf,P:2,T:2,Cost:no cost,Types:Creature-Wolf,Keywords:,Image:g_2_2_wolf_soi|SummonSick:True
humancardsinexile=
humancardsincommand=
aicardsinhand=Ulvenwald Captive
aicardsinlibrary=Swamp;Weirding Wood;Forest;Swamp;Grim Flayer;Swamp;Forest;Gavony Unhallowed;Hanweir Battlements;Rancid Rats;Boon of Emrakul;Swamp;Swamp;Grapple with the Past;Grim Flayer;Forest;Crow of Dark Tidings;Forest;Succumb to Temptation;Swamp;Vampire Noble;Quilled Wolf;Gnarlwood Dryad;Backwoods Survivalists;Pale Rider of Trostad
aicardsingraveyard=Borrowed Malevolence
aicardsinplay=Swamp|Tapped:True;Forest|Tapped:True;Swamp|Tapped:True;Slayer's Plate;Forest|Tapped:True;Gavony Unhallowed;Forest|Tapped:True;Equestrian Skill;Swamp;Watcher in the Web;Twins of Maurer Estate;Kessig Prowler
aicardsinexile=Ghoulcaller's Accomplice
aicardsincommand=
tjtillman wrote:r31911

Something weird is going on with Kindly Stranger, it wants to transform randomly at times, both when I control it or when the CPU controls it, without mana being paid, nor Delirium being met. It not only does it incorrectly and seemingly randomly, but it triggers several times. It happened a few times before, but I wasn't paying close enough attention to the conditions. The most recent time I couldn't find anything unusual that would've caused it to happen, but I did dump the game state, shown here:

Code: Select all
humanlife=12
ailife=8
activeplayer=ai
activephase=COMBAT_BEGIN
humancardsinhand=Bound by Moonsilver;Certain Death
humancardsinlibrary=Swamp;Farbog Revenant;Explosive Apparatus;Olivia's Dragoon;Bloodhall Priest;Swamp;Dark Salvation;Swamp;Mountain;Plains;Steadfast Cathar;Gisela, the Broken Blade;Asylum Visitor;Swamp;Plains;Stone Quarry;Swamp;Swamp;Plains;Heir of Falkenrath;Thalia, Heretic Cathar;Plains;Subjugator Angel;Campaign of Vengeance;Thraben Inspector;Collective Effort
humancardsingraveyard=Thraben Foulbloods;Murderous Compulsion
humancardsinplay=Plains;Swamp;Field Creeper|Tapped:True;Plains;Plains;Thraben Inspector;Kindly Stranger;Dawn Gryff|Tapped:True;Sigardian Priest;Plains
humancardsinexile=
humancardsincommand=
aicardsinhand=
aicardsinlibrary=Guardian of Pilgrims;Swamp;Certain Death;Graf Rats;Rancid Rats;Swamp;Unruly Mob;Stone Quarry;True-Faith Censer;Plains;Devilthorn Fox;Swamp;Geist-Fueled Scarecrow;Desperate Sentry;Midnight Scavengers;Dauntless Cathar;Steadfast Cathar;Sanitarium Skeleton;Eternal Scourge;Whispers of Emrakul;Plains;Swamp;Plains;Swamp;Lunarch Mantle;Plains
aicardsingraveyard=Murder;Sigardian Priest;Plains;Plains
aicardsinplay=Swamp;Vampire Cutthroat;Plains;Swamp;Bound by Moonsilver;Hanweir Battlements;Pious Evangel;Thraben Foulbloods;Dawn Gryff;Geier Reach Sanitarium
aicardsinexile=
aicardsincommand=
tjtillman
 
Posts: 202
Joined: 16 Sep 2013, 17:47
Has thanked: 0 time
Been thanked: 2 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 46 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 46 users online :: 0 registered, 0 hidden and 46 guests (based on users active over the past 10 minutes)
Most users ever online was 9824 on 10 Nov 2025, 04:33

Users browsing this forum: No registered users and 46 guests

Login Form