It is currently 18 May 2025, 19:30
   
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 drdev » 12 Oct 2014, 01:53

So I just committed the really large refactoring with r27885. This affects over 200 files, so please be sure to update if you're working on anything. The main thing this refactoring introduces is the use of new CardCollection and CardCollectionView classes across the board in place of List<Card>. CardCollection extends FCollection<T> which wraps a HashSet<T> and a LinkedList<T>, allowing for O(1) lookup and faster shuffling. CardCollectionView and FCollectionView<T> are interfaces that expose only the methods of CardCollection and FCollection<T> that don't involve modifying the collection, such as isEmpty(), size(), and contains(), as well as extending Iterator<T>. This allows exposing certain methods in a read-only way while allowing more options than just those of Iterator<T>.

In addition, I completely refactored how card types are handled, replacing the use of List<String> with the CardType class that already existed in forge.core. This allows the use of the CardType.CoreType and CardType.Supertype enums to make checking for types such as Creature or Basic Land be O(1) using an EnumSet rather than doing String comparisons. It also allows checking for creature types and other subtypes using a HashSet<String> containing only subtypes instead of all types. I've also increased the flexibility of the CardType class by adding more methods as well as CardTypeView interface similar to the CardCollectionView interface which exposes only those methods that don't modify the type, such as hasType(), hasSubtype(), and hasSupertype().

The combination of these changes should make a lot of logic run much faster.

Note that there are still bugs I'm working to investigate, but I should be able to tackle those pretty quickly now that all this major refactoring is done.
Last edited by drdev on 12 Oct 2014, 02:11, edited 1 time in total.
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

Re: Bug Reports (snapshot builds)

Postby ZappaZ » 12 Oct 2014, 02:07

r27886

Kazandu Blademaster did not let me put a counter on him when he entered the game.

EDIT: Playing another Kazandu Blademaster gave me a counter on the first one.

Description: I attacked with Kazandu Blademaster, only nonland card on the board besides him was a Curse of Stalked Prey on the AI side.

EDIT: Seems to happen whenever any creature attacks whoever the controller is.

EDIT2: Got this again while casting a Searing Blood on a Satyr Firedancer.

StackOverflowError | Open
Code: Select all
Forge Version:    1.5.29-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_20 Oracle Corporation

java.lang.StackOverflowError
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:134)
   at forge.util.FCollection.addAll(FCollection.java:1
... (truncated)
EDIT2:

I just played Magma Jet and when I select cards in the "Scrying Window" they don't show up in card picture / card detail, those fields stay as Magma Jet.


Description: Got this when AI played a Satyr Firedancer during Main 2.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.29-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_20 Oracle Corporation

java.lang.NullPointerException
   at forge.screens.match.CMatchUI.updateSingleCard(CMatchUI.java:318)
   at forge.match.MatchUtil.updateCards(MatchUtil.java:320)
   at forge.control.FControlGameEventHandler$1.run(FControlGameEventHandler.java:126)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$400(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)
Description: AI played a Blood Crypt (it's second such in the game) and went to the Begin Combat phase.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.29-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_20 Oracle Corporation

java.lang.NullPointerException
   at forge.game.card.CardView.updateAttacking(CardView.java:139)
   at forge.game.card.Card.updateAttackingForView(Card.java:403)
   at forge.game.combat.Combat.addAttacker(Combat.java:170)
   at forge.game.combat.Combat.addAttacker(Combat.java:147)
   at forge.ai.ComputerUtilCard.canBeBlockedProfitably(ComputerUtilCard.java:645)
   at forge.ai.AiAttackController.shouldAttack(AiAttackController.java:978)
   at forge.ai.AiAttackController.declareAttackers(AiAttackController.java:824)
   at forge.ai.ComputerUtilCard.doesSpecifiedCreatureAttackAI(ComputerUtilCard.java:592)
   at forge.ai.ability.AnimateAi.canPlayAI(AnimateAi.java:173)
   at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
   at forge.ai.AiController.canPlaySa(AiController.java:701)
   at forge.ai.AiController.canPlayAndPayFor(AiController.java:688)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1261)
   at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1242)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1198)
   at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:385)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:887)
   at forge.game.GameAction.startGame(GameAction.java:1338)
   at forge.game.Match.startGame(Match.java:71)
   at forge.match.MatchUtil$2.run(MatchUtil.java:206)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Keldon Marauders entered play without any time counters and without dealing any damage.
