Remove creature classes from Library lib, merged with Battling lib.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2019-10-24 13:37:55 +02:00
parent bb8978314f
commit 9588236183
24 changed files with 310 additions and 337 deletions

View File

@@ -1,5 +1,25 @@
#include "BattleLibrary.hpp"
CreatureLib::Battling::BattleLibrary::BattleLibrary(CreatureLib::Library::DataLibrary *staticLib,
CreatureLib::Battling::BattleStatCalculator *statCalculator)
: _staticLib(staticLib), _statCalculator(statCalculator)
{}
CreatureLib::Battling::BattleLibrary::~BattleLibrary() {
delete _staticLib;
delete _statCalculator;
}
const CreatureLib::Battling::BattleStatCalculator *CreatureLib::Battling::BattleLibrary::GetStatCalculator() const {
return _statCalculator;
}
const CreatureLib::Library::SpeciesLibrary* CreatureLib::Battling::BattleLibrary::GetSpeciesLibrary() const {
return _staticLib->GetSpeciesLibrary();
}
const CreatureLib::Library::ItemLibrary* CreatureLib::Battling::BattleLibrary::GetItemLibrary() const {
return _staticLib->GetItemLibrary();
}

View File

@@ -2,11 +2,18 @@
#define CREATURELIB_BATTLELIBRARY_HPP
#include "BattleStatCalculator.hpp"
#include "../../Library/DataLibrary.hpp"
namespace CreatureLib::Battling {
class BattleLibrary {
const Library::DataLibrary* _staticLib;
BattleStatCalculator* _statCalculator;
public:
BattleLibrary(Library::DataLibrary* staticLib, BattleStatCalculator* statCalculator);
~BattleLibrary();
const Library::SpeciesLibrary* GetSpeciesLibrary() const;
const Library::ItemLibrary* GetItemLibrary() const;
const BattleStatCalculator* GetStatCalculator() const;
};
}

View File

@@ -1,10 +1,10 @@
#include "BattleStatCalculator.hpp"
#include "../Models/BattleCreature.hpp"
#include "../Models/Creature.hpp"
using namespace CreatureLib;
Core::StatisticSet<uint32_t>
Battling::BattleStatCalculator::CalculateFlatStats(Battling::BattleCreature *creature) const {
Battling::BattleStatCalculator::CalculateFlatStats(Battling::Creature *creature) const {
return Core::StatisticSet<uint32_t>(
CalculateFlatStat(creature, Core::Statistic::Health),
CalculateFlatStat(creature, Core::Statistic::PhysicalAttack),
@@ -16,7 +16,7 @@ Battling::BattleStatCalculator::CalculateFlatStats(Battling::BattleCreature *cre
}
Core::StatisticSet<uint32_t>
Battling::BattleStatCalculator::CalculateBoostedStats(Battling::BattleCreature *creature) const {
Battling::BattleStatCalculator::CalculateBoostedStats(Battling::Creature *creature) const {
return Core::StatisticSet<uint32_t>(
CalculateBoostedStat(creature, Core::Statistic::Health),
CalculateBoostedStat(creature, Core::Statistic::PhysicalAttack),
@@ -27,29 +27,27 @@ return Core::StatisticSet<uint32_t>(
);
}
uint32_t CalculateHealthStat(Battling::BattleCreature *creature){
auto base = creature->GetBackingCreature();
uint32_t CalculateHealthStat(Battling::Creature *creature){
auto level = creature->GetLevel();
auto a = (base->GetBaseStat(Core::Statistic::Health) + base->GetStatPotential(Core::Statistic::Health)) * 2 +
floor(sqrt(base->GetStatExperience(Core::Statistic::Health) / 4)) * level;
auto a = (creature->GetBaseStat(Core::Statistic::Health) + creature->GetStatPotential(Core::Statistic::Health)) * 2 +
floor(sqrt(creature->GetStatExperience(Core::Statistic::Health) / 4)) * level;
return floor(a / 100) + level + 10;
}
uint32_t CalculateOtherStat(Battling::BattleCreature *creature, Core::Statistic stat){
auto base = creature->GetBackingCreature();
uint32_t CalculateOtherStat(Battling::Creature *creature, Core::Statistic stat){
auto level = creature->GetLevel();
auto a = (base->GetBaseStat(stat) + base->GetStatPotential(stat)) * 2 +
floor(sqrt(base->GetStatExperience(stat) / 4)) * level;
auto a = (creature->GetBaseStat(stat) + creature->GetStatPotential(stat)) * 2 +
floor(sqrt(creature->GetStatExperience(stat) / 4)) * level;
return floor(a / 100) + 10;
}
uint32_t Battling::BattleStatCalculator::CalculateFlatStat(Battling::BattleCreature *creature, Core::Statistic stat) const{
uint32_t Battling::BattleStatCalculator::CalculateFlatStat(Battling::Creature *creature, Core::Statistic stat) const{
if (stat == Core::Statistic::Health)
return CalculateHealthStat(creature);
return CalculateOtherStat(creature, stat);
}
uint32_t Battling::BattleStatCalculator::CalculateBoostedStat(Battling::BattleCreature *creature, Core::Statistic stat) const{
uint32_t Battling::BattleStatCalculator::CalculateBoostedStat(Battling::Creature *creature, Core::Statistic stat) const{
throw "TODO";
}

View File

@@ -5,14 +5,16 @@
namespace CreatureLib::Battling {
//predeclare BattleCreature class
class BattleCreature;
class Creature;
class BattleStatCalculator {
public:
virtual Core::StatisticSet<uint32_t > CalculateFlatStats(BattleCreature* creature) const;
virtual Core::StatisticSet<uint32_t > CalculateBoostedStats(BattleCreature* creature) const;
virtual uint32_t CalculateFlatStat(BattleCreature* creature, Core::Statistic stat) const;
virtual uint32_t CalculateBoostedStat(BattleCreature* creature, Core::Statistic stat) const;
virtual ~BattleStatCalculator() = default;
virtual Core::StatisticSet<uint32_t > CalculateFlatStats(Creature* creature) const;
virtual Core::StatisticSet<uint32_t > CalculateBoostedStats(Creature* creature) const;
virtual uint32_t CalculateFlatStat(Creature* creature, Core::Statistic stat) const;
virtual uint32_t CalculateBoostedStat(Creature* creature, Core::Statistic stat) const;
};
}