mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 10:05:32 +01:00
Core/Spells: Refactor CastSpellExtraArgs
* Allow C++20 designated initializers * Allow precise float values for SPELLVALUE_RADIUS_MOD, SPELLVALUE_CRIT_CHANCE and SPELLVALUE_DURATION_PCT
This commit is contained in:
@@ -555,7 +555,7 @@ public:
|
||||
{
|
||||
void SetRadiusMod()
|
||||
{
|
||||
GetSpell()->SetSpellValue(SPELLVALUE_RADIUS_MOD, int32(GetCaster()->GetObjectScale() * 10000 * 2 / 3));
|
||||
GetSpell()->SetSpellValue(SPELLVALUE_RADIUS_MOD, GetCaster()->GetObjectScale() * 2 / 3);
|
||||
}
|
||||
|
||||
void FilterTargets(std::list<WorldObject*>& unitList)
|
||||
@@ -626,7 +626,7 @@ public:
|
||||
{
|
||||
void SetRadiusMod()
|
||||
{
|
||||
GetSpell()->SetSpellValue(SPELLVALUE_RADIUS_MOD, int32(GetCaster()->GetObjectScale() * 10000 * 2 / 3));
|
||||
GetSpell()->SetSpellValue(SPELLVALUE_RADIUS_MOD, GetCaster()->GetObjectScale() * 2 / 3);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
@@ -1506,7 +1506,7 @@ class spell_halion_combustion_consumption_periodic : public SpellScriptLoader
|
||||
return;
|
||||
|
||||
uint32 triggerSpell = aurEff->GetSpellEffectInfo().TriggerSpell;
|
||||
int32 radius = caster->GetObjectScale() * M_PI * 10000 / 3;
|
||||
float radius = caster->GetObjectScale() * M_PI / 3;
|
||||
|
||||
CastSpellExtraArgs args(aurEff);
|
||||
args.OriginalCaster = caster->GetGUID();
|
||||
|
||||
@@ -1208,7 +1208,7 @@ class spell_jormungars_slime_pool : public AuraScript
|
||||
{
|
||||
PreventDefaultAction();
|
||||
|
||||
int32 const radius = static_cast<int32>(((aurEff->GetTickNumber() / 60.f) * 0.9f + 0.1f) * 10000.f * 2.f / 3.f);
|
||||
float const radius = ((aurEff->GetTickNumber() / 60.f) * 0.9f + 0.1f) * 2.f / 3.f;
|
||||
CastSpellExtraArgs args(aurEff);
|
||||
args.AddSpellMod(SPELLVALUE_RADIUS_MOD, radius);
|
||||
GetTarget()->CastSpell(nullptr, aurEff->GetSpellEffectInfo().TriggerSpell, args);
|
||||
|
||||
@@ -226,7 +226,7 @@ class spell_grobbulus_poison_cloud : public AuraScript
|
||||
return;
|
||||
|
||||
uint32 triggerSpell = aurEff->GetSpellEffectInfo().TriggerSpell;
|
||||
int32 mod = int32(((float(aurEff->GetTickNumber()) / aurEff->GetTotalTicks()) * 0.9f + 0.1f) * 10000 * 2 / 3);
|
||||
float mod = ((float(aurEff->GetTickNumber()) / aurEff->GetTotalTicks()) * 0.9f + 0.1f) * 2 / 3;
|
||||
|
||||
CastSpellExtraArgs args(aurEff);
|
||||
args.AddSpellMod(SPELLVALUE_RADIUS_MOD, mod);
|
||||
|
||||
@@ -292,7 +292,7 @@ class spell_broggok_poison_cloud : public SpellScriptLoader
|
||||
return;
|
||||
|
||||
uint32 triggerSpell = aurEff->GetSpellEffectInfo().TriggerSpell;
|
||||
int32 mod = int32(((float(aurEff->GetTickNumber()) / aurEff->GetTotalTicks()) * 0.9f + 0.1f) * 10000 * 2 / 3);
|
||||
float mod = ((float(aurEff->GetTickNumber()) / aurEff->GetTotalTicks()) * 0.9f + 0.1f) * 10000 * 2 / 3;
|
||||
GetTarget()->CastSpell(nullptr, triggerSpell, CastSpellExtraArgs(aurEff).AddSpellMod(SPELLVALUE_RADIUS_MOD, mod));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user