refactor: mob die event

This commit is contained in:
2021-12-11 19:51:45 +01:00
parent 0af4cd506c
commit a241d7691b
5 changed files with 32 additions and 27 deletions

View File

@@ -20,7 +20,7 @@ EffectDuration& Mob::getEffect(EffectType effectType) {
return *std::find_if(m_Effects.begin(), m_Effects.end(), [&effectType](EffectDuration effect) { return effect.type == effectType;});
}
void Mob::addEffect(EffectType effectType, float durationSec, const Tower* tower) {
void Mob::addEffect(EffectType effectType, float durationSec, Tower* tower) {
if (isImmuneTo(effectType))
return;
if (hasEffect(effectType)) {
@@ -194,12 +194,12 @@ bool Mob::isTouchingCastle(const TeamCastle& enemyCastle) const {
}
void Mob::tick(std::uint64_t delta, World* world) {
updateEffects(delta);
updateEffects(delta, world);
move(delta, world);
attackCastle(delta, world);
}
void Mob::updateEffects(std::uint64_t delta) {
void Mob::updateEffects(std::uint64_t delta, World* world) {
float deltaSec = (float)delta / 1000.0f;
for (std::size_t i = 0; i < m_Effects.size(); i++) {
EffectDuration& effect = m_Effects[i];
@@ -228,12 +228,12 @@ void Mob::updateEffects(std::uint64_t delta) {
}
if (hasEffect(EffectType::Fire)) {
if (m_EffectFireTimer.update(delta)) {
damage(3, getEffect(EffectType::Fire).tower);
world->getMobNotifier().notifyListeners(&MobListener::OnMobDamage, this, 3.0f, getEffect(EffectType::Fire).tower);
}
}
if (hasEffect(EffectType::Poison)) {
if (m_EffectPoisonTimer.update(delta)) {
damage(1, getEffect(EffectType::Poison).tower);
world->getMobNotifier().notifyListeners(&MobListener::OnMobDamage, this, 1.0f, getEffect(EffectType::Poison).tower);
}
}
if (hasEffect(EffectType::Heal)) {