aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp4
-rw-r--r--src/server/game/Spells/Spell.cpp7
-rw-r--r--src/server/game/Spells/SpellInfo.h2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.cpp19
4 files changed, 6 insertions, 26 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 609e0dfb606..9c0a9c42bfa 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -3189,7 +3189,7 @@ Aura* Unit::_TryStackingOrRefreshingExistingAura(AuraCreateInfo& createInfo)
if (createInfo.BaseAmount)
bp = *(createInfo.BaseAmount + spellEffectInfo.EffectIndex);
else
- bp = spellEffectInfo.BasePoints;
+ bp = int32(spellEffectInfo.BasePoints);
int32* oldBP = const_cast<int32*>(&(auraEff->m_baseAmount)); // todo 6.x review GetBaseAmount and GetCastItemGUID in this case
*oldBP = bp;
@@ -12173,7 +12173,7 @@ void Unit::HandleSpellClick(Unit* clicker, int8 seatId /*= -1*/)
{
int32 bp[MAX_SPELL_EFFECTS] = { };
for (SpellEffectInfo const& spellEffectInfo : spellEntry->GetEffects())
- bp[spellEffectInfo.EffectIndex] = spellEffectInfo.BasePoints;
+ bp[spellEffectInfo.EffectIndex] = int32(spellEffectInfo.BasePoints);
bp[i] = seatId;
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 700ac261294..c53dd7b644e 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -6560,8 +6560,7 @@ SpellCastResult Spell::CheckCast(bool strict, int32* param1 /*= nullptr*/, int32
if (!battlePetMgr->HasJournalLock())
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
- Creature* creature = m_targets.GetUnitTarget()->ToCreature();
- if (creature)
+ if (Creature* creature = m_targets.GetUnitTarget()->ToCreature())
{
if (playerCaster->GetSummonedBattlePetGUID().IsEmpty() || creature->GetBattlePetCompanionGUID().IsEmpty())
return SPELL_FAILED_NO_PET;
@@ -6579,7 +6578,7 @@ SpellCastResult Spell::CheckCast(bool strict, int32* param1 /*= nullptr*/, int32
if (spellEffectInfo.Effect == SPELL_EFFECT_CHANGE_BATTLEPET_QUALITY)
{
- auto qualityItr = std::lower_bound(sBattlePetBreedQualityStore.begin(), sBattlePetBreedQualityStore.end(), spellEffectInfo.BasePoints, [](BattlePetBreedQualityEntry const* a1, int32 selector)
+ auto qualityItr = std::lower_bound(sBattlePetBreedQualityStore.begin(), sBattlePetBreedQualityStore.end(), spellEffectInfo.CalcBaseValue(m_caster, creature, m_castItemEntry, m_castItemLevel), [](BattlePetBreedQualityEntry const* a1, int32 selector)
{
return a1->MaxQualityRoll < selector;
});
@@ -7104,7 +7103,7 @@ bool Spell::CanAutoCast(Unit* target)
break;
case SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT: // this one has further checks, but i don't think they're necessary for autocast logic
case SPELL_GROUP_STACK_RULE_EXCLUSIVE_HIGHEST:
- if (abs(spellEffectInfo.BasePoints) <= abs((*auraIt)->GetAmount()))
+ if (abs(spellEffectInfo.CalcBaseValue(m_caster, target, 0, -1)) <= abs((*auraIt)->GetAmount()))
return false;
break;
case SPELL_GROUP_STACK_RULE_DEFAULT:
diff --git a/src/server/game/Spells/SpellInfo.h b/src/server/game/Spells/SpellInfo.h
index e13add0b0e4..de758946dd7 100644
--- a/src/server/game/Spells/SpellInfo.h
+++ b/src/server/game/Spells/SpellInfo.h
@@ -218,7 +218,7 @@ public:
SpellEffectName Effect;
AuraType ApplyAuraName;
uint32 ApplyAuraPeriod;
- int32 BasePoints;
+ float BasePoints;
float RealPointsPerLevel;
float PointsPerResource;
float Amplitude;
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.cpp
index e6527f59799..c6ab0f90be3 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.cpp
@@ -38,24 +38,6 @@ class spell_ahnkahet_combined_toxins : public AuraScript
}
};
-// 56698, 59102 - Shadow Blast
-class spell_ahnkahet_shadow_blast : public SpellScript
-{
- void HandleDamageCalc(SpellEffIndex /*effIndex*/)
- {
- Unit* target = GetHitUnit();
- if (!target)
- return;
-
- SetHitDamage(target->GetMaxHealth() * GetEffectInfo().BasePoints / 100);
- }
-
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_ahnkahet_shadow_blast::HandleDamageCalc, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
- }
-};
-
enum ShadowSickle
{
SPELL_SHADOW_SICKLE_TRIGGERED = 56701,
@@ -130,7 +112,6 @@ class spell_ahnkahet_yogg_saron_whisper : public SpellScript
void AddSC_ahnkahet()
{
RegisterSpellScript(spell_ahnkahet_combined_toxins);
- RegisterSpellScript(spell_ahnkahet_shadow_blast);
RegisterSpellScript(spell_ahnkahet_shadow_sickle);
RegisterSpellScript(spell_ahnkahet_yogg_saron_whisper);
}