void TowerManager::sellTower(int tileX, int tileY) { if(!outOfBound(tileX, tileY) && isTileFree(tileX, tileY)) return; Game::player.earnCash(towers[make_pair(tileX, tileY)]->getSellCost()); std::cout << blue << towers[make_pair(tileX, tileY)]->getName() << " sold for " << towers[make_pair(tileX, tileY)]->getSellCost() << " coins!" << std::endl; delete towers[make_pair(tileX, tileY)]; towers.erase(make_pair(tileX, tileY)); }
void Graph::drawBigDot(Point_2D p, Color c, int size){ float x = p.x , y = p.y, newX, newY; for(int i = -(size/2) ; i <= (size/2); i++){ for(int j = -(size/2) ; j <= (size/2); j++){ //DPRINT("BIGDOT: %.2f, %.2f\n", x+i, y+j); newX = x+i; newY = y+j; if( outOfBound( (int)round(newX), (int)round(newY) )) continue; drawPixel( {newX, newY}, c); } } }
void Entities::move(){ std::list<std::list<Entity*>::iterator> iterToRemove; for (auto it = entities.begin(); it != entities.end(); it++){ (*it)->move(); if (outOfBound(**it)){ //On ne peut supprimer pendant une iteration //donc on ajoute ce qui doit l'etre a une liste iterToRemove.emplace_back(it); } } for (auto it : iterToRemove){ removeEnemy(it); } }