It is currently 22 May 2025, 22:32
   
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 Max mtg » 03 Jul 2013, 12:15

Agetian wrote:@ Max: Oh, sorry, didn't realize there was a separate thread for it... anyhoo, thanks for fixing!

- Agetian
Just in the same manner there's a dedicated topic for every feature being developed right at the moment.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Bug Reports (snapshot builds)

Postby jsv » 03 Jul 2013, 16:31

Bundy wrote:Description: Computer plays a morph creature. I can't continue the game, so i have no idea what the morph card is. Morph card is only played, the computer has no mana to turn it face up.
xbon wrote:Description: used morph

NullPointerException | Open
Code: Select all
Forge Version:    r22369
Operating System: Windows 8 6.2 x86
Java Version:     1.7.0_25 Oracle Corporation

java.lang.NullPointerException
   at forge.card.cardfactory.CardFactoryUtil$1.canPlay(CardFactoryUtil.java:176)
   at forge.game.ai.AiController.canPlayAndPayFor(AiController.java:474)
   at forge.game.ai.AiController.chooseSpellAbilyToPlay(AiController.java:462)
   at forge.game.ai.AiController.getSpellAbilityToPlay(AiController.java:816)
   at forge.game.ai.AiController.playSpellAbilities(AiController.java:790)
   at forge.game.ai.AiController.onPriorityRecieved(AiController.java:738)
   at forge.game.player.PlayerControllerAi.takePriority(PlayerControllerAi.java:344)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:847)
   at forge.game.GameAction.startGame(GameAction.java:1467)
   at forge.game.Match$1.run(Match.java:105)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
used morph in another duel, different card as well, same result.
Fixed in r22382, thanks Bundy and xbon!
jsv
 
Posts: 53
Joined: 29 May 2013, 03:20
Has thanked: 3 times
Been thanked: 6 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 04 Jul 2013, 02:47

This crash happened to me three times at the end of the first turn in quest mode. Makes it impossible to play.

NPE | Open
Game-0 > java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:191)
at com.google.common.collect.Lists.newArrayList(Lists.java:123)
at forge.game.zone.Zone.getCardsAddedThisTurn(Zone.java:195)
at forge.CardUtil.getThisTurnEntered(CardUtil.java:78)
at forge.card.cardfactory.CardFactoryUtil.xCount(CardFactoryUtil.java:1401)
at forge.card.ability.AbilityUtils.xCount(AbilityUtils.java:1218)
at forge.card.ability.AbilityUtils.calculateAmount(AbilityUtils.java:357)
at forge.card.TriggerReplacementBase.meetsCommonRequirements(TriggerReplacementBase.java:299)
at forge.card.trigger.Trigger.requirementsCheck(Trigger.java:265)
at forge.card.trigger.TriggerHandler.canRunTrigger(TriggerHandler.java:290)
at forge.card.trigger.TriggerHandler.runNonStaticTriggersForPlayer(TriggerHandler.java:263)
at forge.card.trigger.TriggerHandler.runWaitingTrigger(TriggerHandler.java:234)
at forge.card.trigger.TriggerHandler.runTrigger(TriggerHandler.java:168)
at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:411)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:875)
at forge.game.GameAction.startGame(GameAction.java:1463)
at forge.game.Match$1.run(Match.java:102)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
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 TheSHEEEP » 04 Jul 2013, 15:49

There seems to be a bug when trying to use Increasing Vengeance (not the flashback use) in combination with a two sided card (Turn/Burn in my case).

As soon as it tried to copy the Burn spell, something causes an error.

I'd love to post the crash log, but the forum says I'm too spammy o.O
TheSHEEEP
 
Posts: 3
Joined: 04 Jul 2013, 15:45
Has thanked: 0 time
Been thanked: 1 time

Re: Bug Reports (snapshot builds)

Postby friarsol » 04 Jul 2013, 17:46

r22421
I cast Time Ebb on the AIs Soldier token, but the log doesn't actually show anything being targeted, and the token doesn't actually disappear.

Just tried to repro this and i couldn't. I believe the token was created by Elspeth, Knight-Errant .
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 Bundy » 04 Jul 2013, 18:54

Forge 1.4.3 - SNAPSHOT-r22408

