It is currently 05 Sep 2025, 07:54
   
Text Size

Bug Reports (snapshot builds)

Post MTG Forge Related Programming Questions Here

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

Re: Bug Reports (snapshot builds)

Postby friarsol » 16 Jul 2016, 23:56

tjtillman wrote:r31534

Conduit of Emrakul should not have Vigilance
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)

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

Re: Bug Reports (snapshot builds)

Postby 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
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

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

Postby Agetian » 17 Jul 2016, 14:41

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.
Agreed. Does anyone know where to look for it in the code?
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)

Postby 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.
Shukal
 
Posts: 16
Joined: 03 Mar 2015, 16:23
Has thanked: 13 times
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Agetian » 18 Jul 2016, 10:55

Shukal wrote:r31566

When a spell is cast with Kaho, Minamo Historian 's activated ability, the other 2 remembered spells stop being remembered.
Fixed (r31570).

- Agetian
Agetian
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

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

Re: Bug Reports (snapshot builds)

Postby Agetian » 18 Jul 2016, 12:54

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.
Ah, interesting, thanks for the hint! :) I tested it and it seems to work fine, I'll commit the simpler fix then (in order not to add a different parameter without having a good reason). By the way, one thing I noticed (both ways) is that when the cast spell leaves the exile and goes to the graveyard, it also appears in the flashback zone for some weird reason (but at least you can't cast it from there). Not sure what's going on with the flashback zone but sometimes it seems to wrongly register spells that are available/not available for casting. :/ At any rate, Kaho seems to work fine otherwise (without the ForgetRemembered option, too).

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)

Postby Hanmac » 18 Jul 2016, 13:13

@Agetian: about the cancel:

i think its because of GameAction:
Code: Select all
if (!zoneTo.is(ZoneType.Exile)) {
    c.setExiledWith(null);
}
which is used to clear the variable.
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.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby 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.
Image
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)

Postby friarsol » 18 Jul 2016, 21:36

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.
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.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby 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)
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby 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
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

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

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 63 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 63 users online :: 0 registered, 0 hidden and 63 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 63 guests

Login Form