mirror of
https://github.com/EQEmu/Server.git
synced 2026-08-30 05:28:13 +00:00
[Spells] Rework of Virus Effect code (#1593)
* start of rework * functional * virus updates * Update npc.cpp * updates * updates * update v2 * pre remove old code * removed old code1 * remove debugs * description * Update spell_effects.cpp * changed function name * remove unused var * merge error fix * fix formating issue * Update spdat.cpp * Update spell_effects.cpp * Convert virus entity range code to use vectors and GetCloseMobList * Formatting [skip ci] Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
+9
-7
@@ -333,8 +333,8 @@ public:
|
||||
uint32 inventory_slot = 0xFFFFFFFF, int16 resist_adjust = 0, bool isproc = false, int level_override = -1);
|
||||
void SendBeginCast(uint16 spell_id, uint32 casttime);
|
||||
virtual bool SpellOnTarget(uint16 spell_id, Mob* spelltar, int reflect_effectiveness = 0,
|
||||
bool use_resist_adjust = false, int16 resist_adjust = 0, bool isproc = false, int level_override = -1);
|
||||
virtual bool SpellEffect(Mob* caster, uint16 spell_id, float partial = 100, int level_override = -1, int reflect_effectiveness = 0);
|
||||
bool use_resist_adjust = false, int16 resist_adjust = 0, bool isproc = false, int level_override = -1, int32 duration_override = 0);
|
||||
virtual bool SpellEffect(Mob* caster, uint16 spell_id, float partial = 100, int level_override = -1, int reflect_effectiveness = 0, int32 duration_override = 0);
|
||||
virtual bool DetermineSpellTargets(uint16 spell_id, Mob *&spell_target, Mob *&ae_center,
|
||||
CastAction_type &CastAction, EQ::spells::CastingSlot slot, bool isproc = false);
|
||||
virtual bool CheckFizzle(uint16 spell_id);
|
||||
@@ -407,7 +407,6 @@ public:
|
||||
inline void SetMGB(bool val) { has_MGB = val; }
|
||||
bool HasProjectIllusion() const { return has_ProjectIllusion ; }
|
||||
inline void SetProjectIllusion(bool val) { has_ProjectIllusion = val; }
|
||||
void SpreadVirus(uint16 spell_id, uint16 casterID);
|
||||
bool IsNimbusEffectActive(uint32 nimbus_effect);
|
||||
void SetNimbusEffect(uint32 nimbus_effect);
|
||||
inline virtual uint32 GetNimbusEffect1() const { return nimbus_effect1; }
|
||||
@@ -861,6 +860,9 @@ public:
|
||||
void FocusProcLimitProcess();
|
||||
bool ApplyFocusProcLimiter(int32 spell_id, int buffslot = -1);
|
||||
|
||||
void VirusEffectProcess();
|
||||
void SpreadVirusEffect(int32 spell_id, uint32 caster_id, int32 buff_tics_remaining);
|
||||
|
||||
void ModSkillDmgTaken(EQ::skills::SkillType skill_num, int value);
|
||||
int16 GetModSkillDmgTaken(const EQ::skills::SkillType skill_num);
|
||||
void ModVulnerability(uint8 resist, int16 value);
|
||||
@@ -929,6 +931,8 @@ public:
|
||||
bool HasPetAffinity() { if (aabonuses.GivePetGroupTarget || itembonuses.GivePetGroupTarget || spellbonuses.GivePetGroupTarget) return true; return false; }
|
||||
inline bool IsPetOwnerClient() const { return pet_owner_client; }
|
||||
inline void SetPetOwnerClient(bool value) { pet_owner_client = value; }
|
||||
inline bool IsPetOwnerNPC() const { return pet_owner_npc; }
|
||||
inline void SetPetOwnerNPC(bool value) { pet_owner_npc = value; }
|
||||
inline bool IsTempPet() const { return _IsTempPet; }
|
||||
inline void SetTempPet(bool value) { _IsTempPet = value; }
|
||||
inline bool IsHorse() { return is_horse; }
|
||||
@@ -1038,7 +1042,6 @@ public:
|
||||
inline const bool IsRoamer() const { return roamer; }
|
||||
inline const int GetWanderType() const { return wandertype; }
|
||||
inline const bool IsRooted() const { return rooted || permarooted; }
|
||||
inline const bool HasVirus() const { return has_virus; }
|
||||
int GetSnaredAmount();
|
||||
inline const bool IsPseudoRooted() const { return pseudo_rooted; }
|
||||
inline void SetPseudoRoot(bool prState) { pseudo_rooted = prState; }
|
||||
@@ -1122,7 +1125,7 @@ public:
|
||||
void SendItemAnimation(Mob *to, const EQ::ItemData *item, EQ::skills::SkillType skillInUse, float velocity = 4.0);
|
||||
inline int& GetNextIncHPEvent() { return nextinchpevent; }
|
||||
void SetNextIncHPEvent( int inchpevent );
|
||||
|
||||
|
||||
inline bool DivineAura() const { return spellbonuses.DivineAura; }
|
||||
inline bool Sanctuary() const { return spellbonuses.Sanctuary; }
|
||||
|
||||
@@ -1522,8 +1525,6 @@ protected:
|
||||
bool silenced;
|
||||
bool amnesiad;
|
||||
bool inWater; // Set to true or false by Water Detection code if enabled by rules
|
||||
bool has_virus; // whether this mob has a viral spell on them
|
||||
uint16 viral_spells[MAX_SPELL_TRIGGER*2]; // Stores the spell ids of the viruses on target and caster ids
|
||||
bool offhand;
|
||||
bool has_shieldequiped;
|
||||
bool has_twohandbluntequiped;
|
||||
@@ -1636,6 +1637,7 @@ protected:
|
||||
bool _IsTempPet;
|
||||
int16 count_TempPet;
|
||||
bool pet_owner_client; //Flags regular and pets as belonging to a client
|
||||
bool pet_owner_npc; //Flags regular and pets as belonging to a npc
|
||||
uint32 pet_targetlock_id;
|
||||
|
||||
glm::vec3 m_TargetRing;
|
||||
|
||||
Reference in New Issue
Block a user