this is the first draft of a simple ai combo system,

format is as follows

HINT#combo hold(blah|myhand)^until(blah|mygraveyard)^until(blah|opponentshand)^restriction{type(creature|mybattlefield)~morethan~2}^cast(blah) targeting(blah|mygraveyard)^totalmananneeded({g}{g}{r}{u}{2})

the ai can be told to hold more then one card, until as many condiations as you want are met, until( is a TC and can basically be used in a fasion of saying "hold arbor elf until you have a lord of atlantas in play and a gaint growth in you hand" 

once the condiations are met you can later tell it to cast(gaint growth) targeting(arbor elf[fresh]|mybattlefield)...

I also included the whole of the games restrictions system...
so you can get really really creative with this so far.

the next thing I will do is ability targeting and card favoring.
This commit is contained in:
omegablast2002@yahoo.com
2012-08-19 21:53:57 +00:00
parent 6d4e677711
commit d078872dfc
14 changed files with 335 additions and 39 deletions

View File

@@ -4360,7 +4360,7 @@ public:
MTGAbility(observer, id, _source)
{
counters = 0;
std::vector<int8_t> _cost;
std::vector<int16_t> _cost;
_cost.push_back(Constants::MTG_COLOR_ARTIFACT);
_cost.push_back(4);
cost = ManaCost(_cost, 1);
@@ -4424,7 +4424,7 @@ public:
MTGAbility(observer, _id, _source)
{
canprevent = 0;
std::vector<int8_t> _cost;
std::vector<int16_t> _cost;
_cost.push_back(Constants::MTG_COLOR_ARTIFACT);
_cost.push_back(2);
cost = ManaCost(_cost, 1);
@@ -4520,7 +4520,7 @@ public:
AFarmstead(GameObserver* observer, int _id, MTGCardInstance * source, MTGCardInstance * _target) :
ActivatedAbility(observer, _id, source, 0, 1)
{
std::vector<int8_t> _cost;
std::vector<int16_t> _cost;
_cost.push_back(Constants::MTG_COLOR_WHITE);
_cost.push_back(2);
setCost(NEW ManaCost(_cost, 1), true);