Ejemplo n.º 1
0
 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.";
     }
 }
Ejemplo n.º 2
0
    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);
        }
    }