It is currently 18 Sep 2025, 22:39
   
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 Kulnaro » 13 Jul 2015, 14:52

friarsol wrote:Thanks for the patches Kulnaro. I just approved your request to join, so you should be able to commit to the svn now. I didn't commit your one about attacking, because I wasn't sure if there really should be a distinction between "isAttacking" and "isStillAttacking". As far as I'm concerned, isAttacking should only be things that are actually attacking.
I think you are right. Since I am still new to the codebase I went for limiting side effects over refactoring. I can't think of any card that needs that functionality, but it would be necessary if there was a card that said 'Whenever an attacking creature dies, draw a card.' I'll change the patch to just update the isAttacking method instead of making a new method.
Kulnaro
 
Posts: 5
Joined: 01 Jul 2015, 11:43
Has thanked: 1 time
Been thanked: 1 time

Re: Bug Reports (snapshot builds)

Postby Marek14 » 13 Jul 2015, 19:45

Kulnaro wrote:
friarsol wrote:Thanks for the patches Kulnaro. I just approved your request to join, so you should be able to commit to the svn now. I didn't commit your one about attacking, because I wasn't sure if there really should be a distinction between "isAttacking" and "isStillAttacking". As far as I'm concerned, isAttacking should only be things that are actually attacking.
I think you are right. Since I am still new to the codebase I went for limiting side effects over refactoring. I can't think of any card that needs that functionality, but it would be necessary if there was a card that said 'Whenever an attacking creature dies, draw a card.' I'll change the patch to just update the isAttacking method instead of making a new method.
Isn't Kithkin Mourncaller an example of such card?
Marek14
Tester
 
Posts: 2773
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 303 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 14 Jul 2015, 02:27

r29774
AI appears to be stuck in an infinite loop:

Bonded Construct with Infectious Bloodlust the AI does have other creatures in play that can also attack with the Construct, but it keeps defaulting back to just attacking with only one creature, which is illegal. I didn't get a full catalog of which creatures because it was during an AI vs AI match, and my CPU maxed out. But it was something like:

Attacker: Bonded Construct, activated Angel's Tomb (two other weak non-flyers)
Defender: Thopter token, Aspiring Aeronaut, (maybe one or two other things?)

Edit:
And I got the Quest Tournament error when trying to start a match. Krazy maybe you can look at this? Basically what happens is somehow my match got skipped during the match tournament processing (who knows how that happened? But the main screen being jumped back to when my match is already in progress in a background tab is quite confusing, it didn't used to do that. Is it possible that clicking on start when there's a match already in process can skip your game?). So I have an AI in the finals, and my match which is unplayed in the semi finals.

Undetermined Place | Open
EDT > java.lang.NumberFormatException: For input string: "quest_draft_undetermined_place"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at forge.quest.QuestDraftUtils.addMatchup(QuestDraftUtils.java:146)
at forge.quest.QuestDraftUtils.startNextMatch(QuestDraftUtils.java:107)
at forge.screens.home.quest.CSubmenuQuestDraft.startNextMatch(CSubmenuQuestDraft.java:579)
at forge.screens.home.quest.CSubmenuQuestDraft.access$000(CSubmenuQuestDraft.java:60)
at forge.screens.home.quest.CSubmenuQuestDraft$7.actionPerformed(CSubmenuQuestDraft.java:281)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)


I've attached the quest to this post so you can see it in action.

Edit2: I dropped a break point into startNextMatch to force my match to actually play. Unfortunately by doing that it replayed the other semifinal match after I won. And instead of reprocessing who would show up in the finals it just decided I lost the finals and awarded me 2nd place. There definitely seems to be a lot of assumptions going on in this code to allow for all of these scenarios, so it'd be nice to see that cleaned up.
Attachments
oristd.dat.txt
(11.09 KiB) Downloaded 233 times
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 tojammot » 14 Jul 2015, 10:55

War Horn is listed as an enchantment. Yes, it's affected by Starfield of Nyx, how funny.

Here I was, thinking that it's the first ever colorless enchantment.
tojammot
 
Posts: 195
Joined: 06 Jun 2008, 07:38
Has thanked: 1 time
Been thanked: 3 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 14 Jul 2015, 17:18

If someone gets to it before me, Thopter Spy Network is missing it's full Oracle text. (It only has half of 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 tojammot » 15 Jul 2015, 03:09

