Пример #1
0
void Champion::updateModifiers(std::map<std::string, std::vector<StatModifier *> > &modiferMap)
{
    std::map<std::string, std::vector<StatModifier*>>::iterator mapIter;
    std::vector<StatModifier*>::iterator modIter;
    
    for (mapIter = modiferMap.begin(); mapIter != modiferMap.end(); ++mapIter) {
        std::vector<StatModifier*> *currentMods = &mapIter->second;
        for (modIter = currentMods->begin(); modIter != currentMods->end();) {
            StatModifier *modifier = (*modIter);
            modifier->update();
            if (modifier->hasExpired()) {
                currentMods->erase(modIter);
                std::cout << "modified removed \n";
                delete modifier;
            } else {
                ++modIter;
            }
        }
    }
}