Page 2 of 5

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 10 Jan 2015, 03:10
by Swalker
Bug report: Theros draft

Description: Been getting these crashes every time I try a Theros or Theros block draft in Quest mode, for the past few versions. Always happens during the drafting; if I can make it through to deck building without a crash then the draft runs fine, but 90% of the time it crashes during the draft and I have to start over.


trying to put in the bug report text, but forum won't let me: "Your post looks too spamy for a new user, please remove off-site URLs."

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 10 Jan 2015, 03:59
by pfps
I'm a bit annoyed with the different ways to enter input - Prompt pane vs popups. I filed a bug report *and* I have a fix. However, this is a GUI change and maybe there should be some discussion of just what should be done. Where should this discussion take place?

peter

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 10 Jan 2015, 04:07
by drdev
pfps wrote:I'm a bit annoyed with the different ways to enter input - Prompt pane vs popups. I filed a bug report *and* I have a fix. However, this is a GUI change and maybe there should be some discussion of just what should be done. Where should this discussion take place?

peter
You can start your own topic if you want, but otherwise having it here is fine. Might I ask which inputs you think should be different? I'm aware of some yes/no popups that I eventually plan to make use the prompt instead if that's what you're referring to.

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 10 Jan 2015, 07:16
by Nekoatl
Description: The AI just summoned his first creature in a Vanguard game where he was using the Stonehewer Giant avatar.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.32-r28553M
Operating System: Windows 7 6.1 x86
Java Version:     1.8.0_25 Oracle Corporation

java.lang.NullPointerException
   at forge.game.card.Card.hasProperty(Card.java:3484)
   at forge.game.card.Card.isValid(Card.java:3472)
   at forge.game.ability.effects.CopyPermanentEffect.resolve(CopyPermanentEffect.java:111)
   at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1232)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1214)
   at forge.ai.ComputerUtil.playNoStack(ComputerUtil.java:252)
   at forge.ai.PlayerControllerAi.playSpellAbilityNoStack(PlayerControllerAi.java:302)
   at forge.game.trigger.WrappedAbility.resolve(WrappedAbility.java:412)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1232)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1214)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:467)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:972)
   at forge.game.GameAction.startGame(GameAction.java:1383)
   at forge.game.Match.startGame(Match.java:71)
   at forge.match.MatchUtil$2.run(MatchUtil.java:201)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 11 Jan 2015, 01:17
by Midori
I control Whip of Erebos.
When my Volcano Hellion shoots damage to my Spitemare or Boros Reckoner, i wont gain Life from Spitemare's or Boros Reckoner's Lifelink despite Rule 608.2g.

By the way, is it possible to increase the damage cap of Volcano Hellion, or change it so to be like an Spell with X in its casting cost?

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 11 Jan 2015, 02:37
by friarsol
Bundy wrote:Emblem of Elspeth, Knight-Errant only makes artifacts, enchantments and lands indestructible. Creatures don't get indestructible.
Can you say specifically why you think this? I just tried it and my creatures are listed as indestructible.

Edit: And they don't die when receiving lethal damage...

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 11 Jan 2015, 05:18
by pfps
drdev wrote:
pfps wrote:I'm a bit annoyed with the different ways to enter input - Prompt pane vs popups. I filed a bug report *and* I have a fix. However, this is a GUI change and maybe there should be some discussion of just what should be done. Where should this discussion take place?

peter
You can start your own topic if you want, but otherwise having it here is fine. Might I ask which inputs you think should be different? I'm aware of some yes/no popups that I eventually plan to make use the prompt instead if that's what you're referring to.
The place that I noticed it the most was with AEther vial. The triggered ability uses the prompt pane for confirmation, but the tap ability uses a popup when asking whether to search the hand.

I actually have a fix for the problem, which turned out to be simpler than I expected. The changes are in PlayerControllerHuman - confirmAction and similar. There are probably other places that should be changed as well.

I think that anything that asks a two-answer question should probably use the prompt pane.

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 11 Jan 2015, 05:26
by pfps
I just tried a double counter - two counterspells on the same spell. I thought that the first one would fizzle, as the spell being countered was not there on resolution. Is this a known problem?

The reason that I was looking at this was that I was trying to figure out what is causing the Hive Mind - Pact of Negation bug. This appears to be caused by overzealous use of resetTargets - the spell that the AI gets has no targets and the AI just lets it fizzle. I have a potential fix for this, but I worry that it will break other things.

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 11 Jan 2015, 07:02
by pfps
It looks as if canTargetSpellAbility does not check to see if the spell is on the stack. This is, I think, the base problem with counterspells not fizzling if the spell they are targeting has already been countered.