ZappaZ
 
Posts: 92
Joined: 26 Jul 2014, 05:37
Has thanked: 26 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby matrix4767 » 12 Oct 2014, 09:53

Hydra Broodmaster's token picture still doesn't show up. This must be an internal bug, so every snapshot build will have it.
matrix4767
 
Posts: 125
Joined: 09 Sep 2014, 08:10
Has thanked: 5 times
Been thanked: 3 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 12 Oct 2014, 12:24

r27886:
StackOverflowError:
...
at forge.util.FCollection.addAll(FCollection.java:134)
at forge.util.FCollection.addAll(FCollection.java:134)
...
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby drdev » 12 Oct 2014, 14:23

Hanmac wrote:r27886:
StackOverflowError:
...
at forge.util.FCollection.addAll(FCollection.java:134)
at forge.util.FCollection.addAll(FCollection.java:134)
...
Fixed in r27888.
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

Re: Bug Reports (snapshot builds)

Postby drdev » 12 Oct 2014, 14:52

So I'm trying to investigate the bug where no "Enters the battlefield" triggered abilities are triggering anymore. Can somebody more familiar with that code provide some insight into where I might have introduced this bug? Far as I can tell, the only places adding Enters the battlefield triggers are Sunburst, Echo, and Suspend, but that can't be right.

EDIT: Never mind, I think I figured out where to look.

EDIT2: Issue with "Enters the battlefield" triggers fixed in r27889.
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

Re: Bug Reports (snapshot builds)

Postby drdev » 12 Oct 2014, 15:56

I think I just figured out and fixed the updateSingleCard crash in r27891. Please let me know if you see it again.
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

Re: Bug Reports (snapshot builds)

Postby Fizanko » 12 Oct 2014, 16:54

r27892

The AI had Kraken Hatchling deployed
Then a turn later the AI attach Boar Umbra to it

The AI attack, but as you can see the P/T of the attacker while correctly calculated in term of damage dealt is not correctly displayed :
Image

In fact it never correctly display (i mean there's no flickering between phases between old and updated P/T, it just stay 0/4 despite it should be 3/7 )

edit : happens with other cases.
An island enchanted by Wind Zendikon is displayed as 0/0 instead of 2/2
Last edited by Fizanko on 12 Oct 2014, 17:01, edited 1 time in total.
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
User avatar
Fizanko
Tester
 
Posts: 780
Joined: 07 Feb 2014, 11:24
Has thanked: 155 times
Been thanked: 94 times

Re: Bug Reports (snapshot builds)

Postby Fizanko » 12 Oct 2014, 16:58

still r27892

Image

I have 2 creatures blocking, but as show in screenshot, there's no arrow displayed.
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
User avatar
Fizanko
Tester
 
Posts: 780
Joined: 07 Feb 2014, 11:24
Has thanked: 155 times
Been thanked: 94 times

Re: Bug Reports (snapshot builds)

Postby Fizanko » 12 Oct 2014, 17:02

still r27892

Image

Land enchanted with Wind Zendikon has the land card and the Wind Zendikon aura teleporting around the battlefield instead of staying as one, when moving through phases
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
User avatar
Fizanko
Tester
 
Posts: 780
Joined: 07 Feb 2014, 11:24
Has thanked: 155 times
Been thanked: 94 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 12 Oct 2014, 17:37

r27893: I cast Errantry on my Jhoira's Toolbox. However, the aura did not get displayed on top of the creature as I expected, instead being displayed separately on the right hand side of my battlefield. Moreover, the creature's P/T did not get visually altered, staying 1/1 instead of the expected 4/1.

- 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 ZappaZ » 12 Oct 2014, 19:33

r27893

Description: Log says "AI played Inkmoth Nexus" then this happened on the BC step.
NullPointerException | Open
Code: Select all
Forge Version:    1.5.29-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_20 Oracle Corporation

java.lang.NullPointerException
   at forge.game.card.CardView.updateAttacking(CardView.java:141)
   at forge.game.card.Card.updateAttackingForView(Card.java:411)
   at forge.game.combat.Combat.addAttacker(Combat.java:170)
   at forge.game.combat.Combat.addAttacker(Combat.java:147)
   at forge.ai.ComputerUtilCard.canBeBlockedProfitably(ComputerUtilCard.java:645)
   at forge.ai.AiAttackController.shouldAttack(AiAttackController.java:978)
   at forge.ai.AiAttackController.declareAttackers(AiAttackController.java:824)
   at forge.ai.ComputerUtilCard.doesSpecifiedCreatureAttackAI(ComputerUtilCard.java:592)
   at forge.ai.ability.AnimateAi.canPlayAI(AnimateAi.java:173)
   at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
   at forge.ai.AiController.canPlaySa(AiController.java:701)
   at forge.ai.AiController.canPlayAndPayFor(AiController.java:688)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1261)
   at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1242)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1198)
   at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:385)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:887)
   at forge.game.GameAction.startGame(GameAction.java:1339)
   at forge.game.Match.startGame(Match.java:71)
   at forge.match.MatchUtil$2.run(MatchUtil.java:206)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Last edited by ZappaZ on 12 Oct 2014, 19:39, edited 1 time in total.
