It is currently 26 Aug 2025, 20:33
   
Text Size

Bug Reports (snapshot builds)

Post MTG Forge Related Programming Questions Here

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

Re: Bug Reports (snapshot builds)

Postby Hanmac » 16 Jun 2016, 18:14

@friarsol: thanks for the idea of using LKI i need to see how i can do that.
Currently i have no idea how to do that :/

===
other thing, did play a game Archenemy, i was the Enemy.
one of my opponents had Platinum Angel,
now two other players where already under 0 life but didn't lose the game.

the Angel should only prevent the controller from losing the game, not the other team mates.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 17 Jun 2016, 08:07

i did Dulcet Sirens but i am not happy with it yet.
i did try it with a Effect, but i need to put the targeted opponent onto the creature, otherwise the AttackRequirement doesn't find it.

Code: Select all
Name:Dulcet Sirens
ManaCost:2 U
Types:Creature Siren
PT:1/3
K:Morph:U

A:AB$ Pump | Cost$ U T | ValidTgts$ Creature | IsCurse$ True | TgtPrompt$ Select target creature | SubAbility$ DBAnimate | SpellDescription$ Target creature attacks target opponent this turn if able. | StackDescription$ SpellDescription

SVar:DBAnimate:DB$ Animate | ValidTgts$ Opponent | Defined$ ParentTarget | RememberObjects$ TargetedPlayer | HiddenKeywords$ CARDNAME attacks specific player each combat if able:Remembered

SVar:RemAIDeck:True
SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/dulcet_sirens.jpg
Oracle:{U}, {T}: Target creature attacks target opponent this turn if able.\nMorph {U} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)
first part: there is currently no way to remove the Remembered part from the creature. I was thinking in adding Defined Targets for CleanUpEffect.
also it needs DelayedTrigger or Effect for when the Creature leaves the battlefield or at the end of turn. Also it might have complications for if the Creature already has that Player in Remembered :/

second part: AI doesnt understand the Attack part ... i got:
"AI Attack declaration invalid, defaulting to: {Moonrise Intruder (154)=Robin}"
that might get to other complications
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 17 Jun 2016, 11:32

Hanmac wrote:first part: there is currently no way to remove the Remembered part from the creature. I was thinking in adding Defined Targets for CleanUpEffect.
also it needs DelayedTrigger or Effect for when the Creature leaves the battlefield or at the end of turn. Also it might have complications for if the Creature already has that Player in Remembered :/

second part: AI doesnt understand the Attack part ... i got:
"AI Attack declaration invalid, defaulting to: {Moonrise Intruder (154)=Robin}"
that might get to other complications
Just because they are on this doesn't mean they are doable, even with a lot of messing around. The sirens definitely fit into the category of "Probably not worth it to attempt due to AI and other reasons" as you say. Also, it's not really a bug report, we should avoid cluttering up this thread. A question like this belongs more in the Card Development questions.
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 friarsol » 20 Jun 2016, 18:46

r31330

Spellwild Ouphe controlled by the AI doesn't reduce my spells when targeting it.
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 Marek14 » 22 Jun 2016, 15:02

Could Lim-Dul's Vault be changed to use the same dialogue for reordering your library as, say, Sensei's Divining Top?
Marek14
Tester
 
Posts: 2773
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 303 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 23 Jun 2016, 20:05

