]> git.localhorst.tv Git - l2e.git/blobdiff - src/common/Capsule.h
moved upgrade process to battle class
[l2e.git] / src / common / Capsule.h
index b1039fa90e2474fe94d54204726a79d36af88a6d..1e2a6311f07fe1f27ad871a527f24567f575fa21 100644 (file)
@@ -1,13 +1,19 @@
 #ifndef COMMON_CAPSULE_H_
 #define COMMON_CAPSULE_H_
 
+namespace common {
+       class Item;
+       class Upgrade;
+}
 namespace graphics {
        class Animation;
        class Sprite;
 }
 
 #include "../common/Stats.h"
+#include "../math/Vector.h"
 
+#include <vector>
 #include <SDL.h>
 
 namespace common {
@@ -23,6 +29,7 @@ public:
        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;
@@ -30,6 +37,28 @@ public:
        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;
@@ -38,6 +67,8 @@ public:
        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();
@@ -64,6 +95,11 @@ private:
                graphics::Animation *attackAnimation;
                graphics::Animation *spellAnimation;
 
+               const common::Item *upgradeItem;
+               int upgradeClass;
+               int hunger;
+               int hungerFull;
+
                int healthBoost;
                Stats statBoost;
        };
@@ -74,6 +110,9 @@ private:
        const char *name;
        const char *alignment;
 
+       math::Vector<int> alignmentCursor;
+       const graphics::Sprite *alignmentSprite;
+
        int maxHealth;
 
        Stats stats;
@@ -91,4 +130,4 @@ private:
 
 }
 
-#endif /* COMMON_CAPSULE_H_ */
+#endif