This commit is contained in:
@@ -1,13 +1,10 @@
|
||||
#include <exception>
|
||||
#include "StatisticSet.hpp"
|
||||
|
||||
CreatureLib::Core::StatisticSet::StatisticSet(uint32_t health, uint32_t physicalAttack, uint32_t physicalDefense,
|
||||
uint32_t magicalAttack, uint32_t magicalDefense, uint32_t speed)
|
||||
:
|
||||
__Health(health),
|
||||
__PhysicalAttack(physicalAttack),
|
||||
__PhysicalDefense(physicalDefense),
|
||||
__MagicalAttack(magicalAttack),
|
||||
__MagicalDefense(magicalDefense),
|
||||
__Speed(speed)
|
||||
{}
|
||||
|
||||
template <class T>
|
||||
CreatureLib::Core::StatisticSet<T>::StatisticSet()
|
||||
: _health(0), _physicalAttack(0), _physicalDefense(0), _magicalAttack(0), _magicalDefense(0), _speed(0)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,30 +1,55 @@
|
||||
#ifndef CREATURELIB_STATISTICSET_HPP
|
||||
#define CREATURELIB_STATISTICSET_HPP
|
||||
#include <stdint.h>
|
||||
#include <exception>
|
||||
#include "Statistic.hpp"
|
||||
#include "../GenericTemplates.cpp"
|
||||
|
||||
namespace CreatureLib::Core{
|
||||
template <class T>
|
||||
class StatisticSet {
|
||||
protected:
|
||||
T _health;
|
||||
T _physicalAttack;
|
||||
T _physicalDefense;
|
||||
T _magicalAttack;
|
||||
T _magicalDefense;
|
||||
T _speed;
|
||||
public:
|
||||
StatisticSet(uint32_t health, uint32_t physicalAttack, uint32_t physicalDefense, uint32_t magicalAttack,
|
||||
uint32_t magicalDefense, uint32_t speed);
|
||||
StatisticSet(T health, T physicalAttack, T physicalDefense, T magicalAttack, T magicalDefense, T speed)
|
||||
: _health(health), _physicalAttack(physicalAttack),
|
||||
_physicalDefense(physicalDefense), _magicalAttack(magicalAttack),
|
||||
_magicalDefense(magicalDefense), _speed(speed){}
|
||||
StatisticSet();
|
||||
|
||||
GetSetProperty(uint32_t, Health)
|
||||
GetSetProperty(uint32_t, PhysicalAttack)
|
||||
GetSetProperty(uint32_t, PhysicalDefense)
|
||||
GetSetProperty(uint32_t, MagicalAttack)
|
||||
GetSetProperty(uint32_t, MagicalDefense)
|
||||
GetSetProperty(uint32_t, Speed)
|
||||
inline T GetHealth() const{ return _health; }
|
||||
inline T GetPhysicalAttack() const{ return _physicalAttack; }
|
||||
inline T GetPhysicalDefense() const{ return _physicalDefense; }
|
||||
inline T GetMagicalAttack() const{ return _magicalAttack; }
|
||||
inline T GetMagicalDefense() const{ return _magicalDefense; }
|
||||
inline T GetSpeed() const{ return _speed; }
|
||||
|
||||
[[nodiscard]] inline uint32_t GetStat(Statistic stat) const{
|
||||
|
||||
[[nodiscard]] inline T GetStat(Statistic stat) const{
|
||||
switch (stat){
|
||||
case Health: return __Health;
|
||||
case PhysicalAttack: return __PhysicalAttack;
|
||||
case PhysicalDefense: return __PhysicalDefense;
|
||||
case MagicalAttack: return __MagicalAttack;
|
||||
case MagicalDefense: return __MagicalDefense;
|
||||
case Speed: return __Speed;
|
||||
case Health: return _health;
|
||||
case PhysicalAttack: return _physicalAttack;
|
||||
case PhysicalDefense: return _physicalDefense;
|
||||
case MagicalAttack: return _magicalAttack;
|
||||
case MagicalDefense: return _magicalDefense;
|
||||
case Speed: return _speed;
|
||||
}
|
||||
throw std::exception();
|
||||
}
|
||||
|
||||
inline void SetStat(Statistic stat, T value){
|
||||
switch (stat){
|
||||
case Health: _health = value;
|
||||
case PhysicalAttack: _physicalAttack = value;
|
||||
case PhysicalDefense: _physicalDefense = value;
|
||||
case MagicalAttack: _magicalAttack = value;
|
||||
case MagicalDefense: _magicalDefense = value;
|
||||
case Speed: _speed = value;
|
||||
}
|
||||
throw std::exception();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user