Is there an easy way to see whether a spell is on the stack?

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 11 Jan 2015, 12:36
by laxika
Description: Got this while closed the Spell Shop. (I was on Home.)

IllegalArgumentException | Open
Code: Select all
Forge Version:    1.5.32-r28553M
Operating System: Mac OS X 10.10 x86_64
Java Version:     1.8.0_25 Oracle Corporation

java.lang.IllegalArgumentException: illegal component position
   at java.awt.Container.addImpl(Container.java:1098)
   at java.awt.Container.add(Container.java:1003)
   at forge.gui.framework.DragCell.addDoc(DragCell.java:275)
   at forge.screens.deckeditor.controllers.CEditorQuest.resetUIChanges(CEditorQuest.java:304)
   at forge.screens.deckeditor.CDeckEditorUI.canSwitchAway(CDeckEditorUI.java:88)
   at forge.screens.deckeditor.VDeckEditorUI.onClosing(VDeckEditorUI.java:63)
   at forge.gui.framework.FScreen.onClosing(FScreen.java:196)
   at forge.view.FNavigationBar.closeTab(FNavigationBar.java:152)
   at forge.view.FNavigationBar.access$1100(FNavigationBar.java:27)
   at forge.view.FNavigationBar$NavigationTab$CloseButton$1.mouseReleased(FNavigationBar.java:482)
   at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
   at java.awt.Component.processMouseEvent(Component.java:6525)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
   at java.awt.Component.processEvent(Component.java:6290)
   at java.awt.Container.processEvent(Container.java:2234)
   at java.awt.Component.dispatchEventImpl(Component.java:4881)
   at java.awt.Container.dispatchEventImpl(Container.java:2292)
   at java.awt.Component.dispatchEvent(Component.java:4703)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
   at java.awt.Container.dispatchEventImpl(Container.java:2278)
   at java.awt.Window.dispatchEventImpl(Window.java:2739)
   at java.awt.Component.dispatchEvent(Component.java:4703)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
   at java.awt.EventQueue.access$400(EventQueue.java:97)
   at java.awt.EventQueue$3.run(EventQueue.java:697)
   at java.awt.EventQueue$3.run(EventQueue.java:691)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
   at java.awt.EventQueue$4.run(EventQueue.java:719)
   at java.awt.EventQueue$4.run(EventQueue.java:717)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 12 Jan 2015, 04:52
by Plasmatic
Hello! Take from Give//Take doesn't seem to be working properly, as all the +1/+1 counters are removed but I only get one draw at most regardless of the number of counters removed (and no draw if the creature had no counters).

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 12 Jan 2015, 12:02
by Mattias
Description: When simulating bot vs bot in Alara block draft I got this several time, each time a Foil Hellkite Hatchling was on the stack. Game refused to continue from that point and a restart was needed.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.31-r28300Mu (mixed revisions detected; please update from the root directory)
Operating System: Windows 7 6.1 x86
Java Version:     1.7.0_25 Oracle Corporation

java.lang.NullPointerException
   at forge.game.card.Card.hasProperty(Card.java:4827)
   at forge.game.card.Card.isValid(Card.java:3392)
   at forge.game.GameObject.isValid(GameObject.java:26)
   at forge.game.card.CardPredicates$13.apply(CardPredicates.java:151)
   at forge.game.card.CardPredicates$13.apply(CardPredicates.java:148)
   at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
   at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
   at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
   at forge.util.FCollection.<init>(FCollection.java:35)
   at forge.game.card.CardCollection.<init>(CardCollection.java:61)
   at forge.game.card.CardLists.filter(CardLists.java:229)
   at forge.game.card.CardLists.getValidCards(CardLists.java:169)
   at forge.game.staticability.StaticAbilityContinuous.getAffectedCards(StaticAbilityContinuous.java:661)
   at forge.game.staticability.StaticAbilityContinuous.applyContinuousAbility(StaticAbilityContinuous.java:58)
   at forge.game.staticability.StaticAbility.applyAbility(StaticAbility.java:219)
   at forge.game.GameAction.checkStaticAbilities(GameAction.java:578)
   at forge.game.GameAction.checkStaticAbilities(GameAction.java:530)
   at forge.game.GameAction.changeZone(GameAction.java:221)
   at forge.game.GameAction.moveTo(GameAction.java:379)
   at forge.game.GameAction.moveTo(GameAction.java:360)
   at forge.game.ability.effects.ChangeZoneEffect.changeZonePlayerInvariant(ChangeZoneEffect.java:936)
   at forge.game.ability.effects.ChangeZoneEffect.changeHiddenOriginResolve(ChangeZoneEffect.java:595)
   at forge.game.ability.effects.ChangeZoneEffect.resolve(ChangeZoneEffect.java:351)
   at forge.game.spellability.AbilitySub.resolve(AbilitySub.java:119)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1232)
   at forge.game.ability.AbilityUtils.resolveSubAbilities(AbilityUtils.java:1225)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1239)
   at forge.game.ability.AbilityUtils.resolveSubAbilities(AbilityUtils.java:1225)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1239)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1214)
   at forge.ai.ComputerUtil.playNoStack(ComputerUtil.java:252)
   at forge.ai.PlayerControllerAi.playSpellAbilityNoStack(PlayerControllerAi.java:302)
   at forge.game.replacement.ReplacementHandler.executeReplacement(ReplacementHandler.java:236)
   at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:135)
   at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:71)
   at forge.game.GameAction.changeZone(GameAction.java:166)
   at forge.game.GameAction.moveTo(GameAction.java:379)
   at forge.game.GameAction.moveTo(GameAction.java:360)
   at forge.game.GameAction.moveToPlay(GameAction.java:468)
   at forge.game.GameAction.moveTo(GameAction.java:518)
   at forge.game.GameAction.moveTo(GameAction.java:510)
   at forge.game.spellability.SpellPermanent.resolve(SpellPermanent.java:72)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:468)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:964)
   at forge.game.GameAction.startGame(GameAction.java:1356)
   at forge.game.Match.startGame(Match.java:71)
   at forge.match.MatchUtil$2.run(MatchUtil.java:201)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 12 Jan 2015, 16:59
