Feature Requests Thread
by mtgrares
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Feature Requests Thread
by Sloth » 15 Nov 2011, 15:56
I'm going to add some player targeting AI for AF GainControl, but i'm not sure we can add Jinxed Choker. The AI can't really ahandle such a comple card.moomarc wrote:@ Sloth: Okay... I've done Jinxed Ring and Jinxed Choker for now (in addition to the Jinxed Idol you added). On further testing everything works perfectly for the human player but it doesn't seem to for the AI opponent. He never tries to activate any of their change owner abilities even though I've added IsCurse$ True. Its easiest to see at the end of the opponent's turn with Jinxed Choker on it's side, the EOT trigger (which forces it to target an opponent) goes on the stack with Targeting (Error), so I'm not sure if it can't select me as target opponent for some reason or if it's something else. The only ability it uses is the remove counter ability of the choker (which is good seeing as it's stuck on his side) but this takes preference over any other spell. Is there any AILogic I can add?
- Jinxed Ring | Open
- Name:Jinxed Ring
ManaCost:2
Types:Artifact
Text:no text
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Permanent.nonToken+YouOwn | Execute$ TrigDamage | TriggerZones$ Battlefield | IsCurse$ True | TriggerDescription$ Whenever a nontoken permanent is put into your graveyard from the battlefield, CARDNAME deals 1 damage to you.
SVar:TrigDamage:DB$ DealDamage | Defined$ You | NumDmg$ 1
A:AB$ GainControl | Cost$ Sac<1/Creature> | Defined$ Self | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SpellDescription$ Target opponent gains control of CARDNAME. (This effect lasts indefinitely.)
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/jinxed_ring.jpg
End
- Jinxed Idol | Open
- Name:Jinxed Idol
ManaCost:2
Types:Artifact
Text:no text
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ At the beginning of your upkeep, CARDNAME deals 2 damage to you.
SVar:TrigDamage:DB$ DealDamage | Defined$ You | NumDmg$ 2
A:AB$ GainControl | Cost$ Sac<1/Creature> | Defined$ Self | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | IsCurse$ True | SpellDescription$ Target opponent gains control of CARDNAME.
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/jinxed_idol.jpg
SetInfo:M11|Rare|http://magiccards.info/scans/en/m11/208.jpg
SetInfo:TMP|Rare|http://magiccards.info/scans/en/tp/283.jpg
Oracle:At the beginning of your upkeep, Jinxed Idol deals 2 damage to you.\nSacrifice a creature: Target opponent gains control of Jinxed Idol.
End
- Jinxed Choker | Open
- Name:Jinxed Choker
ManaCost:3
Types:Artifact
Text:no text
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ ChangeControl | TriggerDescription$ At the beginning of your end step, target opponent gains control of CARDNAME and puts a charge counter on it.
SVar:ChangeControl:AB$GainControl | Cost$ 0 | Defined$ Self | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | IsCurse$ True | SubAbility$ PutCounter | SpellDescription$ Target opponent gains control of CARDNAME.
SVar:PutCounter:DB$PutCounter | Cost$ 3 | CounterType$ CHARGE | CounterNum$ 1
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, CARDNAME deals damage to you equal to the number of charge counters on it.
SVar:TrigDamage:DB$ DealDamage | Defined$ You | NumDmg$ X
SVar:X:Count$CardCounters.CHARGE
A:AB$ PutCounter | Cost$ 3 | CounterType$ CHARGE | CounterNum$ 1 | SpellDescription$ Put a charge counter on CARDNAME.
A:AB$ RemoveCounter | Cost$ 3 | CounterType$ CHARGE | CounterNum$ 1 | SpellDescription$ Remove a charge counter from CARDNAME.
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/jinxed_choker.jpg
End
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Feature Requests Thread
by moomarc » 15 Nov 2011, 16:27
Thanks. I hadn't added the choker to svn yet because I had a feeling it might be too complex, but it did help in seeing where the problem lay, so not a complete waste.Sloth wrote:I'm going to add some player targeting AI for AF GainControl, but i'm not sure we can add Jinxed Choker. The AI can't really handle such a complex card.moomarc wrote:@ Sloth: Okay... I've done Jinxed Ring and Jinxed Choker for now (in addition to the Jinxed Idol you added). On further testing everything works perfectly for the human player but it doesn't seem to for the AI opponent. He never tries to activate any of their change owner abilities even though I've added IsCurse$ True. Its easiest to see at the end of the opponent's turn with Jinxed Choker on it's side, the EOT trigger (which forces it to target an opponent) goes on the stack with Targeting (Error), so I'm not sure if it can't select me as target opponent for some reason or if it's something else. The only ability it uses is the remove counter ability of the choker (which is good seeing as it's stuck on his side) but this takes preference over any other spell. Is there any AILogic I can add?
- Jinxed Ring | Open
- Name:Jinxed Ring
ManaCost:2
Types:Artifact
Text:no text
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Permanent.nonToken+YouOwn | Execute$ TrigDamage | TriggerZones$ Battlefield | IsCurse$ True | TriggerDescription$ Whenever a nontoken permanent is put into your graveyard from the battlefield, CARDNAME deals 1 damage to you.
SVar:TrigDamage:DB$ DealDamage | Defined$ You | NumDmg$ 1
A:AB$ GainControl | Cost$ Sac<1/Creature> | Defined$ Self | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SpellDescription$ Target opponent gains control of CARDNAME. (This effect lasts indefinitely.)
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/jinxed_ring.jpg
End
- Jinxed Idol | Open
- Name:Jinxed Idol
ManaCost:2
Types:Artifact
Text:no text
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ At the beginning of your upkeep, CARDNAME deals 2 damage to you.
SVar:TrigDamage:DB$ DealDamage | Defined$ You | NumDmg$ 2
A:AB$ GainControl | Cost$ Sac<1/Creature> | Defined$ Self | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | IsCurse$ True | SpellDescription$ Target opponent gains control of CARDNAME.
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/jinxed_idol.jpg
SetInfo:M11|Rare|http://magiccards.info/scans/en/m11/208.jpg
SetInfo:TMP|Rare|http://magiccards.info/scans/en/tp/283.jpg
Oracle:At the beginning of your upkeep, Jinxed Idol deals 2 damage to you.\nSacrifice a creature: Target opponent gains control of Jinxed Idol.
End
- Jinxed Choker | Open
- Name:Jinxed Choker
ManaCost:3
Types:Artifact
Text:no text
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ ChangeControl | TriggerDescription$ At the beginning of your end step, target opponent gains control of CARDNAME and puts a charge counter on it.
SVar:ChangeControl:AB$GainControl | Cost$ 0 | Defined$ Self | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | IsCurse$ True | SubAbility$ PutCounter | SpellDescription$ Target opponent gains control of CARDNAME.
SVar:PutCounter:DB$PutCounter | Cost$ 3 | CounterType$ CHARGE | CounterNum$ 1
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, CARDNAME deals damage to you equal to the number of charge counters on it.
SVar:TrigDamage:DB$ DealDamage | Defined$ You | NumDmg$ X
SVar:X:Count$CardCounters.CHARGE
A:AB$ PutCounter | Cost$ 3 | CounterType$ CHARGE | CounterNum$ 1 | SpellDescription$ Put a charge counter on CARDNAME.
A:AB$ RemoveCounter | Cost$ 3 | CounterType$ CHARGE | CounterNum$ 1 | SpellDescription$ Remove a charge counter from CARDNAME.
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/jinxed_choker.jpg
End
Two quick questions: Was I right in adding IsCurse to these? And can the scripting handle targeted opponent and targeted
-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: Feature Requests Thread
by Sloth » 15 Nov 2011, 16:32
IsCurse is not needed here. The AI will always target the human.moomarc wrote:Two quick questions: Was I right in adding IsCurse to these?
I'm not entirely sure what you mean, but the answer is likely to be yes.moomarc wrote:And can the scripting handle targeted opponent and targeted
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Feature Requests Thread
by moomarc » 15 Nov 2011, 16:46
Oops. Submitted before I finished the thought.Sloth wrote:I'm not entirely sure what you mean, but the answer is likely to be yes.moomarc wrote:And can the scripting handle targeted opponent and targeted

-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: Feature Requests Thread
by Sloth » 15 Nov 2011, 16:55
Ah, then the answer is no. It's not possible to target a player/opponent and a permanent at the same time (this is a more general missing feature not related to AF GainControl). It would be useful for more cards than just Zedruu the Greathearted: Bazaar Trader and Donate could use it too.moomarc wrote:Oops. Submitted before I finished the thought.Basically wanted to know if the ability can target the opponent and a target creature (as opposed to defined). My understanding is that there would then be two sets of ValidTgts so only one would be parsed. The only card I know of that this affects is Zedruu the Greathearted, so its not a major issue.
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Feature Requests Thread
by timmermac » 16 Nov 2011, 05:20
Is it possible to increase the randomization on which boosters are available in the Card Shop in quest mode? I'm finding that I can expect to see certain packs most times, and I'd kind of like the others to appear a bit more often. So far it seems like M10, M11, M12, Innistrad, Worldwake, Alara block and the 2nd Mirrodin block appear much more frequently than the others.
"I just woke up, haven't had coffee, let alone a pee in 7 days, and I find out you stole my ass and made a ...mini-me! Carter, I should be irked currently, yes?" - Jack O'Neill
Re: Feature Requests Thread
by Roujin » 17 Nov 2011, 18:40
I second that. Also I think that the (ocassionaly appearing) super old boosters, as well as super rares, are ridiculously overpriced IMO. It may be that in RL these items are that expensive. But in RL there are also ways to earn that much money. 
In the game, you can only earn so much money. I already built a deck that kills with an alternate win condition so I can get +100 more money per game, and still it would take ages to get into five figured numbers... iirc I've seen things like alpha/beta boosters cost that much. Super rares cost high 4 figured numbers or also 5 figured...
OTOH I have to fight against decks full of original dual lands, moxes, time walk, ancestral recall... what bothers me is that I don't see a chance of ever getting such a deck like the ones I have to fight now all the time. I'd have to get SUPER lucky on the random rares, or I'd have to farm money for an eternity and then wait for it to pop up in the shop.
The thing that currently balances this problem is that I have my plant and pet. These are a really great advantage I have over the otherwise superior enemy decks.
Now I read that in the dev versions, the pets have been nerfed somewhat. I do understand that change seeing as they are pretty (too?) strong currently. However in return I'd like if it was actually (realistically) possible to reach the kind of level the top tier opponents' ones have.

In the game, you can only earn so much money. I already built a deck that kills with an alternate win condition so I can get +100 more money per game, and still it would take ages to get into five figured numbers... iirc I've seen things like alpha/beta boosters cost that much. Super rares cost high 4 figured numbers or also 5 figured...
OTOH I have to fight against decks full of original dual lands, moxes, time walk, ancestral recall... what bothers me is that I don't see a chance of ever getting such a deck like the ones I have to fight now all the time. I'd have to get SUPER lucky on the random rares, or I'd have to farm money for an eternity and then wait for it to pop up in the shop.
The thing that currently balances this problem is that I have my plant and pet. These are a really great advantage I have over the otherwise superior enemy decks.
Now I read that in the dev versions, the pets have been nerfed somewhat. I do understand that change seeing as they are pretty (too?) strong currently. However in return I'd like if it was actually (realistically) possible to reach the kind of level the top tier opponents' ones have.
Re: Feature Requests Thread
by Max mtg » 17 Nov 2011, 20:41
That's how the feature was designedtimmermac wrote:Is it possible to increase the randomization on which boosters are available in the Card Shop in quest mode? I'm finding that I can expect to see certain packs most times, and I'd kind of like the others to appear a bit more often. So far it seems like M10, M11, M12, Innistrad, Worldwake, Alara block and the 2nd Mirrodin block appear much more frequently than the others.

viewtopic.php?p=70474#p70474
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: Feature Requests Thread
by Nordos » 17 Nov 2011, 21:24
Yet I dislike it, too.
The old cards are really rare now. If you want the newer cards, you can always choose standart as the booster, you can get M10-12 + Innistrad and SoM Block for a pretty fair price, the others, though, do cost too much. I have some newer cards like 6 times, I have strong ones up to 2 times, but many many old cards are yet to come, because I chose, at first, standart boosters to get a good infect deck.
I actually modify the prices for the boosters, even though I know that it isn't balanced, I changed all the proces to 250 for all boosters. Makes more fun, since you have more cards avaible, after all
The old cards are really rare now. If you want the newer cards, you can always choose standart as the booster, you can get M10-12 + Innistrad and SoM Block for a pretty fair price, the others, though, do cost too much. I have some newer cards like 6 times, I have strong ones up to 2 times, but many many old cards are yet to come, because I chose, at first, standart boosters to get a good infect deck.
I actually modify the prices for the boosters, even though I know that it isn't balanced, I changed all the proces to 250 for all boosters. Makes more fun, since you have more cards avaible, after all
Re: Feature Requests Thread
by lazylockie » 18 Nov 2011, 03:41
The problem with this booster thing is that it doesn't differentiate editions when selling your own cards. A CoP:Red is sold at a miser 10-20 credits, when in reality an ABU CoP:Red can be sold for 4-5 bucks (400-500 credits). This unbalances with older boosters, since if you bought an ABU booster, you could theoretically sell the useless (but expensive) stuff and get a cheaper and overall affordable booster.
- lazylockie
- Posts: 508
- Joined: 13 Jul 2010, 22:44
- Has thanked: 74 times
- Been thanked: 15 times
Re: Feature Requests Thread
by Rob Cashwalker » 18 Nov 2011, 14:39
The card price download code averages the values across all printings. It needs to be changed to not average them and store them individually..The problem with this booster thing is that it doesn't differentiate editions when selling your own cards. A CoP:Red is sold at a miser 10-20 credits, when in reality an ABU CoP:Red can be sold for 4-5 bucks (400-500 credits). This unbalances with older boosters, since if you bought an ABU booster, you could theoretically sell the useless (but expensive) stuff and get a cheaper and overall affordable booster.
The Force will be with you, Always.
-
Rob Cashwalker - Programmer
- Posts: 2167
- Joined: 09 Sep 2008, 15:09
- Location: New York
- Has thanked: 5 times
- Been thanked: 40 times
Re: Feature Requests Thread
by Sloth » 18 Nov 2011, 14:55
That reminds me, should we update the all-prices.txt file from time to time? We can't expext the users to update the prices before playing and the SVN version doesn't even have any prices of ISD cards.Rob Cashwalker wrote:The card price download code averages the values across all printings. It needs to be changed to not average them and store them individually..
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Separate Content from Application
by Tranberry » 19 Nov 2011, 01:59
I would suggest a new folder structure that aims to separate user content (deck-files, card images, maybe preferences) from application/developer files (jar-files, py-files etc)
I believe it would make it easier to keep settings and decks without the need to make backups while testing new daily-snapshots. And it might also solv the card-images problem where users accidently delete and/or download a whole new set of images.
I believe it would make it easier to keep settings and decks without the need to make backups while testing new daily-snapshots. And it might also solv the card-images problem where users accidently delete and/or download a whole new set of images.
User experience, make or break. MtG drafting is fun.
-
Tranberry - Posts: 59
- Joined: 01 Apr 2010, 19:32
- Location: Sweden
- Has thanked: 136 times
- Been thanked: 3 times
Re: Separate Content from Application
by sagephoenix » 19 Nov 2011, 04:27
Speaking of which, I've been wondering for a while, how do the snapshots even work and where do I find them?Tranberry wrote:I would suggest a new folder structure that aims to separate user content (deck-files, card images, maybe preferences) from application/developer files (jar-files, py-files etc)
I believe it would make it easier to keep settings and decks without the need to make backups while testing new daily-snapshots. And it might also solv the card-images problem where users accidently delete and/or download a whole new set of images.
- sagephoenix
- Posts: 177
- Joined: 29 Aug 2011, 14:07
- Has thanked: 57 times
- Been thanked: 3 times
Re: Separate Content from Application
by Hellfish » 19 Nov 2011, 08:10
http://cardforge.org/releases/snapshots/forge/forge/sagephoenix wrote:Speaking of which, I've been wondering for a while, how do the snapshots even work and where do I find them?Tranberry wrote:I would suggest a new folder structure that aims to separate user content (deck-files, card images, maybe preferences) from application/developer files (jar-files, py-files etc)
I believe it would make it easier to keep settings and decks without the need to make backups while testing new daily-snapshots. And it might also solv the card-images problem where users accidently delete and/or download a whole new set of images.
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-
Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Who is online
Users browsing this forum: No registered users and 54 guests