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:
Vittorio Alfieri
2023-06-18 23:23:51 +02:00
parent 2ca092090d
commit 3b05932a8b
24 changed files with 487 additions and 295 deletions
+19 -5
View File
@@ -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;
}