X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2FCapsule.cpp;h=ef85ae17b22a88a45a52b6f42bd6aba6356754cd;hb=ec25171b0b27999eb126e2144dae1e35f271b945;hp=709ef3bf0af340cbf36adfb10f4eb5cfa7269c47;hpb=e1edc92c4fb834c8061118e89c0d7e239742b030;p=l2e.git diff --git a/src/battle/Capsule.cpp b/src/battle/Capsule.cpp index 709ef3b..ef85ae1 100644 --- a/src/battle/Capsule.cpp +++ b/src/battle/Capsule.cpp @@ -1,24 +1,66 @@ #include "Capsule.h" +#include "../common/Capsule.h" + +#include + +using graphics::Animation; +using graphics::Sprite; + namespace battle { -Capsule::Capsule() -: name(0) +Capsule::Capsule(common::Capsule *master) +: master(master) +, health(master ? master->MaxHealth() : 0) { + if (master) { + stats = master->GetStats(); + } +} + -, maxHealth(0) -, health(0) -, maxMana(0) -, mana(0) +const char *Capsule::Name() const { + assert(master); + return master->Name(); +} -, level(0) +Uint8 Capsule::Level() const { + assert(master); + return master->Level(); +} -, battleSprite(0) -, meleeAnimation(0) -, attackAnimation(0) -, spellAnimation(0) { +const Sprite *Capsule::Sprite() { + assert(master); + return master->BattleSprite(); +} +const Animation *Capsule::MeleeAnimation() const { + assert(master); + return master->MeleeAnimation(); } +const Animation *Capsule::AttackAnimation() const { + assert(master); + return master->AttackAnimation(); +} + +const Animation *Capsule::SpellAnimation() const { + assert(master); + return master->SpellAnimation(); +} + + +Uint16 Capsule::MaxHealth() const { + assert(master); + return master->MaxHealth(); +} + +Uint16 Capsule::Health() const { + return health; +} + +int Capsule::RelativeHealth(int max) const { + return Health() * max / MaxHealth(); +} void Capsule::SubtractHealth(int amount) { if (amount > health) {