It is currently 19 Apr 2024, 05:11
   
Text Size

Forge Release 09/23/2017 ver 1.6.3

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Re: Forge Release 09/23/2017 ver 1.6.3

Postby friarsol » 27 Sep 2017, 14:20

Agetian wrote:
Seravy wrote:Graveyard ordering :

I suggest not including the option to have ordering active if enemy decks contain the cards - it provides information to the player about the contents of the enemy deck. It should be limited to own deck only.
This is actually an interesting question. I share your concerns, but I guess there will be unhappy people who would steal the opposing Volrath or whatever and then complain that they don't (or didn't) get a chance to order their graveyard. Not sure what the best approach would be though, I'm open to more opinions.

- Agetian
I believe according to the rules, this is only in effect if the format you are playing contains any of these cards. Unfortunately, our matches don't really track the format that was chosen. I guess we could "guess" the format, based on the two decklists. (Most restrictive format that each deck qualifies for) and if that format doesn't require strict graveyard ordering, then it can auto order. Then the preference could basically mean Off for not caring ever, or On for caring in the appropriate formats.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Forge Release 09/23/2017 ver 1.6.3

Postby Agetian » 27 Sep 2017, 14:29

Oh, I have a somewhat different though broadly similar idea that I'm implementing right now: basically, there will be three toggles for the option - "Never" (which is the default standard Forge functionality which doesn't care about graveyard ordering unless it's an AF ReorderZone effect or something along those lines), "With Relevant Cards" (which will let you do it as long as you control at least one card which cards about the order, or if you have one or more of them in your deck - yes, this means that if you're only temporarily controlling something like that, you won't get the possibility to arrange your graveyard before you actually steal the thing from your opponent, but it's a decent compromise between "not willing to be bothered by graveyard order all the time" and "willing to be able to order the graveyard after [and if] it starts to matter"; also, it doesn't spoil the opponent's deck composition in any way), "Always" (which will always let the player order the cards going to graveyard, which is something that someone can turn on when expecting to play the relevant format a lot, or if it doesn't bother someone that those popups will appear more often than not). Hopefully this will be acceptable :)

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge Release 09/23/2017 ver 1.6.3

Postby Agetian » 27 Sep 2017, 16:27

frankyXII wrote:
If you'd like an actual Mac .app package, we're probably going to be talking about a version that is at least several (two or three, possibly more?) years old or so. There is really no reason to play such an old version. It is possible to launch the unified package provided in this thread on a Mac, though you may need to take an extra step or two to do so (not sure about the particular details, but I'll ask a friend of mine who is successfully playing the current Forge on a Mac without the .app package).

- Agetian
Thank you so much. I don't have a Mac so I'm not familiar with its OS, and I also got the idea that it was possible to run this as it is on a Mac, but my friend says he can't open it. I will check again with my friend.
Ok, as a followup to this, do you know your friend's model of Mac? Specifically, does it have a Retina HiDPI display or not?

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge Release 09/23/2017 ver 1.6.3

Postby RedDevil13 » 27 Sep 2017, 20:00

An error that has been happening for quite a few sets now.... When I do a draft and then play it against the AI decks, most of them don't have the appropriate lands in their deck. Sometimes the decks are less than 40 cards, other times they are 40 but have maybe only 10-12 lands. Most cases they are simply running a solid 2 color deck with only 1 type of basic land, ie a GB deck with only swamps. happens almost constantly
RedDevil13
 
Posts: 19
Joined: 08 Dec 2015, 15:41
Has thanked: 0 time
Been thanked: 2 times

Re: Forge Release 09/23/2017 ver 1.6.3

Postby Magicus » 27 Sep 2017, 21:20

Also, not sure if it was mentioned already, but there is currently one small cosmetic issue with the foil overlay - it is not really a best friend with split cards :)
Preparing a horizontal overlay maybe wouldn't be so hard, but a more complicated matter could potentially be to ensure, that it will be generated only for a small subset of these special non-vertical cards.
Attachments
Screenshot_2017-09-27-22-15-36.png
Magicus
 
Posts: 12
Joined: 29 Jun 2017, 10:08
Has thanked: 1 time
Been thanked: 1 time

Re: Forge Release 09/23/2017 ver 1.6.3

Postby Marek14 » 28 Sep 2017, 07:23

Agetian wrote:
Seravy wrote:Graveyard ordering :

I suggest not including the option to have ordering active if enemy decks contain the cards - it provides information to the player about the contents of the enemy deck. It should be limited to own deck only.
This is actually an interesting question. I share your concerns, but I guess there will be unhappy people who would steal the opposing Volrath or whatever and then complain that they don't (or didn't) get a chance to order their graveyard. Not sure what the best approach would be though, I'm open to more opinions.

