change to oop
This commit is contained in:
@@ -12,18 +12,11 @@
|
||||
constexpr int MAX_SKILL_LEVEL = 13;
|
||||
|
||||
|
||||
template <typename T>
|
||||
class Skill {
|
||||
public:
|
||||
int castend_damage_id() const {
|
||||
return as_underlying().castendDamageId();
|
||||
};
|
||||
int castend_nodamage_id() const {
|
||||
return as_underlying().castendNoDamageId();
|
||||
};
|
||||
int castend_pos2() const {
|
||||
return as_underlying().castendPos2();
|
||||
};
|
||||
virtual int castendDamageId() const;
|
||||
virtual int castendNodamageId() const;
|
||||
virtual int castendPos2() const;
|
||||
|
||||
uint16_t getSkillID() const {
|
||||
return nameid;
|
||||
@@ -32,20 +25,11 @@ public:
|
||||
protected:
|
||||
explicit Skill(e_skill skillid) : nameid(static_cast<uint16_t>(skillid)) {};
|
||||
private:
|
||||
friend T;
|
||||
|
||||
uint16_t nameid;
|
||||
std::string name;
|
||||
std::string desc;
|
||||
std::array<int32_t, MAX_SKILL_LEVEL> range;
|
||||
|
||||
inline T& as_underlying() {
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
inline const T& as_underlying() const {
|
||||
return static_cast<const T&>(*this);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -5,16 +5,14 @@
|
||||
#include "../skills.hpp"
|
||||
|
||||
|
||||
class Bash : public Skill<Bash> {
|
||||
class Bash : public Skill {
|
||||
public:
|
||||
int castendDamageId() const {
|
||||
return 0;
|
||||
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
|
||||
};
|
||||
|
||||
Bash() : Skill(e_skill::SM_BASH) {};
|
||||
|
||||
private:
|
||||
friend class Skill<Bash>;
|
||||
};
|
||||
|
||||
#endif // SKILLS_SWORDSMAN_BASH_HPP
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "../skill.hpp"
|
||||
|
||||
|
||||
class Provoke : public Skill<Provoke> {
|
||||
class Provoke : public Skill {
|
||||
public:
|
||||
int castendNoDamageId() const {
|
||||
return 0;
|
||||
@@ -13,7 +13,6 @@ public:
|
||||
Provoke() : Skill(e_skill::SM_PROVOKE) {};
|
||||
|
||||
private:
|
||||
friend class Skill<Provoke>;
|
||||
};
|
||||
|
||||
#endif // SKILLS_SWORDSMAN_PROVOKE_HPP
|
||||
|
||||
Reference in New Issue
Block a user