// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #include "EntityHealth.hpp" using namespace Dawn; EntityHealth::EntityHealth(SceneItem* item) : SceneItemComponent(item) { } void EntityHealth::onStart() { // Update useEvent([&](float_t delta){ if(this->invincibleTime > 0.0f) { this->invincibleTime -= delta; } if(this->stunTime > 0.0f) { this->stunTime -= delta; } }, getScene()->eventSceneUpdate); } bool_t EntityHealth::isInvincible() { return this->invincibleTime > 0.0f; } bool_t EntityHealth::isStunned() { return this->stunTime > 0.0f; } void EntityHealth::damage(struct DamageInformation info) { if(this->isInvincible()) return; this->health -= info.amount; this->invincibleTime = info.invincibleTime; this->stunTime = info.stunTime; }