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 friarsol » 16 Jul 2016, 23:56
It doesn't? You sure there isn't an effect in play?
- 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 » 17 Jul 2016, 05:04
I'm not sure if this is really a bug or not, I guess for now it's more of a rules question, but since it may be a bug I decided to bring it up here (it's relevant to the latest SVN build as of this writing). I have Delver of Secrets, Bitterblossom and Dark Confidant in play, each of which has an "at the beginning of your upkeep" ability. Should I be able to order these abilities or not? The game gives me no such opportunity. I guess the functional difference in ordering them is rather minor, but Delver of Secrets would be looking at a different card on top of the deck if its ability happens before Dark Confidant's ability compared to if it happens after it...
EDIT: Here's a strange thing. In the next game I played, I got the exact same setup (three cards listed above) and the game asked me to order the abilities this time. Can something potentially affect this (whether you can or can't order abilities at the beginning of the upkeep)?
- Agetian
EDIT: Here's a strange thing. In the next game I played, I got the exact same setup (three cards listed above) and the game asked me to order the abilities this time. Can something potentially affect this (whether you can or can't order abilities at the beginning of the upkeep)?
- 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 Hanmac » 17 Jul 2016, 05:42
@Agetian: i noticed this strange behavior too.
it seems it does only ask you once to order the triggers, but not a second time (thinks you want to have the same order again)
i am not 100% sure if thats a feature or a bug ;P
it seems it does only ask you once to order the triggers, but not a second time (thinks you want to have the same order again)
i am not 100% sure if thats a feature or a bug ;P
Re: Bug Reports (snapshot builds)
by friarsol » 17 Jul 2016, 12:25
I think it's a feature run amok. I don't know who developed it, but I guess they assumed that the first time you order something you would want it that order for the rest of the game. Which a) isn't necessarily true, b) doesn't have a UI element to ASK if you want to remember it, and c) doesn't have a UI element to clear it out (such as auto-accept trigger stuff). It probably should be disabled until b and c are created for 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 Agetian » 17 Jul 2016, 14:41
Agreed. Does anyone know where to look for it in the code?friarsol wrote:I think it's a feature run amok. I don't know who developed it, but I guess they assumed that the first time you order something you would want it that order for the rest of the game. Which a) isn't necessarily true, b) doesn't have a UI element to ASK if you want to remember it, and c) doesn't have a UI element to clear it out (such as auto-accept trigger stuff). It probably should be disabled until b and c are created for it.
EDIT: I think I found it. Will see if I can do anything about it.

EDIT 2: Ok, until someone can code a better GUI implementation for this (e.g. something similar to what was done with auto-yield), I'm offering a compromise solution in r31553: the game will now prompt you in case there's a saved simultaneous ability order if you want to change the order or retain the same order as was used last time. This is a little less convenient, perhaps (as it requires an extra action) but it's far less intrusive than having to reorder the abilities every time from scratch, because the pre-selected default is "Yes" and thus in the desktop version of the game, if you don't want to change the order, all it takes is hitting "Space" to confirm that you want the same order. In the mobile version, it's one extra tap (on the "Yes" button) if you want to confirm the same order. If you choose "No", the game will bring up the standard window for ordering abilities and then save the changes.
Now, I'm not sure about something: I'm using the standard prompt message box to inquire about changing the order of abilities. To make sure it's clear to the player which abilities are meant, I'm listing the cards that are the sources of abilities (and I decided to limit the number of listed cards to 10 to avoid clutter - if there are more than 10 simultaneous abilities then the game follows the 10th listed ability with <...> to indicate that there are more). Originally I wanted to list the descriptions of abilities themselves (via .getDescription()) but that resulted in a highly cluttered prompt box, it's probably possible to list 3-5 abilities or so without the prompt box blowing out of proportion. Is what I've done enough for now or is there a better way we can visualize this? Also, is listing the first 10 ability source cards enough?
- 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 Shukal » 18 Jul 2016, 10:18
r31566
When a spell is cast with Kaho, Minamo Historian 's activated ability, the other 2 remembered spells stop being remembered.
When a spell is cast with Kaho, Minamo Historian 's activated ability, the other 2 remembered spells stop being remembered.
Re: Bug Reports (snapshot builds)
by Agetian » 18 Jul 2016, 10:55
Fixed (r31570).Shukal wrote:r31566
When a spell is cast with Kaho, Minamo Historian 's activated ability, the other 2 remembered spells stop being remembered.
- 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 Hanmac » 18 Jul 2016, 11:38
@Agetian I wanted to fix that too but you where faster.
I think Kaho does not need this ForgetRemembered because it's own Forget Trigger will remove it in Remembered when the card does leave the exile.
I think Kaho does not need this ForgetRemembered because it's own Forget Trigger will remove it in Remembered when the card does leave the exile.
Re: Bug Reports (snapshot builds)
by Agetian » 18 Jul 2016, 12:54
Ah, interesting, thanks for the hint!Hanmac wrote:@Agetian I wanted to fix that too but you where faster.
I think Kaho does not need this ForgetRemembered because it's own Forget Trigger will remove it in Remembered when the card does leave the exile.

