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