Upcoming Release: Forge version 1.5.58
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Upcoming Release: Forge version 1.5.58
by friarsol » 10 Jan 2017, 13:23
Chatted with Krazy, we're going to try to get a release out for Friday with as many aether revolt cards as we have ready.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 10 Jan 2017, 14:39
That would be very nice, Sol!
I updated the edition definition a little bit to reflect AER Masterpieces (and also renamed the set Kaladesh Inventions to Masterpiece Series as it looks like it'll be a generic, regularly updated set of block-themed "additional" cards).
During testing I noticed that we need a full set of card definitions and the AER Planeswalker Deck print sheets to be filled in to prevent the game from crashing when trying to generate a booster draft with the AER set. This will become noticeable in both quest mode and standalone drafts if we release the game as it is right now. There are several things we can do if we can't provide a full edition definition by Friday:
Variant 1. Remove the mentioning of AER Planeswalker Deck print sheets from the Booster parameter in edition definition (temporarily, until we can fill it in) *and* fill in all the cards in the edition definition. This should prevent the game from crashing.
Variant 2. Keep things as they are (or maybe add the card list) but remove AER from the definition of the Kaladesh block temporarily until full AER edition data can be filled in. This should also prevent the game from crashing but it'll make AER inaccessible for drafting and for quest mode.
Please let me know which way would be better.
- Agetian
I updated the edition definition a little bit to reflect AER Masterpieces (and also renamed the set Kaladesh Inventions to Masterpiece Series as it looks like it'll be a generic, regularly updated set of block-themed "additional" cards).
During testing I noticed that we need a full set of card definitions and the AER Planeswalker Deck print sheets to be filled in to prevent the game from crashing when trying to generate a booster draft with the AER set. This will become noticeable in both quest mode and standalone drafts if we release the game as it is right now. There are several things we can do if we can't provide a full edition definition by Friday:
Variant 1. Remove the mentioning of AER Planeswalker Deck print sheets from the Booster parameter in edition definition (temporarily, until we can fill it in) *and* fill in all the cards in the edition definition. This should prevent the game from crashing.
Variant 2. Keep things as they are (or maybe add the card list) but remove AER from the definition of the Kaladesh block temporarily until full AER edition data can be filled in. This should also prevent the game from crashing but it'll make AER inaccessible for drafting and for quest mode.
Please let me know which way would be better.
- Agetian
- Agetian
- Programmer
- Posts: 3471
- Joined: 14 Mar 2011, 05:58
- Has thanked: 676 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by friarsol » 10 Jan 2017, 15:14
This is definitely the preferred method. People want to play the new cards, they don't care all that much about the Planeswalker decks, which is really more of an intro player thing.Agetian wrote:Variant 1. Remove the mentioning of AER Planeswalker Deck print sheets from the Booster parameter in edition definition (temporarily, until we can fill it in) *and* fill in all the cards in the edition definition. This should prevent the game from crashing.
Once the cards are up on Gatherer, we'll get the mtgjson and build the edition file from that.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 10 Jan 2017, 15:19
Ok, I have removed the mentioning of planeswalker decks from booster definition, but now we need the full list of cards. Knowing that the full spoiler is available, this should be possible to make. Do we use some kind of an automated script to generate edition files right now, or is that unavailable for sets that are not yet released officially?
EDIT: Remembered that we now have a Discord chat, so dropped in there
- Agetian
EDIT: Remembered that we now have a Discord chat, so dropped in there
- Agetian
- Agetian
- Programmer
- Posts: 3471
- Joined: 14 Mar 2011, 05:58
- Has thanked: 676 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by pfps » 10 Jan 2017, 16:11
Something should probably be done with auto-yields before the next beta.
Right now, auto-yields are by card description (including id) and trigger description (not including any information about the current triggers). I think that is the right level of granularity. However, card ids do not persist between games so the auto-yields should be cleared between games and they are not.
I see two options. The first is to make auto-yields insensitive to the card id. The second is to clear out auto-yields between games.
Any suggestions on which way to go? If the second way is chosen then someone either has to write the code or point me to where the change should be made (i.e., the code that starts the game, and how to access the game gui from there).
peter
Right now, auto-yields are by card description (including id) and trigger description (not including any information about the current triggers). I think that is the right level of granularity. However, card ids do not persist between games so the auto-yields should be cleared between games and they are not.
I see two options. The first is to make auto-yields insensitive to the card id. The second is to clear out auto-yields between games.
Any suggestions on which way to go? If the second way is chosen then someone either has to write the code or point me to where the change should be made (i.e., the code that starts the game, and how to access the game gui from there).
peter
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 10 Jan 2017, 16:36
@ pfps: I'll take a look at the code and see if I can figure out how to clear auto-yields in between games, will report soon-ish as to how that goes.
EDIT: Done, I added the relevant code.
- Agetian
EDIT: Done, I added the relevant code.
- Agetian
- Agetian
- Programmer
- Posts: 3471
- Joined: 14 Mar 2011, 05:58
- Has thanked: 676 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by pfps » 10 Jan 2017, 20:57
Looks good.Agetian wrote:@ pfps: I'll take a look at the code and see if I can figure out how to clear auto-yields in between games, will report soon-ish as to how that goes.
EDIT: Done, I added the relevant code.
- Agetian
Thanks,
peter
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 11 Jan 2017, 07:31
In the recent revisions (probably in the last week or so) I started experiencing some random rare StackOverflow exceptions:
- Agetian
- StackOverflowError | Open
- Code: Select all
Forge Version: SVN
Operating System: Linux 4.4.0-59-generic amd64
Java Version: 1.8.0_111 Oracle Corporation
java.lang.StackOverflowError
at com.google.common.collect.Maps.safeGet(Maps.java:3346)
at com.google.common.collect.AbstractTable.contains(AbstractTable.java:68)
at com.google.common.collect.StandardTable.contains(StandardTable.java:81)
at com.google.common.collect.HashBasedTable.contains(HashBasedTable.java:119)
at forge.trackable.Tracker.hasObj(Tracker.java:33)
at forge.trackable.TrackableTypes$TrackableObjectType.updateObjLookup(TrackableTypes.java:56)
at forge.trackable.TrackableTypes$TrackableObjectType.updateObjLookup(TrackableTypes.java:39)
at forge.trackable.TrackableProperty.updateObjLookup(TrackableProperty.java:173)
at forge.trackable.TrackableObject.set(TrackableObject.java:70)
at forge.game.spellability.SpellAbilityView.updateHostCard(SpellAbilityView.java:43)
at forge.game.spellability.SpellAbilityView.<init>(SpellAbilityView.java:29)
at forge.game.spellability.SpellAbility.<init>(SpellAbility.java:182)
at forge.game.spellability.SpellAbility.<init>(SpellAbility.java:175)
at forge.game.spellability.AbilitySub.<init>(AbilitySub.java:85)
at forge.game.ability.AbilityFactory$AbilityRecordType.buildSpellAbility(AbilityFactory.java:73)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:182)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:227)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:403)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:235)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.
... (truncated)
- Agetian
- Agetian
- Programmer
- Posts: 3471
- Joined: 14 Mar 2011, 05:58
- Has thanked: 676 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by Hanmac » 11 Jan 2017, 07:59
@Agetian: try if it works when you revert my changes for TrackableObjects. Probably my fault and my plan doesn't work.
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 11 Jan 2017, 11:20
Nope, I tried reverting your change but it still doesn't work, most likely FlipACoin would need an extra parameter or something as you said before...Hanmac wrote:@Agetian: try if it works when you revert my changes for TrackableObjects. Probably my fault and my plan doesn't work.
- Agetian
- Agetian
- Programmer
- Posts: 3471
- Joined: 14 Mar 2011, 05:58
- Has thanked: 676 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by Turbomoose » 12 Jan 2017, 18:17
Description: Computer player trying to use beguiler of wills
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r-1
Operating System: Windows 10 10.0 amd64
Java Version: 1.8.0_111 Oracle Corporation
java.lang.NullPointerException
at forge.ai.ability.ControlGainAi$1.apply(ControlGainAi.java:139)
at forge.ai.ability.ControlGainAi$1.apply(ControlGainAi.java:128)
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.collect.FCollection.<init>(FCollection.java:90)
at forge.game.card.CardCollection.<init>(CardCollection.java:115)
at forge.game.card.CardLists.filter(CardLists.java:255)
at forge.ai.ability.ControlGainAi.canPlayAI(ControlGainAi.java:128)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:29)
at forge.ai.AiController.canPlaySa(AiController.java:654)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:641)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1158)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1133)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1072)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:392)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:925)
at forge.game.GameAction.startGame(GameAction.java:1462)
at forge.game.Match.startGame(Match.java:95)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
- Turbomoose
- Posts: 41
- Joined: 21 Mar 2016, 15:58
- Has thanked: 0 time
- Been thanked: 0 time
Who is online
Users browsing this forum: No registered users and 114 guests