Oh, and one more thing I noticed (with both Kaho and many other similar cards that allow you to temporarily cast spells from graveyard, exile, etc.): if you start casting the said spell (e.g. pay the mana cost for Kaho's activated ability and choose the spell in exile) but then cancel it before finishing targeting, you don't get another chance to cast that spell even though it remains in exile and technically remembered... Not sure why and not sure how to solve this either, but it happens for many other similar cards too.
- 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 Hanmac » 18 Jul 2016, 13:13
@Agetian: about the cancel:
i think its because of GameAction:
it seems to be funky when playing spells and then press Cancel :/ (because it does leave the exile)
but i don't know what would be a better way.
same for "May be played" somewhere too, BUT that need to be rewritten for other reasons too, so its not that bad in the moment.
i think its because of GameAction:
- Code: Select all
if (!zoneTo.is(ZoneType.Exile)) {
c.setExiledWith(null);
}
it seems to be funky when playing spells and then press Cancel :/ (because it does leave the exile)
but i don't know what would be a better way.
same for "May be played" somewhere too, BUT that need to be rewritten for other reasons too, so its not that bad in the moment.
Re: Bug Reports (snapshot builds)
by fmartel » 18 Jul 2016, 20:10
With Forge V1.5.55 -r31573 I have this problem :
Commander Kaalia of the Vast is attacking, I "declare" that I want to put OTBF Alabaster Dragon, the game stops there with no possibility of Ok or Cancel.

Commander Kaalia of the Vast is attacking, I "declare" that I want to put OTBF Alabaster Dragon, the game stops there with no possibility of Ok or Cancel.

- fmartel
- Posts: 281
- Joined: 31 Dec 2013, 19:27
- Location: Québec City
- Has thanked: 8 times
- Been thanked: 4 times
Re: Bug Reports (snapshot builds)
by friarsol » 18 Jul 2016, 21:36
If you are intentionally doing it, please stop clipping your images, it makes it hard to figure out whats going on with the rest of your battlefield. Probably whats happening is that it's asking you (incorrectly) who the creature should be attacking, even though it should automatically be attacking the same Opponent Kaalia is attacking.fmartel wrote:With Forge V1.5.55 -r31573 I have this problem :
Commander Kaalia of the Vast is attacking, I "declare" that I want to put OTBF Alabaster Dragon, the game stops there with no possibility of Ok or Cancel.
- 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 Hanmac » 19 Jul 2016, 07:03
@Agetian: tried to fix Kaho, Minamo Historian more.
i added your ForgetTargetRemembered again, but extended it that it only forgets if the spell was cast successful. (for that i did some changes in HumanPlayer)
i removed that GameAction does clear ExiledWith when its moved to the stack.
(GameAction does not know if a Spell was cast from exile and got chanceled, or if the Spell does exile itself because of another effect)
i need to take a look at other cards, but for this one it does work if you cancel the spell to cast it again.
(hm there seems to be a bug with Optional now, that you can't press NO if it does ask you to play this spell, but i will look at this later)
for other cards, which does allow you to cast from graveyard, you need to look if it does use "May be played", because i didn't touched that yet.
(because it does need a total rewrite)
i added your ForgetTargetRemembered again, but extended it that it only forgets if the spell was cast successful. (for that i did some changes in HumanPlayer)
i removed that GameAction does clear ExiledWith when its moved to the stack.
(GameAction does not know if a Spell was cast from exile and got chanceled, or if the Spell does exile itself because of another effect)
i need to take a look at other cards, but for this one it does work if you cancel the spell to cast it again.
(hm there seems to be a bug with Optional now, that you can't press NO if it does ask you to play this spell, but i will look at this later)
for other cards, which does allow you to cast from graveyard, you need to look if it does use "May be played", because i didn't touched that yet.
(because it does need a total rewrite)
Re: Bug Reports (snapshot builds)
by Agetian » 19 Jul 2016, 14:00
r31580: I noticed that split cards on stack are now shown as a combination of two sides (instead of only the chosen side), and because of that they're typically shown with the gold color border (e.g. Fire // Ice is shown as a "multicolored" gold card while on stack, while it should be shown as only the color of the side chosen). I don't know if this is a purely visual glitch or if it's functional too and the card is actually treated as multicolored, but this used not to happen a while ago...
- Agetian
- 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 Agetian » 19 Jul 2016, 18:33
r31582: The AI attacked with Hero of Bladehold into my Tezzeret the Seeker. This crash occurred:
- ClassCastException | Open
- Code: Select all
Forge Version: 1.5.55-SNAPSHOT-r31573u
Operating System: Linux 3.8.0-26-generic amd64
Java Version: 1.7.0_51 Oracle Corporation
java.lang.ClassCastException: forge.game.card.Card cannot be cast to forge.game.player.Player
at forge.ai.ability.TokenAi.chooseSinglePlayer(TokenAi.java:317)
at forge.ai.SpellAbilityAi.chooseSingleEntity(SpellAbilityAi.java:231)
at forge.ai.PlayerControllerAi.chooseSingleEntityForEffect(PlayerControllerAi.java:151)
at forge.game.player.PlayerController.chooseSingleEntityForEffect(PlayerController.java:117)
at forge.game.ability.effects.TokenEffect.resolve(TokenEffect.java:349)
at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1279)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1260)
at forge.ai.ComputerUtil.playNoStack(ComputerUtil.java:269)
at forge.ai.PlayerControllerAi.playSpellAbilityNoStack(PlayerControllerAi.java:314)
at forge.game.trigger.WrappedAbility.resolve(WrappedAbility.java:421)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1279)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1260)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:511)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1004)
at forge.game.GameAction.startGame(GameAction.java:1481)
at forge.game.Match.startGame(Match.java:95)
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
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Who is online
Users browsing this forum: No registered users and 63 guests