It is currently 18 Jan 2017, 20:17
   
Text Size

Upcoming Release: Forge version 1.5.58

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, moomarc, DennisBergkamp, Rob Cashwalker, friarsol, Chris H., CCGHQ Admins

Re: Upcoming Release: Forge version 1.5.58

Postby 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: 6933
Joined: 15 May 2010, 04:20
Has thanked: 215 times
Been thanked: 799 times

Re: Upcoming Release: Forge version 1.5.58

Postby 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
Agetian
Programmer
 
Posts: 2354
Joined: 14 Mar 2011, 05:58
Has thanked: 475 times
Been thanked: 266 times

Re: Upcoming Release: Forge version 1.5.58

Postby friarsol » 10 Jan 2017, 15:14

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.
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.

Once the cards are up on Gatherer, we'll get the mtgjson and build the edition file from that.
friarsol
Global Moderator
 
Posts: 6933
Joined: 15 May 2010, 04:20
Has thanked: 215 times
Been thanked: 799 times

Re: Upcoming Release: Forge version 1.5.58

Postby 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
Agetian
Programmer
 
Posts: 2354
Joined: 14 Mar 2011, 05:58
Has thanked: 475 times
Been thanked: 266 times

Re: Upcoming Release: Forge version 1.5.58

Postby 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
pfps
 
Posts: 38
Joined: 09 Jan 2015, 14:34
Has thanked: 0 time
Been thanked: 4 times

Re: Upcoming Release: Forge version 1.5.58

Postby 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
Agetian
Programmer
 
Posts: 2354
Joined: 14 Mar 2011, 05:58
Has thanked: 475 times
Been thanked: 266 times

Re: Upcoming Release: Forge version 1.5.58

Postby pfps » 10 Jan 2017, 20:57

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
Looks good.

Thanks,

peter
pfps
 
Posts: 38
Joined: 09 Jan 2015, 14:34
Has thanked: 0 time
Been thanked: 4 times

Re: Upcoming Release: Forge version 1.5.58

Postby 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:

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)
It looks like this might be triggered by the fact that my opponent has Crazed Firecat in his deck, which seems to consistently cause this (even when just in the opponent's hand, not on the battlefield or anything). Does anyone know what could be going on and how to fix it?

- Agetian
Agetian
Programmer
 
Posts: 2354
Joined: 14 Mar 2011, 05:58
Has thanked: 475 times
Been thanked: 266 times

Re: Upcoming Release: Forge version 1.5.58

Postby 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.
Hanmac
 
Posts: 893
Joined: 06 May 2013, 18:44
Has thanked: 221 times
Been thanked: 146 times

Re: Upcoming Release: Forge version 1.5.58

Postby Agetian » 11 Jan 2017, 11:20

Hanmac wrote:@Agetian: try if it works when you revert my changes for TrackableObjects. Probably my fault and my plan doesn't work.
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...

- Agetian
Agetian
Programmer
 
Posts: 2354
Joined: 14 Mar 2011, 05:58
Has thanked: 475 times
Been thanked: 266 times

Re: Upcoming Release: Forge version 1.5.58

Postby 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)
Attachments
Capture.PNG
Turbomoose
 
Posts: 18
Joined: 21 Mar 2016, 15:58
Has thanked: 0 time
Been thanked: 0 time

Previous

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 2 guests


Who is online

In total there are 2 users online :: 0 registered, 0 hidden and 2 guests (based on users active over the past 10 minutes)
Most users ever online was 279 on 11 Jul 2013, 22:03

Users browsing this forum: No registered users and 2 guests

Login Form