Added / fixed primitives from ONE set, fixed Treasure name in all sets and primitives, updated missing cards by sets list, improved token creator ability by trying to retrieve the token id from the same set of source card (e.g. Urza's Saga), improved toxic ability adding a new target chooser "hastoxic" and adding a new keyword "toxicity" to retrieve the toxic amount of card.
This commit is contained in:
@@ -822,7 +822,7 @@ void MTGAllCards::prefetchCardNameCache()
|
||||
}
|
||||
#endif
|
||||
|
||||
MTGCard * MTGAllCards::getCardByName(string nameDescriptor)
|
||||
MTGCard * MTGAllCards::getCardByName(string nameDescriptor, int forcedSetId)
|
||||
{
|
||||
boost::mutex::scoped_lock lock(instance->mMutex);
|
||||
if (!nameDescriptor.size()) return NULL;
|
||||
@@ -832,7 +832,7 @@ MTGCard * MTGAllCards::getCardByName(string nameDescriptor)
|
||||
|
||||
map<string, MTGCard * >::iterator cached = mtgCardByNameCache.find(nameDescriptor);
|
||||
|
||||
if (cached!= mtgCardByNameCache.end())
|
||||
if ((forcedSetId < 0) && (cached!= mtgCardByNameCache.end()))
|
||||
{
|
||||
return cached->second;
|
||||
}
|
||||
@@ -845,6 +845,21 @@ MTGCard * MTGAllCards::getCardByName(string nameDescriptor)
|
||||
return result;
|
||||
}
|
||||
|
||||
map<int, MTGCard *>::iterator it;
|
||||
if(forcedSetId != -1){
|
||||
for (it = collection.begin(); it != collection.end(); it++)
|
||||
{
|
||||
MTGCard * c = it->second;
|
||||
if (forcedSetId != c->setId) continue;
|
||||
string cardName = c->data->name;
|
||||
std::transform(cardName.begin(), cardName.end(), cardName.begin(), ::tolower);
|
||||
if (cardName.compare(nameDescriptor) == 0) {
|
||||
mtgCardByNameCache[nameDescriptor] = c;
|
||||
return c;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int setId = -1;
|
||||
size_t found = nameDescriptor.find(" (");
|
||||
string name = nameDescriptor;
|
||||
@@ -859,9 +874,8 @@ MTGCard * MTGAllCards::getCardByName(string nameDescriptor)
|
||||
|
||||
//Reconstruct a clean string "name (set)" for cache consistency
|
||||
nameDescriptor = name + " (" + setName + ")";
|
||||
|
||||
}
|
||||
map<int, MTGCard *>::iterator it;
|
||||
|
||||
for (it = collection.begin(); it != collection.end(); it++)
|
||||
{
|
||||
MTGCard * c = it->second;
|
||||
@@ -872,8 +886,8 @@ MTGCard * MTGAllCards::getCardByName(string nameDescriptor)
|
||||
mtgCardByNameCache[nameDescriptor] = c;
|
||||
return c;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
mtgCardByNameCache[nameDescriptor] = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user