by Bundy
friarsol wrote:
Bundy wrote:Emblem of Elspeth, Knight-Errant only makes artifacts, enchantments and lands indestructible. Creatures don't get indestructible.
Can you say specifically why you think this? I just tried it and my creatures are listed as indestructible.

Edit: And they don't die when receiving lethal damage...
This is the problem i think (or my knowledge of the rules is bad)
1. activate Elspeth, Knight-Errant and creatures get indestructible.
2. play Humility and creatures loose indestructible
This is what should happen because Humility has a later time stamp so it resolves after the emblem of Elspeth.

But if the order is reversed:

1. play Humility
2. activate Elspeth
Now all creatures will loose all abilities, but the emblem should add indestructibility to my creatures since it activated after Humility was played?

The emblem of Elspeth, Sun's Champion gives +2/+2, but no flying when played after Humility
But the difference is probably in the wording: Creatures you control get +2/+2 and have flying. What they have is taken away by Humility and what they get not?

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 12 Jan 2015, 17:43
by friarsol
Bundy wrote:This is the problem i think (or my knowledge of the rules is bad)
1. activate Elspeth, Knight-Errant and creatures get indestructible.
2. play Humility and creatures loose indestructible
This is what should happen because Humility has a later time stamp so it resolves after the emblem of Elspeth.

But if the order is reversed:

1. play Humility
2. activate Elspeth
Now all creatures will loose all abilities, but the emblem should add indestructibility to my creatures since it activated after Humility was played?

The emblem of Elspeth, Sun's Champion gives +2/+2, but no flying when played after Humility
But the difference is probably in the wording: Creatures you control get +2/+2 and have flying. What they have is taken away by Humility and what they get not?
Adding Humility into the equation is a huge wrench, since it deals with layers. Please make sure to report bugs more fully next time, since it was very unclear that should be a consideration.


Here's an article that talks about Humility and layers, it is very complex, even for people familiar with the rules. http://www.gatheringmagic.com/lesson-humility/

One major key to layers is timestamps. Not the timestamps of activations though, the timestamps of the host card:

So we have two scenarios:

1. Humility is on BF, when Elspeth KE ETB.
2. Elspeth is on BF, when Humility ETB.

Creatures gaining indestructible and creatures losing all abilities both happen at layer 6. That means the timestamp of the host is the order they get handled:

In scenario #1, your creatures should gain Indestructible (after losing all abilities).
In scenario #2, your creatures should very temporarily gain Indestructible, then lose all abilities.


For your second concern, the creatures gain the boost because Humility setting power toughness happens at layer 1, where the Elspeth SC PT boost happens at layer 7. Again, whether or not Flying is granted is dependant on when Humility ETB in relation to Elspeth.

There may potentially be issues with that in Forge, but that's how it should work.

Re: Forge Beta: 1-5-2015 ver 1.5.32

PostPosted: 12 Jan 2015, 19:24
by Midori
I belief, there is still a huge problem with remembered cards when permanents change zones and come back. This problem seems to include equipment, since on multiple occasions it happens, that equipment seems to reattach itself to reanimated creatures.

I just noticed another example of this, when i bounced my Isochron Scepter and played it again. It ended up with two cards imprinted and being able to cast both cards for 2 Mana (the latter is actually correct, but the first card shouldn't be imprinted anymore, after the Scepter being bounced).