Mycosynth Lattice + March of the Machines combo doesn't work if the latter came first. Same goes for Opalescence + Enchanted Evening.
tojammot
 
Posts: 195
Joined: 06 Jun 2008, 07:38
Has thanked: 1 time
Been thanked: 3 times

Re: Bug Reports (snapshot builds)

Postby Kulnaro » 17 Jul 2015, 11:04

Marek14 wrote:
Kulnaro wrote:
friarsol wrote:Thanks for the patches Kulnaro. I just approved your request to join, so you should be able to commit to the svn now. I didn't commit your one about attacking, because I wasn't sure if there really should be a distinction between "isAttacking" and "isStillAttacking". As far as I'm concerned, isAttacking should only be things that are actually attacking.
I think you are right. Since I am still new to the codebase I went for limiting side effects over refactoring. I can't think of any card that needs that functionality, but it would be necessary if there was a card that said 'Whenever an attacking creature dies, draw a card.' I'll change the patch to just update the isAttacking method instead of making a new method.
Isn't Kithkin Mourncaller an example of such card?
Yes it is. I pushed a patched that updated isAttacking so it behaves as expected, but renamed the old version for use by the Kithkin Mourncaller card.
Kulnaro
 
Posts: 5
Joined: 01 Jul 2015, 11:43
Has thanked: 1 time
Been thanked: 1 time

Re: Bug Reports (snapshot builds)

Postby KrazyTheFox » 18 Jul 2015, 05:41

friarsol wrote:Krazy maybe you can look at this?
Sorry, been extremely busy as of late with family and work. I should be able to look at this soonish. The quest draft interface originally didn't have many checks in place since it seemed there weren't any problems with the implementation at the time. Something has since changed as you've pointed out, causing the tabs to switch when matches are started and such. I'm sure there's a few of my bugs in there that I can iron out, too. Just need to find the time.

I'll also try to get the card prices completed and uploaded before the release on Monday.
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

Re: Bug Reports (snapshot builds)

Postby excessum » 18 Jul 2015, 13:45

The spell mastery trigger appears to be broken for some cards like Kytheon's Tactics and Swift Reckoning, but is working for others (Unholy Hunger).
excessum
 
Posts: 177
Joined: 21 Oct 2013, 02:30
Has thanked: 0 time
Been thanked: 19 times

Re: Bug Reports (snapshot builds)

Postby Twainer » 18 Jul 2015, 14:49

r29792

Infernal Scarring - Triggers 3 times when the creature dies.

I'm not 100% sure but I think spell mastery might be counting 2 instant or 2 sorceries but not 1 of each
Twainer
 
Posts: 44
Joined: 03 Jan 2010, 23:42
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby friarsol » 18 Jul 2015, 15:30

Twainer wrote:r29792

Infernal Scarring - Triggers 3 times when the creature dies.
Yea I Know I already mentioned it down below. Haven't had a chance to look. It's not just Infernal Scarring, it has to do with cards that grant triggers to another card.
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 » 19 Jul 2015, 01:39

r29802

Necrotic Ooze activating the ability of Brutal Hordechief creates this crash. I'm guessing this is related to how Effect activated abilities work not passing along enough information for the Ooze to activate.

| Open
java.lang.NullPointerException
at forge.game.ability.effects.EffectEffect.resolve(EffectEffect.java:154)
at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1252)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1234)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:492)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:972)
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 » 19 Jul 2015, 04:13

r29804

Got this crash when AI cast Idyllic Tutor

Description: [describe what you were doing when the crash occurred]

NullPointerException | Open
Code: Select all
Forge Version:    SVN
Operating System: Windows 8 6.2 amd64
Java Version:     1.7.0_51 Oracle Corporation

