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:
@@ -23,7 +23,7 @@ class ManaCost
|
||||
friend std::ostream& operator<<(std::ostream& out, ManaCost m);
|
||||
|
||||
protected:
|
||||
std::vector<int8_t> cost;
|
||||
std::vector<int16_t> cost;
|
||||
std::vector<ManaCostHybrid> hybrids;
|
||||
|
||||
virtual void init();
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
int hasSpecificX();
|
||||
int xColor;
|
||||
int hasAnotherCost();
|
||||
ManaCost(std::vector<int8_t>& _cost, int nb_elems = 1);
|
||||
ManaCost(std::vector<int16_t>& _cost, int nb_elems = 1);
|
||||
ManaCost();
|
||||
~ManaCost();
|
||||
ManaCost(ManaCost * _manaCost);
|
||||
@@ -89,8 +89,8 @@ public:
|
||||
ExtraCost * getExtraCost(unsigned int i);
|
||||
|
||||
int addHybrid(int c1, int v1, int c2, int v2);
|
||||
int tryToPayHybrids(std::vector<ManaCostHybrid>& _hybrids, int _nbhybrids,std::vector<int8_t>& diff);
|
||||
void randomDiffHybrids(ManaCost * _cost, std::vector<int8_t>& diff);
|
||||
int tryToPayHybrids(std::vector<ManaCostHybrid>& _hybrids, int _nbhybrids,std::vector<int16_t>& diff);
|
||||
void randomDiffHybrids(ManaCost * _cost, std::vector<int16_t>& diff);
|
||||
int add(ManaCost * _cost);
|
||||
int remove(ManaCost * _cost);
|
||||
int removeAll(int color);
|
||||
|
||||
Reference in New Issue
Block a user