#ifndef COMMON_CAPSULE_H_
#define COMMON_CAPSULE_H_
+namespace common {
+ class Item;
+ class LevelUp;
+ class Upgrade;
+}
namespace graphics {
class Animation;
class Sprite;
}
-#include "../common/Stats.h"
+#include "Stats.h"
+#include "../math/Vector.h"
+#include <vector>
#include <SDL.h>
namespace common {
Capsule();
const char *Name() const { return name; }
+ void SetName(const char *n) { name = n; }
const char *ClassName() const;
const char *Alignment() const { return alignment; }
const char *Tribe() const;
const Spell *Attack2() const;
const Spell *Attack3() const;
+ int NumClasses() const { return numClasses; }
+ int MaxClass() const { return maxClass; }
+ int CurrentClass() const { return curClass; }
+
+ const math::Vector<int> &AlignmentOffset() const { return alignmentCursor; }
+ const graphics::Sprite *AlignmentSprite() const { return alignmentSprite; }
+
+ void UpgradeClass();
+ void NextClass();
+ void PreviousClass();
+ int ClassIndex() const { return curClass; }
+ void SetClass(int index);
+
+ int HungerEmpty() const;
+ int HungerTotal() const;
+ int HungerFull() const;
+ bool IsHungry() const;
+ void Feed(const common::Item *);
+
+ const common::Item *UpgradeItem() const;
+ void UpgradeSpecial();
+
Uint16 MaxHealth() const;
Stats GetStats() const;
int Experience() const { return experience; }
int NextLevel() const;
+ void AddExperience(int, std::vector<Upgrade> &);
+
graphics::Sprite *BattleSprite();
const graphics::Sprite *BattleSprite() const;
graphics::Animation *MeleeAnimation();
graphics::Animation *attackAnimation;
graphics::Animation *spellAnimation;
+ const common::Item *upgradeItem;
+ int upgradeClass;
+ int hunger;
+ int hungerFull;
+
int healthBoost;
Stats statBoost;
};
const char *name;
const char *alignment;
+ math::Vector<int> alignmentCursor;
+ const graphics::Sprite *alignmentSprite;
+
int maxHealth;
Stats stats;
int level;
int experience;
- int *levelLadder;
+ LevelUp *levelLadder;
int numLevels;
Class *classes;
}
-#endif /* COMMON_CAPSULE_H_ */
+#endif