mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-22 07:28:32 +00:00
[Feature] Add Data Bucket support for scaling of Heroic Stats. (#3058)
* [Feature] Add Data Bucket support for scaling of Heroic Stats. * update * fixes, still reworking logic * fixes, still reworking logic * logic done * logic done * fixes * Cleanup * Cleanup * Cleanup naming, verify behaviors * formatting * formatting * fix issue with endurance and mana. * update rule desc * cleanup * DataBucket Struct * Cleanup data_bucket.cpp and add constants * cleanup * changes * formatting * fix from merge * escape keyword `key` * Add `key` to generator, run repository-generator.pl * fix for change to key * cleanup * formatting * formatting * typo
This commit is contained in:
+24
-1
@@ -20,6 +20,7 @@
|
||||
#define MOB_H
|
||||
|
||||
#include "common.h"
|
||||
#include "data_bucket.h"
|
||||
#include "entity.h"
|
||||
#include "hate_list.h"
|
||||
#include "pathfinder_interface.h"
|
||||
@@ -618,10 +619,13 @@ public:
|
||||
inline int64 GetHP() const { return current_hp; }
|
||||
inline int64 GetMaxHP() const { return max_hp; }
|
||||
virtual int64 CalcMaxHP();
|
||||
virtual int64 CalcHPRegenCap() { return 0; }
|
||||
inline int64 GetMaxMana() const { return max_mana; }
|
||||
virtual int64 CalcManaRegenCap() { return 0; }
|
||||
inline int64 GetMana() const { return current_mana; }
|
||||
virtual int64 GetEndurance() const { return 0; }
|
||||
virtual int64 GetMaxEndurance() const { return 0; }
|
||||
virtual int64 CalcEnduranceRegenCap() { return 0; }
|
||||
virtual void SetEndurance(int32 newEnd) { return; }
|
||||
int64 GetItemHPBonuses();
|
||||
int64 GetSpellHPBonuses();
|
||||
@@ -654,7 +658,10 @@ public:
|
||||
inline int32 GetHeroicStrikethrough() const { return heroic_strikethrough; }
|
||||
inline const bool GetKeepsSoldItems() const { return keeps_sold_items; }
|
||||
inline void SetKeepsSoldItems(bool in_keeps_sold_items) { keeps_sold_items = in_keeps_sold_items; }
|
||||
|
||||
virtual int32 GetHealAmt() const { return 0; }
|
||||
virtual int32 GetSpellDmg() const { return 0; }
|
||||
void ProcessItemCaps();
|
||||
virtual int32 CalcItemATKCap() { return 0; }
|
||||
virtual bool IsSitting() const { return false; }
|
||||
|
||||
int CalcRecommendedLevelBonus(uint8 level, uint8 reclevel, int basestat);
|
||||
@@ -1390,6 +1397,9 @@ public:
|
||||
/// this cures timing issues cuz dead animation isn't done but server side feigning is?
|
||||
inline bool GetFeigned() const { return(feigned); }
|
||||
|
||||
std::vector<DataBucketCache> m_data_bucket_cache;
|
||||
|
||||
// Data Bucket Methods
|
||||
void DeleteBucket(std::string bucket_name);
|
||||
std::string GetBucket(std::string bucket_name);
|
||||
std::string GetBucketExpires(std::string bucket_name);
|
||||
@@ -1397,6 +1407,9 @@ public:
|
||||
std::string GetBucketRemaining(std::string bucket_name);
|
||||
void SetBucket(std::string bucket_name, std::string bucket_value, std::string expiration = "");
|
||||
|
||||
// Heroic Stat Benefits
|
||||
float CheckHeroicBonusesDataBuckets(std::string bucket_name);
|
||||
|
||||
int DispatchZoneControllerEvent(QuestEventID evt, Mob* init, const std::string& data, uint32 extra, std::vector<std::any>* pointers);
|
||||
|
||||
// Bots HealRotation methods
|
||||
@@ -1418,6 +1431,8 @@ public:
|
||||
|
||||
void DrawDebugCoordinateNode(std::string node_name, const glm::vec4 vec);
|
||||
|
||||
void CalcHeroicBonuses(StatBonuses* newbon);
|
||||
|
||||
protected:
|
||||
void CommonDamage(Mob* other, int64 &damage, const uint16 spell_id, const EQ::skills::SkillType attack_skill, bool &avoidable, const int8 buffslot, const bool iBuffTic, eSpecialAttacks specal = eSpecialAttacks::None);
|
||||
static uint16 GetProcID(uint16 spell_id, uint8 effect_index);
|
||||
@@ -1701,6 +1716,7 @@ protected:
|
||||
bool is_boat;
|
||||
|
||||
CombatRecord m_combat_record{};
|
||||
|
||||
public:
|
||||
const CombatRecord &GetCombatRecord() const;
|
||||
|
||||
@@ -1833,6 +1849,13 @@ private:
|
||||
std::shared_ptr<HealRotation> m_target_of_heal_rotation;
|
||||
bool m_manual_follow;
|
||||
|
||||
void SetHeroicStrBonuses(StatBonuses* n);
|
||||
void SetHeroicStaBonuses(StatBonuses* n);
|
||||
void SetHeroicAgiBonuses(StatBonuses* n);
|
||||
void SetHeroicDexBonuses(StatBonuses* n);
|
||||
void SetHeroicIntBonuses(StatBonuses* n);
|
||||
void SetHeroicWisBonuses(StatBonuses* n);
|
||||
|
||||
void DoSpellInterrupt(uint16 spell_id, int32 mana_cost, int my_curmana);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user