Merge Core library into Library, as with its utility functionality merged into Arbutils, it's becoming less and less useful.
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#include "TurnHandler.hpp"
|
||||
#include "../../Core/Exceptions/NotImplementedException.hpp"
|
||||
#include "../../Library/Exceptions/NotImplementedException.hpp"
|
||||
#include "../Models/Battle.hpp"
|
||||
#include "../ScriptHandling/ScriptMacros.hpp"
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@ bool ___ChoiceOrderFunc(const BaseTurnChoice* a, const BaseTurnChoice* b, Arbuti
|
||||
if (aPriority != bPriority)
|
||||
return aPriority > bPriority;
|
||||
}
|
||||
auto aSpeed = a->GetUser()->GetBoostedStat(Core::Statistic::Speed);
|
||||
auto bSpeed = b->GetUser()->GetBoostedStat(Core::Statistic::Speed);
|
||||
auto aSpeed = a->GetUser()->GetBoostedStat(Library::Statistic::Speed);
|
||||
auto bSpeed = b->GetUser()->GetBoostedStat(Library::Statistic::Speed);
|
||||
if (aSpeed != bSpeed)
|
||||
return aSpeed > bSpeed;
|
||||
|
||||
|
||||
@@ -1,46 +1,48 @@
|
||||
#include "BattleStatCalculator.hpp"
|
||||
#include "../../Core/Exceptions/NotImplementedException.hpp"
|
||||
#include "../../Library/Exceptions/NotImplementedException.hpp"
|
||||
#include "../Models/Creature.hpp"
|
||||
|
||||
using namespace CreatureLib;
|
||||
|
||||
Core::StatisticSet<uint32_t> Battling::BattleStatCalculator::CalculateFlatStats(Battling::Creature* creature) const {
|
||||
return Core::StatisticSet<uint32_t>(CalculateFlatStat(creature, Core::Statistic::Health),
|
||||
CalculateFlatStat(creature, Core::Statistic::PhysicalAttack),
|
||||
CalculateFlatStat(creature, Core::Statistic::PhysicalDefense),
|
||||
CalculateFlatStat(creature, Core::Statistic::MagicalAttack),
|
||||
CalculateFlatStat(creature, Core::Statistic::MagicalDefense),
|
||||
CalculateFlatStat(creature, Core::Statistic::Speed));
|
||||
Library::StatisticSet<uint32_t> Battling::BattleStatCalculator::CalculateFlatStats(Battling::Creature* creature) const {
|
||||
return Library::StatisticSet<uint32_t>(CalculateFlatStat(creature, Library::Statistic::Health),
|
||||
CalculateFlatStat(creature, Library::Statistic::PhysicalAttack),
|
||||
CalculateFlatStat(creature, Library::Statistic::PhysicalDefense),
|
||||
CalculateFlatStat(creature, Library::Statistic::MagicalAttack),
|
||||
CalculateFlatStat(creature, Library::Statistic::MagicalDefense),
|
||||
CalculateFlatStat(creature, Library::Statistic::Speed));
|
||||
}
|
||||
|
||||
Core::StatisticSet<uint32_t> Battling::BattleStatCalculator::CalculateBoostedStats(Battling::Creature* creature) const {
|
||||
return Core::StatisticSet<uint32_t>(CalculateBoostedStat(creature, Core::Statistic::Health),
|
||||
CalculateBoostedStat(creature, Core::Statistic::PhysicalAttack),
|
||||
CalculateBoostedStat(creature, Core::Statistic::PhysicalDefense),
|
||||
CalculateBoostedStat(creature, Core::Statistic::MagicalAttack),
|
||||
CalculateBoostedStat(creature, Core::Statistic::MagicalDefense),
|
||||
CalculateBoostedStat(creature, Core::Statistic::Speed));
|
||||
Library::StatisticSet<uint32_t>
|
||||
Battling::BattleStatCalculator::CalculateBoostedStats(Battling::Creature* creature) const {
|
||||
return Library::StatisticSet<uint32_t>(CalculateBoostedStat(creature, Library::Statistic::Health),
|
||||
CalculateBoostedStat(creature, Library::Statistic::PhysicalAttack),
|
||||
CalculateBoostedStat(creature, Library::Statistic::PhysicalDefense),
|
||||
CalculateBoostedStat(creature, Library::Statistic::MagicalAttack),
|
||||
CalculateBoostedStat(creature, Library::Statistic::MagicalDefense),
|
||||
CalculateBoostedStat(creature, Library::Statistic::Speed));
|
||||
}
|
||||
|
||||
uint32_t CalculateHealthStat(Battling::Creature* creature) {
|
||||
auto level = creature->GetLevel();
|
||||
auto a = (creature->GetBaseStat(Core::Statistic::Health)) * 2 * level;
|
||||
auto a = (creature->GetBaseStat(Library::Statistic::Health)) * 2 * level;
|
||||
return floor(a / 100) + level + 10;
|
||||
}
|
||||
|
||||
uint32_t CalculateOtherStat(Battling::Creature* creature, Core::Statistic stat) {
|
||||
uint32_t CalculateOtherStat(Battling::Creature* creature, Library::Statistic stat) {
|
||||
auto level = creature->GetLevel();
|
||||
auto a = (creature->GetBaseStat(stat)) * 2 * level;
|
||||
return floor(a / 100) + 10;
|
||||
}
|
||||
|
||||
uint32_t Battling::BattleStatCalculator::CalculateFlatStat(Battling::Creature* creature, Core::Statistic stat) const {
|
||||
if (stat == Core::Statistic::Health)
|
||||
uint32_t Battling::BattleStatCalculator::CalculateFlatStat(Battling::Creature* creature,
|
||||
Library::Statistic stat) const {
|
||||
if (stat == Library::Statistic::Health)
|
||||
return CalculateHealthStat(creature);
|
||||
return CalculateOtherStat(creature, stat);
|
||||
}
|
||||
|
||||
uint32_t Battling::BattleStatCalculator::CalculateBoostedStat(Battling::Creature* creature,
|
||||
Core::Statistic stat) const {
|
||||
Library::Statistic stat) const {
|
||||
return creature->GetFlatStat(stat) + (creature->GetBoostedStat(stat));
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef CREATURELIB_BATTLESTATCALCULATOR_HPP
|
||||
#define CREATURELIB_BATTLESTATCALCULATOR_HPP
|
||||
|
||||
#include "../../Core/StatisticSet.hpp"
|
||||
#include "../../Library/StatisticSet.hpp"
|
||||
|
||||
namespace CreatureLib::Battling {
|
||||
// predeclare BattleCreature class
|
||||
@@ -11,10 +11,10 @@ namespace CreatureLib::Battling {
|
||||
public:
|
||||
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;
|
||||
virtual Library::StatisticSet<uint32_t> CalculateFlatStats(Creature* creature) const;
|
||||
virtual Library::StatisticSet<uint32_t> CalculateBoostedStats(Creature* creature) const;
|
||||
virtual uint32_t CalculateFlatStat(Creature* creature, Library::Statistic stat) const;
|
||||
virtual uint32_t CalculateBoostedStat(Creature* creature, Library::Statistic stat) const;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -24,14 +24,14 @@ float DamageLibrary::GetStatModifier(ExecutingAttack* attack, Creature* target,
|
||||
auto user = attack->GetUser();
|
||||
HOOK(ChangeDamageStatsUser, attack, attack, target, hitIndex, &user);
|
||||
auto hit = attack->GetAttackDataForTarget(target)->GetHit(hitIndex);
|
||||
Core::Statistic offensiveStat;
|
||||
Core::Statistic defensiveStat;
|
||||
Library::Statistic offensiveStat;
|
||||
Library::Statistic defensiveStat;
|
||||
if (attack->GetAttack()->GetAttack()->GetCategory() == Library::AttackCategory::Physical) {
|
||||
offensiveStat = Core::Statistic::PhysicalAttack;
|
||||
defensiveStat = Core::Statistic::PhysicalDefense;
|
||||
offensiveStat = Library::Statistic::PhysicalAttack;
|
||||
defensiveStat = Library::Statistic::PhysicalDefense;
|
||||
} else {
|
||||
offensiveStat = Core::Statistic::MagicalAttack;
|
||||
defensiveStat = Core::Statistic::MagicalDefense;
|
||||
offensiveStat = Library::Statistic::MagicalAttack;
|
||||
defensiveStat = Library::Statistic::MagicalDefense;
|
||||
}
|
||||
|
||||
auto bypassDefensive = hit->IsCritical() && target->GetStatBoost(defensiveStat) > 0;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "Battle.hpp"
|
||||
#include "../../Core/Exceptions/NotImplementedException.hpp"
|
||||
#include "../../Library/Exceptions/NotImplementedException.hpp"
|
||||
#include "../Flow/TurnHandler.hpp"
|
||||
#include "../Flow/TurnOrdering.hpp"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "BattleSide.hpp"
|
||||
#include <algorithm>
|
||||
#include "../../Core/Exceptions/CreatureException.hpp"
|
||||
#include "../../Library/Exceptions/CreatureException.hpp"
|
||||
#include "Battle.hpp"
|
||||
|
||||
using namespace CreatureLib::Battling;
|
||||
|
||||
@@ -42,7 +42,7 @@ void Battling::Creature::SetBattleData(Battling::Battle* battle, Battling::Battl
|
||||
|
||||
// region Stat APIs
|
||||
|
||||
void Battling::Creature::ChangeStatBoost(Core::Statistic stat, int8_t diffAmount) {
|
||||
void Battling::Creature::ChangeStatBoost(Library::Statistic stat, int8_t diffAmount) {
|
||||
if (diffAmount > 0)
|
||||
this->_statBoost.IncreaseStatBy(stat, diffAmount);
|
||||
else
|
||||
@@ -50,13 +50,13 @@ void Battling::Creature::ChangeStatBoost(Core::Statistic stat, int8_t diffAmount
|
||||
this->RecalculateBoostedStat(stat);
|
||||
}
|
||||
|
||||
uint32_t Battling::Creature::GetFlatStat(Core::Statistic stat) const { return _flatStats.GetStat(stat); }
|
||||
uint32_t Battling::Creature::GetFlatStat(Library::Statistic stat) const { return _flatStats.GetStat(stat); }
|
||||
|
||||
uint32_t Battling::Creature::GetBoostedStat(Core::Statistic stat) const { return _boostedStats.GetStat(stat); }
|
||||
uint32_t Battling::Creature::GetBoostedStat(Library::Statistic stat) const { return _boostedStats.GetStat(stat); }
|
||||
|
||||
uint32_t Battling::Creature::GetBaseStat(Core::Statistic stat) const { return _variant->GetStatistic(stat); }
|
||||
uint32_t Battling::Creature::GetBaseStat(Library::Statistic stat) const { return _variant->GetStatistic(stat); }
|
||||
|
||||
int8_t Battling::Creature::GetStatBoost(Core::Statistic stat) const { return _statBoost.GetStat(stat); }
|
||||
int8_t Battling::Creature::GetStatBoost(Library::Statistic stat) const { return _statBoost.GetStat(stat); }
|
||||
|
||||
void Battling::Creature::RecalculateFlatStats() {
|
||||
auto statCalc = this->_library->GetStatCalculator();
|
||||
@@ -67,13 +67,13 @@ void Battling::Creature::RecalculateBoostedStats() {
|
||||
this->_boostedStats = this->_library->GetStatCalculator()->CalculateFlatStats(this);
|
||||
}
|
||||
|
||||
void Battling::Creature::RecalculateFlatStat(Core::Statistic stat) {
|
||||
void Battling::Creature::RecalculateFlatStat(Library::Statistic stat) {
|
||||
auto s = this->_library->GetStatCalculator()->CalculateFlatStat(this, stat);
|
||||
this->_flatStats.SetStat(stat, s);
|
||||
RecalculateBoostedStat(stat);
|
||||
}
|
||||
|
||||
void Battling::Creature::RecalculateBoostedStat(Core::Statistic stat) {
|
||||
void Battling::Creature::RecalculateBoostedStat(Library::Statistic stat) {
|
||||
auto s = this->_library->GetStatCalculator()->CalculateBoostedStat(this, stat);
|
||||
this->_boostedStats.SetStat(stat, s);
|
||||
}
|
||||
|
||||
@@ -33,9 +33,9 @@ namespace CreatureLib::Battling {
|
||||
const Library::Item* _heldItem;
|
||||
uint32_t _currentHealth;
|
||||
|
||||
Core::StatisticSet<int8_t> _statBoost;
|
||||
Core::StatisticSet<uint32_t> _flatStats;
|
||||
Core::StatisticSet<uint32_t> _boostedStats;
|
||||
Library::StatisticSet<int8_t> _statBoost;
|
||||
Library::StatisticSet<uint32_t> _flatStats;
|
||||
Library::StatisticSet<uint32_t> _boostedStats;
|
||||
|
||||
Battle* _battle = nullptr;
|
||||
BattleSide* _side = nullptr;
|
||||
@@ -73,7 +73,7 @@ namespace CreatureLib::Battling {
|
||||
|
||||
virtual void Initialize() {
|
||||
RecalculateFlatStats();
|
||||
_currentHealth = GetBoostedStat(Core::Statistic::Health);
|
||||
_currentHealth = GetBoostedStat(Library::Statistic::Health);
|
||||
}
|
||||
|
||||
inline const Library::CreatureSpecies* GetSpecies() const { return _species; }
|
||||
@@ -136,15 +136,15 @@ namespace CreatureLib::Battling {
|
||||
|
||||
// region Stat APIs
|
||||
|
||||
void ChangeStatBoost(Core::Statistic stat, int8_t diffAmount);
|
||||
[[nodiscard]] uint32_t GetFlatStat(Core::Statistic stat) const;
|
||||
[[nodiscard]] uint32_t GetBoostedStat(Core::Statistic stat) const;
|
||||
[[nodiscard]] uint32_t GetBaseStat(Core::Statistic stat) const;
|
||||
[[nodiscard]] int8_t GetStatBoost(Core::Statistic stat) const;
|
||||
void ChangeStatBoost(Library::Statistic stat, int8_t diffAmount);
|
||||
[[nodiscard]] uint32_t GetFlatStat(Library::Statistic stat) const;
|
||||
[[nodiscard]] uint32_t GetBoostedStat(Library::Statistic stat) const;
|
||||
[[nodiscard]] uint32_t GetBaseStat(Library::Statistic stat) const;
|
||||
[[nodiscard]] int8_t GetStatBoost(Library::Statistic stat) const;
|
||||
void RecalculateFlatStats();
|
||||
void RecalculateBoostedStats();
|
||||
void RecalculateFlatStat(Core::Statistic);
|
||||
void RecalculateBoostedStat(Core::Statistic);
|
||||
void RecalculateFlatStat(Library::Statistic);
|
||||
void RecalculateBoostedStat(Library::Statistic);
|
||||
|
||||
// endregion
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include <any>
|
||||
#include <queue>
|
||||
#include "../../Core/Exceptions/NotReachableException.hpp"
|
||||
#include "../../Library/Exceptions/NotReachableException.hpp"
|
||||
#include "Script.hpp"
|
||||
#include "ScriptSet.hpp"
|
||||
#include "ScriptWrapper.hpp"
|
||||
|
||||
Reference in New Issue
Block a user