void Hero::kill() { if(auto events = getEventBus().lock()) { EventDataPtr imDeadNow(new EntityDeathEventData(getId(), EntityDeathEventData::Hero)); events->queueEvent(imDeadNow); } else { HIKARI_LOG(debug4) << "No event manager."; } }
void Enemy::update(float dt) { Entity::update(dt); if(getHitPoints() <= 0.0f) { if(auto eventManagetPtr = getEventBus().lock()) { eventManagetPtr->queueEvent(EventDataPtr(new EntityDeathEventData(getId(), EntityDeathEventData::Enemy))); } } if(brain) { brain->update(dt); } if(damageTickCounter > 0) { // setVulnerable(false); damageTickCounter++; damageTickCounter %= 2; } else { // setVulnerable(true); } }