going to go ahead and commit this now as updating the ai decks to use this tool is going to be a huge task...i originally wanted to commit this when i had a substantial amount of ai decks using it, to show case how it makes a huge difference.

it is a feature that is for ai deck building
what it will do is as follows

#NAME:sample deck
#DESC:The forces of fire and nature unite. 
#DESC: 
#DESC:Can you withstand 
#DESC:their combined fervor? 

toggledifficulty:lotus petal|black lotus (*) * 4
grizzly bear (*) * 4
someCard (8) *4

notice the toggle dificulty?
syntax is ....toggledifficulty:easy card name or number|hard card (optional set if both belong to same set otheriwse use * ) *howmany

toggledifficulty:frying pan|machine gun
toggledifficulty:tomatoe|pumpkin (MBS) * 3
toggledifficulty:tomatoe|squash
grizzly bear (*) * 4

the above exsample as easy will have a deck with:
frying pan
4X tomatoe
4X grizzly bear

and on hard it will have:
machine gun
3x pumpkin
squash
4X grizzly bears

the entire deck can be built with toggledifficulty cards....its not limited to just a single use.
you can also mix it up, some can be toggledifficulty some can be just like normal, you are not limited to having to have a complete deck of toggled cards...

if your currently selected deck has an over all win ratio of 65% or higher...this deck will have 4 black lotuses in it...if youre overall win with the current deck you are playing is below 65% then those 4 black lotuses are replaced by 4 lotus petals instead...effectively making it an easier ai deck...

note, the 2 cards used are exsamples...its a great way to show you the potential this change can have...an ai deck with 4 black lotuses will do WAY better then the same deck with 4 lotus petal...if you catch my drift...
This commit is contained in:
omegablast2002@yahoo.com
2011-02-11 18:01:50 +00:00
parent 61186347e5
commit 76653b6f54
3 changed files with 39 additions and 6 deletions
+26 -3
View File
@@ -742,7 +742,7 @@ int MTGDeck::totalPrice()
return total;
}
MTGDeck::MTGDeck(const char * config_file, MTGAllCards * _allcards, int meta_only)
MTGDeck::MTGDeck(const char * config_file, MTGAllCards * _allcards, int meta_only,int difficultyRating)
{
total_cards = 0;
database = _allcards;
@@ -753,7 +753,7 @@ MTGDeck::MTGDeck(const char * config_file, MTGAllCards * _allcards, int meta_onl
meta_id = atoi(meta_name.substr(4).c_str());
wagic::ifstream file(config_file);
std::string s;
if (file)
{
while (std::getline(file, s))
@@ -778,6 +778,29 @@ MTGDeck::MTGDeck(const char * config_file, MTGAllCards * _allcards, int meta_onl
continue;
}
if (meta_only) break;
int nb = 1;
size_t found = s.find(" *");
if (found != string::npos)
{
nb = atoi(s.substr(found + 2).c_str());
s = s.substr(0, found);
}
size_t diff = s.find("toggledifficulty:");
if(diff != string::npos)
{
string cards = s.substr(diff + 17);
size_t separator = cards.find("|");
string cardeasy = cards.substr(0,separator);
string cardhard = cards.substr(separator + 1);
if(difficultyRating == HARD)
{
s = cardhard;
}
else
{
s = cardeasy;
}
}
int cardnb = atoi(s.c_str());
if (cardnb)
{
@@ -785,7 +808,6 @@ MTGDeck::MTGDeck(const char * config_file, MTGAllCards * _allcards, int meta_onl
}
else
{
int nb = 1;
size_t found = s.find(" *");
if (found != string::npos)
{
@@ -800,6 +822,7 @@ MTGDeck::MTGDeck(const char * config_file, MTGAllCards * _allcards, int meta_onl
add(card);
}
}
else
{
DebugTrace("could not find Card matching name: " << s);