by friarsol » 03 Nov 2016, 01:22
by friarsol » 03 Nov 2016, 12:58
by Hanmac » 03 Nov 2016, 13:11
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
Types:Enchantment Aura Curse
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
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.
by Agetian » 04 Nov 2016, 09:21
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?
(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.
by Agetian » 04 Nov 2016, 09:57
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
by Agetian » 12 Nov 2016, 19:39
- 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!
by drdev » 12 Nov 2016, 21:46
EDIT: Things seemed stable enough in my testing, so I went ahead and released it. Worst case I can release a follow-up patch.
by Agetian » 13 Nov 2016, 04:49
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.
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!
by Agetian » 29 Nov 2016, 04:46
- 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
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). :/
by friarsol » 10 Dec 2016, 01:15
by Agetian » 10 Dec 2016, 06:00
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.
by Marek14 » 10 Dec 2016, 06:49
by Hanmac » 10 Dec 2016, 17:51
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 1 guest