mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Spells: Added custom spell cast arg
This commit is contained in:
@@ -2829,6 +2829,8 @@ SpellCastResult WorldObject::CastSpell(CastSpellTargetArg const& targets, uint32
|
||||
spell->m_CastItem = triggeringAuraCaster->GetItemByGuid(args.TriggeringAura->GetBase()->GetCastItemGUID());
|
||||
}
|
||||
|
||||
spell->m_customArg = args.CustomArg;
|
||||
|
||||
return spell->prepare(*targets.Targets, args.TriggeringAura);
|
||||
}
|
||||
|
||||
|
||||
@@ -576,6 +576,7 @@ class TC_GAME_API Spell
|
||||
uint32 Data[2];
|
||||
} Raw;
|
||||
} m_misc;
|
||||
std::any m_customArg;
|
||||
SpellCastVisual m_SpellVisual;
|
||||
SpellCastTargets m_targets;
|
||||
int8 m_comboPointGain;
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "ObjectGuid.h"
|
||||
#include "Optional.h"
|
||||
#include "Position.h"
|
||||
#include <any>
|
||||
#include <vector>
|
||||
|
||||
class AuraEffect;
|
||||
@@ -451,6 +452,7 @@ struct TC_GAME_API CastSpellExtraArgs
|
||||
CastSpellExtraArgs& SetOriginalCastId(ObjectGuid const& castId) { OriginalCastId = castId; return *this; }
|
||||
CastSpellExtraArgs& AddSpellMod(SpellValueMod mod, int32 val) { SpellValueOverrides.AddMod(mod, val); return *this; }
|
||||
CastSpellExtraArgs& AddSpellBP0(int32 val) { return AddSpellMod(SPELLVALUE_BASE_POINT0, val); } // because i don't want to type SPELLVALUE_BASE_POINT0 300 times
|
||||
CastSpellExtraArgs& SetCustomArg(std::any customArg) { CustomArg = std::move(customArg); return *this; }
|
||||
|
||||
TriggerCastFlags TriggerFlags = TRIGGERED_NONE;
|
||||
Item* CastItem = nullptr;
|
||||
@@ -473,6 +475,7 @@ struct TC_GAME_API CastSpellExtraArgs
|
||||
|
||||
std::vector<std::pair<SpellValueMod, int32>> data;
|
||||
} SpellValueOverrides;
|
||||
std::any CustomArg;
|
||||
|
||||
CastSpellExtraArgs(CastSpellExtraArgs const&) = delete;
|
||||
CastSpellExtraArgs(CastSpellExtraArgs&&) = delete;
|
||||
|
||||
Reference in New Issue
Block a user