- Agetian
Main problem here is Bone Dancer: with Bone Dancer in your deck, you don't have to care about your graveyard order, but opponent has to care about their.
Marek14
Tester
 
Posts: 2759
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 296 times

Re: Forge Release 09/23/2017 ver 1.6.3

Postby Agetian » 28 Sep 2017, 09:28

Marek14 wrote:
Agetian wrote:
Seravy wrote:Graveyard ordering :

I suggest not including the option to have ordering active if enemy decks contain the cards - it provides information to the player about the contents of the enemy deck. It should be limited to own deck only.
This is actually an interesting question. I share your concerns, but I guess there will be unhappy people who would steal the opposing Volrath or whatever and then complain that they don't (or didn't) get a chance to order their graveyard. Not sure what the best approach would be though, I'm open to more opinions.

- Agetian
Main problem here is Bone Dancer: with Bone Dancer in your deck, you don't have to care about your graveyard order, but opponent has to care about their.
Ah, this can probably be special-cased in code, I'll see what I can do. Of course, on "Always", there will be no problem.
EDIT: Updated the code for Bone Dancer.

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge Release 09/23/2017 ver 1.6.3

Postby magiprog » 28 Sep 2017, 22:03

Description:

Experienced a crash when the AI is playing Hanweir Battlements and Hanweir Garrison. Both are on the field, the AI merges them together in the first main phase, then in the Begin Combat phase it tries to decide whether to attack. Stack trace below.

NullPointerException | Open
Code: Select all
Forge Version:    1.6.3-r-1
Operating System: Windows 7 6.1 x86
Java Version:     1.8.0_66 Oracle Corporation

java.lang.NullPointerException
   at forge.game.card.Card.getCMC(Card.java:5278)
   at forge.game.card.Card.getCMC(Card.java:5232)
   at forge.ai.CreatureEvaluator.evaluateCreature(CreatureEvaluator.java:48)
   at forge.ai.CreatureEvaluator.evaluateCreature(CreatureEvaluator.java:24)
   at forge.ai.ComputerUtilCard.evaluateCreature(ComputerUtilCard.java:412)
   at forge.ai.AiAttackController.shouldAttack(AiAttackController.java:1116)
   at forge.ai.AiAttackController.declareAttackers(AiAttackController.java:986)
   at forge.ai.ComputerUtilCard.doesSpecifiedCreatureAttackAI(ComputerUtilCard.java:461)
   at forge.ai.ComputerUtilCard.shouldPumpCard(ComputerUtilCard.java:1256)
   at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:468)
   at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:465)
   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:276)
   at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:465)
   at forge.ai.ability.PumpAi.pumpTgtAI(PumpAi.java:458)
   at forge.ai.ability.PumpAi.checkApiLogic(PumpAi.java:373)
   at forge.ai.SpellAbilityAi.canPlayWithoutRestrict(SpellAbilityAi.java:83)
   at forge.ai.SpellAbilityAi.canPlayAI(SpellAbilityAi.java:53)
   at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:36)
   at forge.ai.AiController.canPlaySa(AiController.java:633)
   at forge.ai.AiController.canPlayAndPayFor(AiController.java:617)
   at forge.ai.AiController.chooseSpellAbilityToPlayFromList(AiController.java:1280)
   at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1252)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1135)
   at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:411)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:952)
   at forge.game.GameAction.startGame(GameAction.java:1574)
   at forge.game.Match.startGame(Match.java:87)
   at forge.match.HostedMatch$2.run(HostedMatch.java:225)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