The card i pick with Enlightened Tutor is not placed on top of my library. Looks like the card is put on top and then the library is shuffled.

When i use the last ability of Tezzeret the Seeker, my artifacts are not placed among my creatures like older versions used to do. Also no power and toughness is displayed on them. I can use them like creatures though, so the ability works correctly.
Bundy
 
Posts: 348
Joined: 17 Dec 2010, 17:32
Location: The netherlands
Has thanked: 23 times
Been thanked: 3 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 04 Jul 2013, 22:34

r22421

My Boros Battleshaper forces Ballynock Cohort to attack this turn if able, but the AI doesn't actually attack with 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 jsv » 05 Jul 2013, 10:24

From the 1.4.2 beta thread:

cc-drake wrote:- I can't discard more than one card to Last Rites.
I've looked at it, cards with "discard any number of cards" (Rites of Spring, Rites of Refusal, etc.) are all behave like this. As the code in DiscardEffect is rather hairy, I'm not sure if a simple hack in vein of
Code: Select all
--- card/ability/effects/DiscardEffect.java     (revision 22427)
+++ card/ability/effects/DiscardEffect.java     (working copy)
@@ -210,7 +210,7 @@
                         chooser.getGame().getAction().reveal(dPHand, p);

                     int min = sa.hasParam("AnyNumber") || sa.hasParam("Optional") ? 0 : numCards;
-                    int max = Math.min(validCards.size(), numCards);
+                    int max = sa.hasParam("AnyNumber")? validCards.size(): Math.min(validCards.size(), numCards);

                     List<Card> toBeDiscarded = validCards.isEmpty() ? CardLists.emptyList : chooser.getController().chooseCardsToDiscardFrom(p, sa, validCards, min, max);
isn't going to introduce more problems than it solves...
jsv
 
Posts: 53
Joined: 29 May 2013, 03:20
Has thanked: 3 times
Been thanked: 6 times

Re: Bug Reports (snapshot builds)

Postby deuce9487 » 05 Jul 2013, 18:00

I can't begin an AI game anymore. I can't remember the card that the AI first used to crash the program. But every time after that it wont play anymore.


NullPointerException | Open
Code: Select all
Forge Version:    1.4.2-r22320
Operating System: Windows Vista 6.0 x86
Java Version:     1.7.0_25 Oracle Corporation

java.lang.NullPointerException
   at forge.gui.framework.SDisplayUtil$2.run(SDisplayUtil.java:97)
   at forge.FThreads.invokeInEdtNowOrLater(FThreads.java:81)
   at forge.gui.framework.SDisplayUtil.showTab(SDisplayUtil.java:104)
   at forge.control.FControl.attachToGame(FControl.java:423)
   at forge.game.Match.startRound(Match.java:89)
   at forge.gui.home.sanctioned.CSubmenuConstructed$6.run(CSubmenuConstructed.java:130)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$200(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.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)
deuce9487
 
Posts: 1
Joined: 05 Jul 2013, 17:56
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby swordshine » 06 Jul 2013, 11:14

Token cannot move to libraries when I cast Terminus or Azorius Charm
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Bug Reports (snapshot builds)

Postby Bundy » 06 Jul 2013, 14:22

Forge 1.4.3 - SNAPSHOT-r22427

My Reflecting Pool can produce mana of the color from all lands on the battlefield. My opponent controls a mountain, and i can produce red mana. I only have a Tropical Island in play beside the Reflecting Pool.
Bundy
 
Posts: 348
Joined: 17 Dec 2010, 17:32
Location: The netherlands
Has thanked: 23 times
Been thanked: 3 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 06 Jul 2013, 14:24

r22450
Here's a bit more info about the bug that Swordshine and I posted recently about ChangeZone spells on tokens:

http://imgur.com/Pe84Wjv
For me, the stack description is messed up, even though a token seems targeted, nothing is displayed in the log.

AI cast Oust on nothing. I had a Wolf Pet and a Wall Pet out. It was the first turn. The spell fully resolved and I gained 3 life, so whatever the token that was targeted worked didn't fizzle, but it never displayed in the stack/log and didn't change zone on resolution either.
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 Agetian » 07 Jul 2013, 04:47

jsv wrote:From the 1.4.2 beta thread:

