#include "fwd.h"
#include "Stats.h"
#include "../graphics/fwd.h"
+#include "../map/Entity.h"
#include <vector>
class Hero {
+public:
+ static const int TYPE_ID = 301;
+
public:
Hero();
~Hero() { }
const Stats &GetStats() const { return stats; }
Uint8 Level() const { return level; }
+ int Experience() const { return experience; }
+ int NextLevel() const;
Item *Weapon() { return weapon; }
Item *Armor() { return armor; }
const std::vector<const Spell *> &Spells() const { return spells; }
graphics::Sprite *BattleSprite() { return battleSprite; }
+ const graphics::Sprite *BattleSprite() const { return battleSprite; }
graphics::Animation *MeleeAnimation() { return meleeAnimation; }
graphics::Animation *AttackAnimation() { return attackAnimation; }
graphics::Animation *SpellAnimation() { return spellAnimation; }
- graphics::Sprite *MapSprite() { return mapSprite; }
+ map::Entity &MapEntity() { return mapEntity; }
+ const map::Entity &MapEntity() const { return mapEntity; }
static void CreateTypeDescription();
static void Construct(void *);
Stats stats;
int level;
+ int experience;
+
+ int *levelLadder;
+ int numLevels;
Item *weapon;
Item *armor;
graphics::Animation *attackAnimation;
graphics::Animation *spellAnimation;
- graphics::Sprite *mapSprite;
+ map::Entity mapEntity;
};