2019-09-16 03:13:52 +02:00
|
|
|
#ifndef COMPLEX_LEVEL_STAT_DATA_H
|
2019-09-24 02:04:41 +02:00
|
|
|
#define COMPLEX_LEVEL_STAT_DATA_H
|
2019-09-16 03:13:52 +02:00
|
|
|
|
|
|
|
#include "core/resource.h"
|
|
|
|
|
|
|
|
#include "../../entity_enums.h"
|
|
|
|
#include "level_stat_data.h"
|
|
|
|
|
|
|
|
class ComplexLevelStatData : public LevelStatData {
|
|
|
|
GDCLASS(ComplexLevelStatData, LevelStatData);
|
|
|
|
|
|
|
|
public:
|
|
|
|
int get_agility_for_level(int level);
|
|
|
|
void set_agility_for_level(int level, int value);
|
|
|
|
|
|
|
|
int get_strength_for_level(int level);
|
|
|
|
void set_strength_for_level(int level, int value);
|
|
|
|
|
|
|
|
int get_stamina_for_level(int level);
|
|
|
|
void set_stamina_for_level(int level, int value);
|
|
|
|
|
|
|
|
int get_intellect_for_level(int level);
|
|
|
|
void set_intellect_for_level(int level, int value);
|
|
|
|
|
2019-10-16 13:35:57 +02:00
|
|
|
int get_spirit_for_level(int level);
|
|
|
|
void set_spirit_for_level(int level, int value);
|
2019-09-16 03:13:52 +02:00
|
|
|
|
|
|
|
int _get_stat_diff(int stat, int old_level, int new_level);
|
|
|
|
|
|
|
|
public:
|
|
|
|
struct ComplexLevelStatsEntry {
|
|
|
|
int agility;
|
|
|
|
int strength;
|
|
|
|
int stamina;
|
|
|
|
int intellect;
|
2019-10-16 13:35:57 +02:00
|
|
|
int spirit;
|
2019-09-16 03:13:52 +02:00
|
|
|
|
|
|
|
ComplexLevelStatsEntry() {
|
|
|
|
agility = 0;
|
|
|
|
strength = 0;
|
|
|
|
stamina = 0;
|
|
|
|
intellect = 0;
|
2019-10-16 13:35:57 +02:00
|
|
|
spirit = 0;
|
2019-09-16 03:13:52 +02:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
protected:
|
|
|
|
static void _bind_methods();
|
|
|
|
|
|
|
|
private:
|
|
|
|
ComplexLevelStatsEntry _entries[EntityEnums::MAX_LEVEL];
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|