cc-drake wrote:- I can't discard more than one card to Last Rites.
I've looked at it, cards with "discard any number of cards" (Rites of Spring, Rites of Refusal, etc.) are all behave like this. As the code in DiscardEffect is rather hairy, I'm not sure if a simple hack in vein of
Code: Select all
--- card/ability/effects/DiscardEffect.java     (revision 22427)
+++ card/ability/effects/DiscardEffect.java     (working copy)
@@ -210,7 +210,7 @@
                         chooser.getGame().getAction().reveal(dPHand, p);

                     int min = sa.hasParam("AnyNumber") || sa.hasParam("Optional") ? 0 : numCards;
-                    int max = Math.min(validCards.size(), numCards);
+                    int max = sa.hasParam("AnyNumber")? validCards.size(): Math.min(validCards.size(), numCards);

                     List<Card> toBeDiscarded = validCards.isEmpty() ? CardLists.emptyList : chooser.getController().chooseCardsToDiscardFrom(p, sa, validCards, min, max);
isn't going to introduce more problems than it solves...
Interestingly, these cards used to behave differently in the past - there used to be a dialog box popping up asking you how many cards you wanted to discard, after which you were given an opportunity to discard them. As a person who originally implemented Last Rites I can attest that it used to work properly fine and was tested when it first went in. Now the dialog box doesn't fire for some reason. Can anyone look into why this happens, please?

The solution proposed by jsv doesn't seem to fully fix the issue - there are two issues remaining with it in place: one is that the GUI says "Discard 7 cards" (or how many you have in your hand, anyway), which is confusing since it should be "Discard up to 7 cards" in that case (but that is an easy fix). A bigger problem, however, is that after you discard the cards, if you discard more cards than your opponent has non-land cards in his hand, you're unable to complete the operation because the "choose cards for the opponent to discard" UI box will be waiting for you indefinitely to select more cards than you possibly can. Say, if you discard your entire hand and the opponent reveals 5 nonland cards in his hand, the UI will still be waiting for you to select 7 cards for the opponent to discard and won't let you click OK once you've selected five cards already...

- Agetian
Last edited by Agetian on 07 Jul 2013, 05:37, edited 4 times in total.
Agetian
Programmer
 
Posts: 3486
Joined: 14 Mar 2011, 05:58
Has thanked: 683 times
Been thanked: 569 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 07 Jul 2013, 04:55

r22462: In the Archenemy mode, loading the Scheme Editor and then loading a deck into it shows the Sideboard inside the editor, not the Scheme deck. Interestingly, if you first choose a deck and then click "Scheme Editor", it shows the scheme deck properly. I think this is caused by line 148 in CEditorVariant.java - sadly, don't have a working build environment at the moment to test/fix.

- Agetian
Agetian
Programmer
 
Posts: 3486
Joined: 14 Mar 2011, 05:58
Has thanked: 683 times
Been thanked: 569 times

Re: Bug Reports (snapshot builds)

Postby swordshine » 07 Jul 2013, 05:35

jsv wrote:From the 1.4.2 beta thread:

cc-drake wrote:- I can't discard more than one card to Last Rites.
I've looked at it, cards with "discard any number of cards" (Rites of Spring, Rites of Refusal, etc.) are all behave like this. As the code in DiscardEffect is rather hairy, I'm not sure if a simple hack in vein of
Code: Select all
--- card/ability/effects/DiscardEffect.java     (revision 22427)
+++ card/ability/effects/DiscardEffect.java     (working copy)
@@ -210,7 +210,7 @@
                         chooser.getGame().getAction().reveal(dPHand, p);

                     int min = sa.hasParam("AnyNumber") || sa.hasParam("Optional") ? 0 : numCards;
-                    int max = Math.min(validCards.size(), numCards);
+                    int max = sa.hasParam("AnyNumber")? validCards.size(): Math.min(validCards.size(), numCards);

                     List<Card> toBeDiscarded = validCards.isEmpty() ? CardLists.emptyList : chooser.getController().chooseCardsToDiscardFrom(p, sa, validCards, min, max);
isn't going to introduce more problems than it solves...
I think it's a correct fix. Only four rites and Flux have "AnyNumber$ True" params in their discard effects.
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 4 guests


Who is online

In total there are 4 users online :: 0 registered, 0 hidden and 4 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 4 guests

Login Form