Support for Heal function for Creatures.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-02-13 14:48:09 +01:00
parent 2dcb197191
commit 8d4860f553
3 changed files with 29 additions and 0 deletions

View File

@@ -112,6 +112,19 @@ void Battling::Creature::Damage(uint32_t damage, Battling::DamageSource source)
}
}
void Battling::Creature::Heal(uint32_t amount) {
if (amount > GetMaxHealth() - _currentHealth) {
amount = GetMaxHealth() - _currentHealth;
}
// HOOK: On Heal
auto newHealth = _currentHealth + amount;
auto battle = this->GetBattle();
if (battle != nullptr) {
battle->TriggerEventListener(new HealEvent(this, _currentHealth, newHealth));
}
_currentHealth = newHealth;
}
void Battling::Creature::OverrideActiveTalent(const std::string& talent) {
_hasOverridenTalent = true;
_activeTalent->OnRemove();

View File

@@ -98,8 +98,10 @@ namespace CreatureLib::Battling {
[[nodiscard]] const std::vector<uint8_t>& GetTypes() const;
[[nodiscard]] bool HasType(uint8_t type) const;
uint32_t GetMaxHealth() const { return _boostedStats.GetHealth(); }
void ChangeLevel(int8_t amount);
void Damage(uint32_t damage, DamageSource source);
void Heal(uint32_t amount);
void OverrideActiveTalent(const std::string& talent);
void AddExperience(uint32_t amount);