java.lang.NullPointerException
   at forge.trackable.TrackableTypes$TrackableCollectionType.updateObjLookup(TrackableTypes.java:91)
   at forge.trackable.TrackableTypes$TrackableCollectionType.updateObjLookup(TrackableTypes.java:82)
   at forge.trackable.TrackableProperty.updateObjLookup(TrackableProperty.java:172)
   at forge.trackable.TrackableObject.set(TrackableObject.java:61)
   at forge.game.card.CardView.setPlayerMayLook(CardView.java:333)
   at forge.game.card.Card.setMayLookAt(Card.java:2273)
   at forge.player.PlayerControllerHuman.endTempShowCards(PlayerControllerHuman.java:207)
   at forge.player.PlayerControllerHuman.reveal(PlayerControllerHuman.java:596)
   at forge.player.PlayerControllerHuman.reveal(PlayerControllerHuman.java:582)
   at forge.game.GameAction.reveal(GameAction.java:1395)
   at forge.game.GameAction.reveal(GameAction.java:1387)
   at forge.game.GameAction.reveal(GameAction.java:1379)
   at forge.game.GameAction.reveal(GameAction.java:1375)
   at forge.game.ability.effects.ChangeZoneEffect.changeZonePlayerInvariant(ChangeZoneEffect.java:981)
   at forge.game.ability.effects.ChangeZoneEffect.changeHiddenOriginResolve(ChangeZoneEffect.java:598)
   at forge.game.ability.effects.ChangeZoneEffect.resolve(ChangeZoneEffect.java:352)
   at forge.game.ability.SpellApiBased.resolve(SpellApiBased.java:50)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1252)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1234)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:492)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:972)
   at forge.game.GameAction.startGame(GameAction.java:1447)
   at forge.game.Match.startGame(Match.java:96)
   at forge.match.HostedMatch$2.run(HostedMatch.java:220)
   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:744)
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 » 19 Jul 2015, 15:48

r29813: Got this crash when the AI cast Lightning Bolt on my creature. The crash was fatal, I could not continue playing. Could possibly be related to r29800 which modified trackable player properties?

NullPointerException | Open
Code: Select all
Forge Version:    1.5.41-SNAPSHOT-r29811u
Operating System: Linux 3.8.0-26-generic amd64
Java Version:     1.7.0_51 Oracle Corporation

java.lang.NullPointerException
   at forge.trackable.TrackableTypes$TrackableObjectType.updateObjLookup(TrackableTypes.java:59)
   at forge.trackable.TrackableTypes$TrackableObjectType.updateObjLookup(TrackableTypes.java:37)
   at forge.trackable.TrackableProperty.updateObjLookup(TrackableProperty.java:172)
   at forge.trackable.TrackableObject.set(TrackableObject.java:61)
   at forge.trackable.Tracker.unfreeze(Tracker.java:25)
   at forge.game.GameAction.checkStateEffects(GameAction.java:845)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:899)
   at forge.game.GameAction.startGame(GameAction.java:1447)
   at forge.game.Match.startGame(Match.java:96)
   at forge.match.HostedMatch$2.run(HostedMatch.java:220)
   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:744)
EDIT: I attempted to fix this in r29814, please review/update as necessary.

- 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 » 19 Jul 2015, 21:39

r29816
More trackable property issues. Casting Persecute on the AI. He has 3 (black) cards in his hand... Unable to continue. Getting network play sorta not working is not worth breaking normal play, especially right before a release.

Description:

ClassCastException | Open
Code: Select all
Forge Version:    SVN
Operating System: Windows 8 6.2 amd64
Java Version:     1.7.0_51 Oracle Corporation

java.lang.ClassCastException: java.util.ArrayList cannot be cast to forge.trackable.TrackableCollection
   at forge.trackable.TrackableTypes$TrackableCollectionType.updateObjLookup(TrackableTypes.java:84)
   at forge.trackable.TrackableProperty.updateObjLookup(TrackableProperty.java:172)
   at forge.trackable.TrackableObject.set(TrackableObject.java:66)
   at forge.game.card.CardView.updateChosenColors(CardView.java:253)
   at forge.game.card.Card.setChosenColors(Card.java:1205)
   at forge.game.ability.effects.ChooseColorEffect.resolve(ChooseColorEffect.java:71)
   at forge.game.ability.SpellApiBased.resolve(SpellApiBased.java:50)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1252)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1234)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:492)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:972)
   at forge.game.GameAction.startGame(GameAction.java:1447)
   at forge.game.Match.startGame(Match.java:96)
   at forge.match.HostedMatch$2.run(HostedMatch.java:220)
   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:744)
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 37 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 37 users online :: 0 registered, 0 hidden and 37 guests (based on users active over the past 10 minutes)
Most users ever online was 7967 on 09 Sep 2025, 23:08

Users browsing this forum: No registered users and 37 guests

Login Form