feat: add kill reward + effect damages

This commit is contained in:
2021-11-05 13:10:42 +01:00
parent d75fdd64b3
commit 524af9ad5f
6 changed files with 94 additions and 18 deletions

View File

@@ -243,6 +243,15 @@ void World::cleanDeadMobs() {
for (std::size_t i = 0; i < m_Mobs.size(); i++) {
MobPtr mob = m_Mobs[i];
if (!mob->isAlive()) {
mob->OnDeath(this);
//reward players
Player& sender = m_Game->getPlayerById(mob->getSender());
sender.addEXP(mob->getStats()->getExpReward());
Player& killer = m_Game->getPlayerById(mob->getKillTower()->getBuilder());
killer.addGold(mob->getStats()->getMoneyCost());
m_Mobs.erase(m_Mobs.begin() + i);
}
}
@@ -271,6 +280,8 @@ void World::OnArrowShot(MobPtr target, Tower* shooter) {
// aoe damage
} else {
target->damage(shooter->getStats()->getDamage());
if(target->isDead())
target->setKillTower(shooter);
}
}