void Hero::handlePlayerCollision(Projectile *projectile) { Tile* tile = m_Level->getTileForPosition(projectile->getX(), projectile->getY()); //Cycle through all the enemies and check for Collision with the projectile for(int i = 0; i < m_Level->getEnemies().size(); i++) { Enemy* enemy = m_Level->getEnemies().at(i); if(enemy != NULL && enemy->getIsActive() == true) { //Get the Tile the enemy is on Tile* enemyTile = m_Level->getTileForPlayer(enemy); //Is the projectile on the same tile as the enemy? if(tile == enemyTile) { Log::debug("Hero projectile hit an enemy"); //Apply damage to the enemy AND set The projectile to inactive enemy->applyDamage(projectile->getDamage()); projectile->setIsActive(false); } } } }
void Charmander::handlePlayerCollision(Projectile* projectile) { Tile* tile = m_Level->getTileForPosition(projectile->getX(), projectile->getY()); //cycle through all the enemesn and ceck for the collision with the projectile for(int i = 0; i < m_Level->getEnemies().size(); i ++) { Enemy* enemy = m_Level->getEnemies().at(i); if(enemy != NULL && enemy->getIsActive() == true) { //get the tile the enemy is on Tile* enemyTile = m_Level->getTileForPlayer(enemy); //is the projectile on the same tile as the emnemy? if(tile == enemyTile) { // Log::debug("Hero projectile hit an enemy"); // apply damage tot he enemt and set the projectile enemy->applyDamage(projectile->getDamage()); projectile->setIsActive(false); } } } }