Upcoming Release: Forge version 1.5.58
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Upcoming Release: Forge version 1.5.58
by friarsol » 03 Nov 2016, 01:22
Release date: Soonish for C16?
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Upcoming Release: Forge version 1.5.58
by friarsol » 03 Nov 2016, 12:58
Hanmac... it looks like you broke a ton of things for this release, please get them fixed up so we can post a new snapshot for people.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Upcoming Release: Forge version 1.5.58
by Hanmac » 03 Nov 2016, 13:11
@friarsol: yeah very sorry, it was bad timing from me that this got pass the radar. (and passes the tests)
the bugs in the other thread are already fixed.
and i did some changes for SpellPermanent now be SpellApiBased.
that is for helping the AI.
===
currently i am trying to fix the problem for Curse of Vengeance, enchanting a Player which loses the game.
currently i get it working with this code:
but if i change it that he aura gots invalid and unattached, the Trigger does not trigger anymore.
the bugs in the other thread are already fixed.
and i did some changes for SpellPermanent now be SpellApiBased.
that is for helping the AI.
===
currently i am trying to fix the problem for Curse of Vengeance, enchanting a Player which loses the game.
currently i get it working with this code:
- Code: Select all
Name:Curse of Vengeance
ManaCost:B
Types:Enchantment Aura Curse
K:Enchant player
A:SP$ Attach | Cost$ B | ValidTgts$ Player | AILogic$ Curse
T:Mode$ SpellCast | ValidActivatingPlayer$ Player.EnchantedBy | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted player casts a spell, put a spite counter on CARDNAME.
SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ SPITE | CounterNum$ 1
T:Mode$ LosesGame | Execute$ DBLife | ValidPlayer$ Player.EnchantedBy | TriggerDescription$ When enchanted player loses the game, you gain X life and draw X cards, where X is the number of spite counters on CARDNAME.
SVar:DBLife:DB$ GainLife | LifeAmount$ X | References$ X | SubAbility$ DBDraw
SVar:DBDraw:DB$Draw | NumCards$ X | References$ X
SVar:X:Count$CardCounters.SPITE
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/curse_of_vengeance.jpg
Oracle:Enchant player\nWhenever enchanted player casts a spell, put a spite counter on Curse of Vengeance.\nWhen enchanted player loses the game, you gain X life and draw X cards, where X is the number of spite counters on Curse of Vengeance.
but if i change it that he aura gots invalid and unattached, the Trigger does not trigger anymore.
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 04 Nov 2016, 09:21
I'm back from my business trip, guys!
Judging by the look of things, it looks like I'd better wait with publishing the new Android Forge release until the C16 release is ready which should hopefully stabilize things, right?
- Agetian
![Smile :)](./images/smilies/icon_smile.gif)
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by Hanmac » 04 Nov 2016, 09:31
hm yeah imo you can wait a bit with the Android version.Agetian wrote:I'm back from my business trip, guys!Judging by the look of things, it looks like I'd better wait with publishing the new Android Forge release until the C16 release is ready which should hopefully stabilize things, right?
- Agetian
(its a bit more difficult to release right?)
===
if you can you can look at my problem with enchanting a Player which loses the game. (see post above)
the card would work, but the Aura does stays on the battlefield but should not. (that is broken for other Curse cards too)
but fixing that would prevent the new Curse card from working.
![Sad :(](./images/smilies/icon_sad.gif)
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 04 Nov 2016, 09:57
Ah, makes sense, thanks for the info! It's not really difficult to release, it involves running a single script after updating a couple game version variables, it's just that if things are a bit broken now then probably it's better to release a version which will be more stable (considering that everyone will be asked to update to it anyway).
I'll prolly need a few days to get things sorted out a bit before I can get back to coding Forge, but if you are unable to fix this before I can get back to coding, I'll take a look into it if I can figure out what's up![Smile :)](./images/smilies/icon_smile.gif)
- Agetian
I'll prolly need a few days to get things sorted out a bit before I can get back to coding Forge, but if you are unable to fix this before I can get back to coding, I'll take a look into it if I can figure out what's up
![Smile :)](./images/smilies/icon_smile.gif)
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 12 Nov 2016, 19:39
I'm still trying to get through the real-life business at work to get back to coding Forge, so I apologize for the delays in my submissions :/ Judging by my experience playing with the latest snapshots and judging by the input provided both in the 'svn' and in the '1.5.57' threads, the current major issues are related to triggers:
- things triggering more times than they're supposed to (e.g. Annihilator-related reported issue);
- things not triggering at all even though they're supposed to (e.g. Cumulative Upkeep);
- things triggering at the wrong time (someone reported drawing a card (draw step) before The Abyss finished triggering in the upkeep step; personally I couldn't reproduce this in the svn, but maybe it was dependent on some other condition I was not aware of).
Have any of these issues been addressed by now and has anyone found time to look into the possible causes? As far as I can say, these issues are currently the ones that force people to stay on the older release (1.5.56) compared to either the latest release or the latest snapshot.
Thanks in advance for the info!
- Agetian
- things triggering more times than they're supposed to (e.g. Annihilator-related reported issue);
- things not triggering at all even though they're supposed to (e.g. Cumulative Upkeep);
- things triggering at the wrong time (someone reported drawing a card (draw step) before The Abyss finished triggering in the upkeep step; personally I couldn't reproduce this in the svn, but maybe it was dependent on some other condition I was not aware of).
Have any of these issues been addressed by now and has anyone found time to look into the possible causes? As far as I can say, these issues are currently the ones that force people to stay on the older release (1.5.56) compared to either the latest release or the latest snapshot.
Thanks in advance for the info!
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by drdev » 12 Nov 2016, 21:46
So I finally got a break from work and was actually looking to get an Android update out today with Innistrad and Lorwyn-Shadowmoor now fleshed out for Planar Conquest. Should I wait? Is the current snapshot unstable?
EDIT: Things seemed stable enough in my testing, so I went ahead and released it. Worst case I can release a follow-up patch.
EDIT: Things seemed stable enough in my testing, so I went ahead and released it. Worst case I can release a follow-up patch.
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 13 Nov 2016, 04:49
Thanks a lot for the update, Dan! Nice to see some new planes implemented!
As for the stability of the game, it's highly debatable - I mean, it doesn't CTD a lot or anything, but triggers are apparently half-broken at the moment, which keeps a lot of people on earlier game versions. Here are examples of situations that are definitely broken at the moment:
Cockatrice: the trigger does not fire if the AI controls Cockatrice that gets blocked.
Aboroth: the Cumulative Upkeep trigger does not fire if the AI controls Aboroth. It does fire if the human controls Aboroth, but in a somewhat weird way: the counter visually goes on Aboroth first (without adding -1/-1 to it), then the player is asked if he wants to put a -1/-1 counter on Aboroth. Then if the player says "yes", the -1/-1 portion is applied. I'm pretty sure it used to look differently (in particular, the counters were placed on the card, visually and functionally, only after the positive response from the player).
Vebulid: the "destroy at end of combat" trigger does not fire if the AI controls Vebulid. For the human, it does fire, but it comes with the "Phase: null" comment while on stack, indicating that there's probably something wrong with setting phases.
I don't think these are "specific card" issues, they're more of general issues that comprehensively affect a whole lot of cards in a rather similar fashion ("lots of triggers do not fire for the AI at all, and may fire in a somewhat strange way/pattern for the human"). Therefore, similar conditions will pretty much not work on any other card that utilizes triggers in a remotely similar fashion, and thus, triggers and phase setting appear to be partly broken.
Here's hoping that this can get fixed soon, and then I think we'll need a patch-up release for the mobile version of Forge as well. I can release the update in case you won't be around at the moment, too.![Smile :)](./images/smilies/icon_smile.gif)
- Agetian
As for the stability of the game, it's highly debatable - I mean, it doesn't CTD a lot or anything, but triggers are apparently half-broken at the moment, which keeps a lot of people on earlier game versions. Here are examples of situations that are definitely broken at the moment:
Cockatrice: the trigger does not fire if the AI controls Cockatrice that gets blocked.
Aboroth: the Cumulative Upkeep trigger does not fire if the AI controls Aboroth. It does fire if the human controls Aboroth, but in a somewhat weird way: the counter visually goes on Aboroth first (without adding -1/-1 to it), then the player is asked if he wants to put a -1/-1 counter on Aboroth. Then if the player says "yes", the -1/-1 portion is applied. I'm pretty sure it used to look differently (in particular, the counters were placed on the card, visually and functionally, only after the positive response from the player).
Vebulid: the "destroy at end of combat" trigger does not fire if the AI controls Vebulid. For the human, it does fire, but it comes with the "Phase: null" comment while on stack, indicating that there's probably something wrong with setting phases.
I don't think these are "specific card" issues, they're more of general issues that comprehensively affect a whole lot of cards in a rather similar fashion ("lots of triggers do not fire for the AI at all, and may fire in a somewhat strange way/pattern for the human"). Therefore, similar conditions will pretty much not work on any other card that utilizes triggers in a remotely similar fashion, and thus, triggers and phase setting appear to be partly broken.
Here's hoping that this can get fixed soon, and then I think we'll need a patch-up release for the mobile version of Forge as well. I can release the update in case you won't be around at the moment, too.
![Smile :)](./images/smilies/icon_smile.gif)
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by Seravy » 13 Nov 2016, 22:43
I reported that one. Specifically, the ability triggered at the correct time BUT phase advanced after other upkeep triggers were handled with it still on the stack. There is a screenshot showing what cards I had in play, 2 copies of Oath of Druids seem to be the only upkeep related other cards. Not 100% sure but I believe those did not go on the stack because there were an equal number of creatures. Maybe try setting Oaths and/or Abyss to auto-yield on, that could be the cause of the phase advancing.Agetian wrote:- things triggering at the wrong time (someone reported drawing a card (draw step) before The Abyss finished triggering in the upkeep step; personally I couldn't reproduce this in the svn, but maybe it was dependent on some other condition I was not aware of).
Triggers that failed to work in my games for the AI side I remember were Wall of Junk and Gilded Drake on top of Vebulid.
I'd be happy if someone fixed Temporal Aperture too, as is there is no way to actually play the revealed card for some reason, at least neither me nor another person reporting it found one (think I saw old comments related to the card so it worked some time in the past?). It was already broken in 1.5.56 so going back to that is no help on this one.
Anyway, the big problem is the triggers not triggering, that affects way too many cards, including stuff commonly drafted. Wish you good luck on fixing that!
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 29 Nov 2016, 04:46
I think that things are slowly calming down when it comes to critical blocker bugs. The only remaining major things that I can think of off the top of my head are the following:
- Cumulative Upkeep not working for the AI (way too unfair, especially when playing one of the Quest Worlds that is centered around sets full of cards with Cumulative Upkeep or at least featuring them prominently, e.g. the Ice Age one).
- Miracle not working according to the rules (maybe not as critical, but given that the mechanic is relatively recent and is featured in many modern decks, it's definitely visible and affects a good number of cards).
If we can get at least the first one (or both of them) down, we can probably attempt a release (which is really overdue given the brokenness of both the 1.5.57 beta release and the latest mobile build). Is there any ETA on a potential solution for either of these bugs?
I'd look at some of this stuff myself but sadly my end of the year is really pressing (at work) and, moreover, I've never been the best person to fix trigger-related code![Sad :(](./images/smilies/icon_sad.gif)
P.S. Tried looking at the Temporal Aperture bug referenced above, I could reproduce it easily but couldn't find the cause of it yet. The effect of the card looks somewhat similar to the one created e.g. by Abbot of Keral Keep or by Courser of Kruphix, but for some reason it doesn't fire correctly (as opposed to the latter two cards). :/
- Agetian
- Cumulative Upkeep not working for the AI (way too unfair, especially when playing one of the Quest Worlds that is centered around sets full of cards with Cumulative Upkeep or at least featuring them prominently, e.g. the Ice Age one).
- Miracle not working according to the rules (maybe not as critical, but given that the mechanic is relatively recent and is featured in many modern decks, it's definitely visible and affects a good number of cards).
If we can get at least the first one (or both of them) down, we can probably attempt a release (which is really overdue given the brokenness of both the 1.5.57 beta release and the latest mobile build). Is there any ETA on a potential solution for either of these bugs?
I'd look at some of this stuff myself but sadly my end of the year is really pressing (at work) and, moreover, I've never been the best person to fix trigger-related code
![Sad :(](./images/smilies/icon_sad.gif)
P.S. Tried looking at the Temporal Aperture bug referenced above, I could reproduce it easily but couldn't find the cause of it yet. The effect of the card looks somewhat similar to the one created e.g. by Abbot of Keral Keep or by Courser of Kruphix, but for some reason it doesn't fire correctly (as opposed to the latter two cards). :/
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by friarsol » 10 Dec 2016, 01:15
Hey guys, I just started a new job at the end of November so been a bit out of the loop. How's everything going with the keyword rewriting and instability? It'd be nice get a release out here soon.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Upcoming Release: Forge version 1.5.58
by Agetian » 10 Dec 2016, 06:00
Welcome back, Sol!
Ah, I know how it can be with work and stuff (the situation is somewhat similar on my end, though it's my old work, not a new one
). Things are definitely shaping up as far as Forge goes, Miracle has recently been patched up and should now work according to rules. There are still several things remaining that are somewhat alarming:
1) Cumulative Upkeep has not been working for the AI for a long time by now (it's also broken in 1.5.57 Beta) and according to Hanmac it's a difficult fix which he needs to plan through, no ETA is currently available (the issue is rather serious for people playing with a pool that has Vintage cards in it, in particular the Ice Age ones - the AI simply ignores all Cumulative Upkeep costs and thus gets a lot of unfair advantage over time); - THIS IS FIXED UPSTREAM.
2) Dash mechanic is currently broken (both for the human and the AI player), Dashing a card does not return it to hand at the end of turn; the trigger goes on stack but it does nothing. - ATTEMPTED FIX IN r32648, PLEASE LOOK IF POSSIBLE. Not sure about the fix, it involves checking for trigger in SpellAbility itself first before looking for it in SpellAbility.getRootAbility, which was the way it was done before (and that check failed for both Dash and for Necropotence).
3) Soulflayer + Chromanticore is currently broken, and it may actually hint at inheriting abilities being broken elsewhere as well. In particular, if Chromanticore is exiled via Soulflayer's delve, Soulflayer gets all the abilities visually (Vigilance, Flying, Lifelink etc.) but none of them actually function (Soulflayer taps when attacking, it can be blocked by non-flying creatures, it does not have lifelink etc.). - THIS SHOULD BE FIXED AS OF r32659.
A couple strange bugs were reported recently that seem to affect individual cards but the cards that are popular staples; I seemingly fixed them but I'm not sure in my fixes (e.g. Umezawa's Jitte used to work without the extra parameter that is apparently now required; if it is required now, the question arises if there are other cards that now need this parameter but which did not need it before?):
4) Umezawa's Jitte started working like Demonic Pact for some reason -- each option can only be chosen once. [A strange issue that may possibly affect other choice-based cards] - FIXED UPSTREAM.
5) Necropotence's delayed trigger no longer works, cards stay in exile. [May be important to get this card working again since it's a popular classic staple for people who like to dabble with the 90s decks] - FIXED UPSTREAM.
The first two issues (Cumulative Upkeep,Dash) are potential blockers because they affect a whole mechanic and thus a decent number of cards; the latter bugs seem important as well but maybe not blocker-level important in case we can't find time to investigate and fix them in a timely manner.
Dash and Necropotence issues were actually related (both issues deal with the fact that a delayed trigger couldn't recall the card that was remembered before).
I'd say these points are probably the ones we may want to look into before the release if at all possible (for someone to check it out in a timely manner, I mean). There are some other reports as well but they don't appear as pressing/urgent and mostly deal with a particular card in a particular situation, and there have always been (and, sadly, always will be) issues like that in a program as complicated as Forge, those can be fixed incrementally over time without necessarily being tied to a release.
- Agetian
![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)
A couple strange bugs were reported recently that seem to affect individual cards but the cards that are popular staples; I seemingly fixed them but I'm not sure in my fixes (e.g. Umezawa's Jitte used to work without the extra parameter that is apparently now required; if it is required now, the question arises if there are other cards that now need this parameter but which did not need it before?):
The first two issues (Cumulative Upkeep,
Dash and Necropotence issues were actually related (both issues deal with the fact that a delayed trigger couldn't recall the card that was remembered before).
I'd say these points are probably the ones we may want to look into before the release if at all possible (for someone to check it out in a timely manner, I mean). There are some other reports as well but they don't appear as pressing/urgent and mostly deal with a particular card in a particular situation, and there have always been (and, sadly, always will be) issues like that in a program as complicated as Forge, those can be fixed incrementally over time without necessarily being tied to a release.
- Agetian
Last edited by Agetian on 11 Dec 2016, 07:34, edited 8 times in total.
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Upcoming Release: Forge version 1.5.58
by Marek14 » 10 Dec 2016, 06:49
Since reporting Umezawa's Jitte, I've seen AI use it as normal, so it's possible only humans are affected or that it got fixed somewhere.
Re: Upcoming Release: Forge version 1.5.58
by Hanmac » 10 Dec 2016, 17:51
about the Dash thing was probably my fault, good that this got fixed.
about the Umezawa's Jitte, i think the problem was with CharmEffect#makePossibleOptions returning the same List object, and later when a function does want to change something, it does it in place. now the function makes a new List each time (from an existing one)
i did a rewrote of MayLookAt, it does now use AbilityUtils#getDefinedPlayer
(so you can do You, Opponent, Player, etc but because it doesn't have a SpellAbility, more complex ones doesn't work)
then i used the new MayLookAt for Miracle ... now when the Card is revealed, it does create a MayLookAt Effect that stays as long the Card stays in Hand.
PS: i removed unparsedAbilities because it did caused more problems than use.
about the Umezawa's Jitte, i think the problem was with CharmEffect#makePossibleOptions returning the same List object, and later when a function does want to change something, it does it in place. now the function makes a new List each time (from an existing one)
i did a rewrote of MayLookAt, it does now use AbilityUtils#getDefinedPlayer
(so you can do You, Opponent, Player, etc but because it doesn't have a SpellAbility, more complex ones doesn't work)
then i used the new MayLookAt for Miracle ... now when the Card is revealed, it does create a MayLookAt Effect that stays as long the Card stays in Hand.
i will look at the Soulflayer + Chromanticore thing, and the Cumulative Upkeep thing. (for that i might checkout UnlessCost and see if the AI does understand it right, and if not do some work there too)702.93b If a player chooses to reveal a card using its miracle ability, he or she plays with that card revealed until that card leaves his or her hand, that ability resolves, or that ability otherwise leaves the stack.
PS: i removed unparsedAbilities because it did caused more problems than use.
Who is online
Users browsing this forum: No registered users and 95 guests