Forge Release 09/23/2017 ver 1.6.3
by mtgrares
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Forge Release 09/23/2017 ver 1.6.3
by friarsol » 27 Sep 2017, 14:20
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.Agetian wrote: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.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.
- Agetian
- 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
by 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
- 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
by Agetian » 27 Sep 2017, 16:27
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?frankyXII wrote: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.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
- 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
by 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
by 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.
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.
Re: Forge Release 09/23/2017 ver 1.6.3
by Marek14 » 28 Sep 2017, 07:23
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.Agetian wrote: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.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.
- Agetian
Re: Forge Release 09/23/2017 ver 1.6.3
by Agetian » 28 Sep 2017, 09:28
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.Marek14 wrote: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.Agetian wrote: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.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.
- Agetian
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
by 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.
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)
Re: Forge Release 09/23/2017 ver 1.6.3
by Agetian » 29 Sep 2017, 05:26
I'm unable to reproduce this... Having a screenshot of the battlefield or (even better) a dumped game state would have helped.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)
- 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
by 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.
55 posts
• Page 4 of 4 • 1, 2, 3, 4
Who is online
Users browsing this forum: Google [Bot] and 100 guests