#include "Capsule.h"
+#include "../common/Capsule.h"
+#include "../math/Vector.h"
+
+#include <cassert>
+
+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() const {
+ 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) {