Developer Plans
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Developer Plans
by friarsol » 29 May 2013, 14:13
Yea I'd say adding an UpTo parameter for Draw is the right choice here. That would also allow us to script Indentured Djinn, Trade Secrets, Temporary Truce and Truce. (And fix the three Alliances cards that should be using UpTo: Arcane Denial, Fatal Lore, and Diminishing Returns. )Max mtg wrote:Why can't you just add a parameter to existing 'draw' effect?
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Developer Plans
by swordshine » 29 May 2013, 14:23
The difficult part might be how AI deals with this "Upto" thing, especially for Trade Secrets.friarsol wrote:Yea I'd say adding an UpTo parameter for Draw is the right choice here. That would also allow us to script Indentured Djinn, Trade Secrets, Temporary Truce and Truce. (And fix the three Alliances cards that should be using UpTo: Arcane Denial, Fatal Lore, and Diminishing Returns. )Max mtg wrote:Why can't you just add a parameter to existing 'draw' effect?
- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Re: Developer Plans
by RedDeckWins » 29 May 2013, 15:39
I did add functionality to delayed trigger for RememberObjects, similar to existing functionality in other effects.Max mtg wrote:Can we remember player on that delayed trigger?
Why can't you just add a parameter to existing 'draw' effect?
Regarding the up-to draw effect, I was a little unclear. I do agree adding a parameter to the existing draw effect would be the optimal solution.
-
RedDeckWins - Posts: 35
- Joined: 20 Apr 2013, 16:45
- Has thanked: 8 times
- Been thanked: 10 times
Re: Developer Plans
by moomarc » 29 May 2013, 19:44
I've got the main parts of Offering working for BOK Patrons. Just a few more things to clean up and test so should be able to commit by the weekend if all goes well. Just to check on the rules, will colored mana that doesn't match a color in the patron's cost be reduced as colorless mana? So if I sac a Goblin Legionnaire for Patron of the Akki, will it reduce the cost to
?


-Marc
-
moomarc - Pixel Commander
- Posts: 2091
- Joined: 04 Jun 2010, 15:22
- Location: Johannesburg, South Africa
- Has thanked: 371 times
- Been thanked: 372 times
Re: Developer Plans
by friarsol » 29 May 2013, 20:00
http://wiki.mtgsalvation.com/article/Offeringmoomarc wrote:I've got the main parts of Offering working for BOK Patrons. Just a few more things to clean up and test so should be able to commit by the weekend if all goes well. Just to check on the rules, will colored mana that doesn't match a color in the patron's cost be reduced as colorless mana? So if I sac a Goblin Legionnaire for Patron of the Akki, will it reduce the cost to![]()
?
702.46c Generic mana in the sacrificed permanent's mana cost reduces generic mana in the total cost to cast the card with offering. Colored mana in the sacrificed permanent's mana cost reduces mana of the same color in the total cost to cast the card with offering. Colored mana in the sacrificed permanent's mana cost that doesn't match colored mana in the colored mana cost of the card with offering, or is in excess of the card's colored mana cost, reduces that much generic mana in the total cost.
So non-matching (or excess) colored mana will reduce Generic Mana if applicable.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Developer Plans
by moomarc » 29 May 2013, 20:25
In that case I've at least got that portion working. Thanks for the link.friarsol wrote:http://wiki.mtgsalvation.com/article/Offeringmoomarc wrote:I've got the main parts of Offering working for BOK Patrons. Just a few more things to clean up and test so should be able to commit by the weekend if all goes well. Just to check on the rules, will colored mana that doesn't match a color in the patron's cost be reduced as colorless mana? So if I sac a Goblin Legionnaire for Patron of the Akki, will it reduce the cost to![]()
?
702.46c Generic mana in the sacrificed permanent's mana cost reduces generic mana in the total cost to cast the card with offering. Colored mana in the sacrificed permanent's mana cost reduces mana of the same color in the total cost to cast the card with offering. Colored mana in the sacrificed permanent's mana cost that doesn't match colored mana in the colored mana cost of the card with offering, or is in excess of the card's colored mana cost, reduces that much generic mana in the total cost.
So non-matching (or excess) colored mana will reduce Generic Mana if applicable.
-Marc
-
moomarc - Pixel Commander
- Posts: 2091
- Joined: 04 Jun 2010, 15:22
- Location: Johannesburg, South Africa
- Has thanked: 371 times
- Been thanked: 372 times
Re: Developer Plans
by swordshine » 01 Jun 2013, 13:35
I've just checked the DistinctStats, 95.99% of cards have been implemented.
Gos' top 100 cards are getting more and more difficult to implement
, although many of them are generally in Commander decks. For constructed decks, I think Spellskite, Summoning Trap, Gemstone Caverns, Gilded Drake, and Kira, Great Glass-Spinner and the top 5 remaining cards (Jotun Grunt might be a little out of date
). Gemstone Caverns looks like Leylines and Chancellors. Gilded Drake cannot be countered by the rule if you don't choose a target. Kira, Great Glass-Spinner needs a "TriggerLimit" parameter and more than four cards are related to this "TriggerLimit". I hope we can implement these cards asap.



- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Re: Developer Plans
by Max mtg » 03 Jun 2013, 09:20
Replacement effects need their own enum that will collect all types, (similiar to ApiType and TriggerType)
I will also try to enclose all parameters consumed by a replacement effect into DTOs (because these hashmaps used everywhere don't give an idea of all possible fields and you need to cast types accessing them)
Next I'm going to add ReplacementDestroy and use it for Totem Armors and remove the last reference to GuiChoose from GameAction class.
I will also try to enclose all parameters consumed by a replacement effect into DTOs (because these hashmaps used everywhere don't give an idea of all possible fields and you need to cast types accessing them)
Next I'm going to add ReplacementDestroy and use it for Totem Armors and remove the last reference to GuiChoose from GameAction class.
Single class for single responsibility.
- Max mtg
- Programmer
- Posts: 1997
- Joined: 02 Jul 2011, 14:26
- Has thanked: 173 times
- Been thanked: 334 times
Re: Developer Plans
by Max mtg » 05 Jun 2013, 00:01
I'm done with ReplacementType enum, won't bother with dto-s.
Next I'd like to change how sets and rarity are assigned to cards. In short - use a separate folder for set description files, remove (or at least stop using) SetInfo from cardscripts.
Next I'd like to change how sets and rarity are assigned to cards. In short - use a separate folder for set description files, remove (or at least stop using) SetInfo from cardscripts.
Single class for single responsibility.
- Max mtg
- Programmer
- Posts: 1997
- Joined: 02 Jul 2011, 14:26
- Has thanked: 173 times
- Been thanked: 334 times
Re: Developer Plans
by friarsol » 08 Jun 2013, 04:02
I have a commit coming up that has the word "Banding" in it, but don't have any strong plans to do the rest of it right away. The "Damage Sharing" portion of Blocking with Banding is roughly the same as Defensive Formation. A fair amount of changes need to happen for Attacking in a Band (including UI for attacking in a band), but once those are setup, the Damage Sharing for those should be pretty easy too.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Developer Plans
by swordshine » 09 Jun 2013, 15:45
I'm working on the last split card Research // Development. The number of remaining cards are close to 500.
- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Re: Developer Plans
by friarsol » 11 Jun 2013, 21:54
Hmmm ok I actually started working on Banding stuff. It's gonna take a fair amount of time since I'm pretty much rewriting half of the Combat class, and need to make sure everything that calls into is using the new functions. Sooo.. we'll see how this goes. Please don't do anything super crazy to Combat to ease my merging.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Developer Plans
by friarsol » 13 Jun 2013, 11:59
I should be able to commit my Combat rewrite once the next release cycle starts. This will have a baseline support for banding (Attacking in Bands and DamageAssignment by Banders), but there isn't any UI to actually declare attackers as part of a band, so Banding won't yet be supported (in addition we probably want some basic AI considerations for Banding in place once the upgraded combat system is in place). A lot of Combat was cleaned up, but I tried to keep as many calls into Combat unchanged if I could.
I'm not really sure how we should handle the UI for declaring creatures as part of a band. Does anyone have any ideas?
I'm not really sure how we should handle the UI for declaring creatures as part of a band. Does anyone have any ideas?
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Developer Plans
by Diogenes » 13 Jun 2013, 16:33
Yikes.friarsol wrote:I'm not really sure how we should handle the UI for declaring creatures as part of a band. Does anyone have any ideas?
In the absence of drag-and-drop, I think my preferred method is the following:
Once a creature with banding (lets say a Benalish Hero) is 'scheduled' to be declared an attacker during the declare attackers step (ie, during the period when it has the sword icon but its attack can still be cancelled with a right-click,) the user may left-click on it to form/join a band. A prompt appears telling the user to click on another creature that can attack the same player/planeswalker that is not already part of a band, or on another creature in a band attacking a target that the Hero can also attack; if a non-banded creature is chosen, the two form a band (if the other creature has already been directed to attack a different player/planeswalker, its original target will be over-written with the Hero's.) If a creature already in a band is chosen, the Hero joins the existing band as if the operation were done the other way around.
Once a band is formed, if the most recent addition to the band also has banding, clicking on any creature in the band should bring up the prompt to select another creature that can attack the band's target. Cancelling the attack of any given band-member drops it from the band, but doesn't break up the band if two or more creatures would remain. Of course, targeting arrows identifying the connected creatures and some indication in the combat panel will help keep this all sorted out.
If I understand 702.20j right, blocking with banders is handled automatically and doesn't require any input on the part of the player. The defender receives the damage allocation UI element that the attacker would normally receive for that particular block and that's that.
I think this is the most straightforward way. The downsides are relatively minor: you can't merge bands (there are potential headaches here, I think it's just easier on everyone not to enable it,) if you decide to change the band's target you'll have to cancel all the attacks and rebuild the band from scratch, and there's a potential intuitiveness issue if users don't get that you have to click on the Benalish Hero a second time to get it to do anything (I'd prefer avoiding a "This creature has banding. Would you like to attack in a band?" prompt every time I attack with a bander, but I'll understand if it's necessary.)
Anyway, I don't know if this helps you get an idea what people would like or if I'm suggesting a horrible user experience. I do feel that it would be quite awkward to add some kind of intermediary step between selecting your attackers and declaring them (moving on to the instants/effects portion of the DA step) where you group up your bands, so mostly I'm trying to think around that.
Good luck!
Re: Developer Plans
by swordshine » 14 Jun 2013, 02:42
I'll look at "Can't search library" after the release.
There are four cards:
Leonin Arbiter (maybe need a static ability to debuff keyword of a player)
Mindlock Orb (normal static ability granting all players the keyword)
Shadow of Doubt (effect)
Stranglehold (not sure if the second part is scriptable, replacement?)
Cards with "if you do/sb. does, shuffle" need add a new param to make the shuffle not mandatory when the player cannot search his or her library.
I'll add some checks for Archive Trap in changezone effect, changezoneai effect and changezoneall effect as well.
There are four cards:
Leonin Arbiter (maybe need a static ability to debuff keyword of a player)
Mindlock Orb (normal static ability granting all players the keyword)
Shadow of Doubt (effect)
Stranglehold (not sure if the second part is scriptable, replacement?)
Cards with "if you do/sb. does, shuffle" need add a new param to make the shuffle not mandatory when the player cannot search his or her library.
I'll add some checks for Archive Trap in changezone effect, changezoneai effect and changezoneall effect as well.
Last edited by swordshine on 14 Jun 2013, 05:19, edited 1 time in total.
- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Who is online
Users browsing this forum: No registered users and 22 guests