Bug Reports (snapshot builds)
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Bug Reports (snapshot builds)
by Kulnaro » 13 Jul 2015, 14:52
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.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.
Re: Bug Reports (snapshot builds)
by Marek14 » 13 Jul 2015, 19:45
Isn't Kithkin Mourncaller an example of such card?Kulnaro wrote: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.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.
Re: Bug Reports (snapshot builds)
by 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.
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.
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)
by 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.
Here I was, thinking that it's the first ever colorless enchantment.
Re: Bug Reports (snapshot builds)
by 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)
by 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.
Re: Bug Reports (snapshot builds)
by Kulnaro » 17 Jul 2015, 11:04
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.Marek14 wrote:Isn't Kithkin Mourncaller an example of such card?Kulnaro wrote: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.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.
Re: Bug Reports (snapshot builds)
by KrazyTheFox » 18 Jul 2015, 05:41
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.friarsol wrote:Krazy maybe you can look at this?
I'll also try to get the card prices completed and uploaded before the release on Monday.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by 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).
Re: Bug Reports (snapshot builds)
by 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
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)
by friarsol » 18 Jul 2015, 15:30
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)
by 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.
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)
by 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]
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)
by 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?
- Agetian
- 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)
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by 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:
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
Who is online
Users browsing this forum: No registered users and 37 guests