magiprog
 
Posts: 3
Joined: 28 Sep 2017, 21:58
Has thanked: 1 time
Been thanked: 0 time

Re: Forge Release 09/23/2017 ver 1.6.3

Postby Agetian » 29 Sep 2017, 05:26

magiprog wrote:Description:

Experienced a crash when the AI is playing Hanweir Battlements and Hanweir Garrison. Both are on the field, the AI merges them together in the first main phase, then in the Begin Combat phase it tries to decide whether to attack. Stack trace below.

NullPointerException | Open
Code: Select all
Forge Version:    1.6.3-r-1
Operating System: Windows 7 6.1 x86
Java Version:     1.8.0_66 Oracle Corporation

java.lang.NullPointerException
   at forge.game.card.Card.getCMC(Card.java:5278)
   at forge.game.card.Card.getCMC(Card.java:5232)
   at forge.ai.CreatureEvaluator.evaluateCreature(CreatureEvaluator.java:48)
   at forge.ai.CreatureEvaluator.evaluateCreature(CreatureEvaluator.java:24)
   at forge.ai.ComputerUtilCard.evaluateCreature(ComputerUtilCard.java:412)
   at forge.ai.AiAttackController.shouldAttack(AiAttackController.java:1116)
   at forge.ai.AiAttackController.declareAttackers(AiAttackController.java:986)
   at forge.ai.ComputerUtilCard.doesSpecifiedCreatureAttackAI(ComputerUtilCard.java:461)
   at forge.ai.ComputerUtilCard.shouldPumpCard(ComputerUtilCard.java:1256)
   at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:468)
   at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:465)
   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:276)
   at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:465)
   at forge.ai.ability.PumpAi.pumpTgtAI(PumpAi.java:458)
   at forge.ai.ability.PumpAi.checkApiLogic(PumpAi.java:373)
   at forge.ai.SpellAbilityAi.canPlayWithoutRestrict(SpellAbilityAi.java:83)
   at forge.ai.SpellAbilityAi.canPlayAI(SpellAbilityAi.java:53)
   at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:36)
   at forge.ai.AiController.canPlaySa(AiController.java:633)
   at forge.ai.AiController.canPlayAndPayFor(AiController.java:617)
   at forge.ai.AiController.chooseSpellAbilityToPlayFromList(AiController.java:1280)
   at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1252)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1135)
   at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:411)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:952)
   at forge.game.GameAction.startGame(GameAction.java:1574)
   at forge.game.Match.startGame(Match.java:87)
   at forge.match.HostedMatch$2.run(HostedMatch.java:225)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
I'm unable to reproduce this... Having a screenshot of the battlefield or (even better) a dumped game state would have helped.

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge Release 09/23/2017 ver 1.6.3

Postby magiprog » 29 Sep 2017, 20:50

These are older instances of the exception I took screen caps of. A common thread (present in the most recent one as well as I recall) looks like Atraxa on the human/defending side. The crash doesn't happen every time. I tried playing several more games to get it to happen again so I could capture more but didn't get a crash, even with multiple merges into Hanweir the Writhing Township (and successful attacks with it) - don't think I had Atraxa present on any of those games though.
Attachments
Forge-Exception-2.jpg
Forge-Exception.jpg
magiprog
 
Posts: 3
Joined: 28 Sep 2017, 21:58
Has thanked: 1 time
Been thanked: 0 time

Previous

Return to Forge

Who is online

Users browsing this forum: Marek14 and 81 guests


Who is online

In total there are 82 users online :: 1 registered, 0 hidden and 81 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: Marek14 and 81 guests

Login Form