I noticed that as of r31347, the AI began to mulligan down to 0 cards quite commonly (commonly enough that I've noticed it three times in about 30 minutes of play). Could it be related to the change in r31345?..

- Agetian
Agetian
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 23 Jun 2016, 20:50

Agetian wrote:I noticed that as of r31347, the AI began to mulligan down to 0 cards quite commonly (commonly enough that I've noticed it three times in about 30 minutes of play). Could it be related to the change in r31345?..

- Agetian
Probably i'll check it out later.
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 Marek14 » 23 Jun 2016, 22:21

I can't play Marang River Prowler from graveyard. My only black permanent is Oubliette.

AI can repeatedly activate Slobad, Goblin Tinkerer without sacrificing an artifact.

Keeper of the Lens shows no text in the card panel.

Dwarven Shrine probably shouldn't let you redirect damage to planeswalkers when there is 0 damage to be dealt.
Marek14
Tester
 
Posts: 2773
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 303 times

Re: Bug Reports (snapshot builds)

Postby IronStar28 » 27 Jun 2016, 12:09

Description: A.I. declared blockers then it crashed

StackOverflowError | Open
Code: Select all
Forge Version:    1.5.53-SNAPSHOT-r31250
Operating System: Windows 10 10.0 x86
Java Version:     1.8.0_91 Oracle Corporation

java.lang.StackOverflowError
   at java.util.LinkedList$ListItr.<init>(Unknown Source)
   at java.util.LinkedList.listIterator(Unknown Source)
   at java.util.AbstractList.listIterator(Unknown Source)
   at java.util.AbstractSequentialList.iterator(Unknown Source)
   at forge.util.collect.FCollection.iterator(FCollection.java:220)
   at forge.game.zone.PlayerZoneBattlefield.getCards(PlayerZoneBattlefield.java:100)
   at forge.game.player.Player.getCardsIn(Player.java:1330)
   at forge.game.player.Player.getCardsIn(Player.java:1309)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:639)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1761)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:607)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:586)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat
... (truncated)
Attachments
Picture1.png
IronStar28
 
Posts: 1
Joined: 27 Jun 2016, 11:48
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby stormcat » 27 Jun 2016, 16:43

In Commander game, the system of checking number of lands has bug.
Ex)Tectonic Edge and Knight of the White Orchid
In spite of requirements are not met, their ability has been resolved.
Probably, it references by summing the number of all opponents lands.
stormcat
 
Posts: 361
Joined: 17 Jun 2015, 05:32
Has thanked: 0 time
Been thanked: 6 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 29 Jun 2016, 14:38

r31381:
@friarsol did try to fix Tree of Redemption
but ConditionPresent is not 100% perfect.

if you blink the Tree if a Cloud Shift or something similar, the exchange does still happen ... but should not.

same for Firemane Angel where i did try "IsPresent$ Card.Self | PresentZone$ Graveyard" and didn't work yet ...

we need something that does check if something hasn't moved from the zone, even if it got moved back.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 29 Jun 2016, 14:45

Hanmac wrote:r31381:
@friarsol did try to fix Tree of Redemption
but ConditionPresent is not 100% perfect.

if you blink the Tree if a Cloud Shift or something similar, the exchange does still happen ... but should not.

same for Firemane Angel where i did try "IsPresent$ Card.Self | PresentZone$ Graveyard" and didn't work yet ...

we need something that does check if something hasn't moved from the zone, even if it got moved back.
This is the same card ID + timestamp uniqueness issue. It's not really the "wrong" way to script it, just Forge needs to be more strict about checking uniqueness of cards.
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 » 29 Jun 2016, 15:24

@friarsol: ah good to know i will probably check that out and maybe try to add something like "StrictSelf" where it does check the timestamp too.

i could also have change "Self", but i thought it might broke to much, so its probably better to add something new (if thats okay for you guys)
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby gamerfreak12345 » 29 Jun 2016, 19:06

Hi, there is a bug with Dragonlord Silumgar.

Dragonlord Silumgar is supposed gain control of an opponent's creature "for as long as you control Dragonlord Silumgar". But using Malevolent Whispers to steal him for a turn does not give you back control of the creature he took.

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

Re: Bug Reports (snapshot builds)

Postby fmartel » 30 Jun 2016, 18:03

Description: [In a commander game, sacificing eldrazi spawn to pay colorless cost of Grove of the Guardian]

NullPointerException | Open
Code: Select all
Forge Version:    1.5.54-SNAPSHOT-r31383
Operating System: Windows 7 6.1 x86
Java Version:     1.8.0_45 Oracle Corporation

java.lang.NullPointerException
   at forge.view.arcane.PlayArea.selectCard(PlayArea.java:577)
   at forge.view.arcane.PlayArea.mouseLeftClicked(PlayArea.java:536)
   at forge.view.arcane.CardPanelContainer$2.mouseReleased(CardPanelContainer.java:165)
   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$1.doIntersectionPrivilege(Unknown Source)
   at java.security.ProtectionDomain$1.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$1.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)
fmartel
 
Posts: 281
Joined: 31 Dec 2013, 19:27
Location: Québec City
Has thanked: 8 times
Been thanked: 4 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 36 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 36 users online :: 0 registered, 0 hidden and 36 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 36 guests

Login Form