change to oop

This commit is contained in:
Vincent Stumpf
2023-06-17 02:00:01 +00:00
parent 95ee5d04e6
commit 98ac59a940
3 changed files with 6 additions and 25 deletions

View File

@@ -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);
}
};

View File

@@ -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

View File

@@ -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