ZappaZ
 
Posts: 92
Joined: 26 Jul 2014, 05:37
Has thanked: 26 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby ZappaZ » 12 Oct 2014, 19:39

r27893

Has Courser of Kruphix changed lately? I used to be able to mouse over the card in the battlefield and see what my top card was in its Card Detail field, now it shows only the card text.

EDIT:
Another wierd thing, I can click on my library and see the order of the cards in there.
After clicking on my library to see if thats where the top card would be shown in my question above I then noticed that the cards was being drawn in the order I saw them when clicking on my library.
ZappaZ
 
Posts: 92
Joined: 26 Jul 2014, 05:37
Has thanked: 26 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby ZappaZ » 12 Oct 2014, 21:00

r27893

1. Does this Combat Log look wierd?
http://imgur.com/swjoPUj

2. Here is a strange situation:
http://imgur.com/zQ9OVoL
Last turn the AI attacked my Garruk, Caller of Beasts with his Chandra's Phoenix, now when it is my turn the "attack" arrow is still there and I cannot use any of Garruks abilities.
Also those 0/0 Forests are from Nissa, Worldwaker. They are not auto included as mana sources and has to be tapped manually.
EDIT: Not always true, sometimes they are included and tapped automatically, I have seen no pattern.

3. Nature's Revolt makes AIs Forests flicker when changing phases.
Also all lands appear as 0/0 even tho they take and do damage as the correct 2/2, I killed a few.

4. Not sure why I cannot use Garruk, Caller of Beasts abilities in this situation. It has just become my turn and nothing happens when I click on him.
EDIT: It seems that Planeswalkers abilities can only be used once and that is in the turn that you play him/her.
This might partially change my point 2. above.
http://imgur.com/HRBFntr

5. Sometimes the cards in my hand get "zoomed in" and then after a phase or two return to normal.
Zoomed: http://imgur.com/9MEQTvq
Normal: http://imgur.com/AHq1Htm

6. AI enchanted a Ajani's Pridemate with Divine Favor. When I mouse over those 2 stacked cards it is as if the enchantment is in front of the creature card. It displys correctly with the enchantment behind but the behavior when you mouse over is wrong.
ZappaZ
 
Posts: 92
Joined: 26 Jul 2014, 05:37
Has thanked: 26 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby drdev » 12 Oct 2014, 21:25

Thanks for all the bug reports guys. I just committed a big fix for card details so that morph cards are handled properly. I'm aware of the issue with P/T not factoring in state based effects, and that's the next thing I'm going to look into.

I do apologize for things being kind of broken at the moment, but it should all be worth it once I get things sorted out, as then I'll be able to start working on adding network support.
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: Google [Bot] and 51 guests


Who is online

In total there are 52 users online :: 1 registered, 0 hidden and 51 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: Google [Bot] and 51 guests

Login Form