Core/Spells: Bandit's Guile will now require a certain amount of successful procs before gaining the Insight buffs

closes #221
This commit is contained in:
Ovahlord committed 2021-01-18 19:01:48 +01:00
1 parent 38b4485e09
commit 8204a3e93d
1 file changed
+23 -13
+23 -13
View File
@@ -1405,9 +1405,6 @@ class spell_rog_bandits_guile : public AuraScript
bool CheckProc(ProcEventInfo& eventInfo)
{
if (GetTarget()->HasAura(SPELL_ROGUE_DEEP_INSIGHT, GetTarget()->GetGUID()))
return false;
return eventInfo.GetProcTarget();
}
@@ -1419,6 +1416,9 @@ class spell_rog_bandits_guile : public AuraScript
uint32 spellId = SPELL_ROGUE_SHALLOW_INSIGHT;
int32 basepoints = 10;
// Todo: validate this for lower ranks. 3/3 requires 4 hits.
uint8 neededProcs = uint8(7 - GetSpellInfo()->GetRank());
// We are striking a new opponent, reset progress
if (_recentTargetGUID != procTarget->GetGUID())
{
@@ -1426,24 +1426,33 @@ class spell_rog_bandits_guile : public AuraScript
target->RemoveAurasDueToSpell(SPELL_ROGUE_MODERATE_INSIGHT, target->GetGUID());
target->RemoveAurasDueToSpell(SPELL_ROGUE_DEEP_INSIGHT, target->GetGUID());
_recentTargetGUID = procTarget->GetGUID();
_procStrikes = 0;
}
_procStrikes = std::min<uint8>(_procStrikes + 1, neededProcs * 3);
if (_procStrikes < neededProcs)
return;
// We are increasing our insight on the opponent
if (target->HasAura(SPELL_ROGUE_SHALLOW_INSIGHT, target->GetGUID()))
if (_procStrikes >= neededProcs * 3)
{
target->RemoveAurasDueToSpell(SPELL_ROGUE_SHALLOW_INSIGHT, target->GetGUID());
spellId = SPELL_ROGUE_MODERATE_INSIGHT;
basepoints = 20;
}
else if (target->HasAura(SPELL_ROGUE_MODERATE_INSIGHT, target->GetGUID()))
{
target->RemoveAurasDueToSpell(SPELL_ROGUE_MODERATE_INSIGHT, target->GetGUID());
spellId = SPELL_ROGUE_DEEP_INSIGHT;
basepoints = 30;
}
else if (_procStrikes >= neededProcs * 2)
{
spellId = SPELL_ROGUE_MODERATE_INSIGHT;
basepoints = 20;
}
target->CastSpell(target, spellId, true);
target->CastSpell(procTarget, SPELL_ROGUE_BANDITS_GUILE, CastSpellExtraArgs(true).AddSpellBP0(basepoints).AddSpellMod(SPELLVALUE_BASE_POINT1, basepoints));
if (_procStrikes >= neededProcs * 3 && target->HasAura(SPELL_ROGUE_MODERATE_INSIGHT, target->GetGUID()))
target->RemoveAurasDueToSpell(SPELL_ROGUE_MODERATE_INSIGHT, target->GetGUID());
else if (_procStrikes >= neededProcs * 2 && target->HasAura(SPELL_ROGUE_SHALLOW_INSIGHT, target->GetGUID()))
target->RemoveAurasDueToSpell(SPELL_ROGUE_SHALLOW_INSIGHT, target->GetGUID());
target->CastSpell(target, spellId);
target->CastSpell(procTarget, SPELL_ROGUE_BANDITS_GUILE, CastSpellExtraArgs().AddSpellBP0(basepoints).AddSpellMod(SPELLVALUE_BASE_POINT1, basepoints));
}
void Register() override
@@ -1453,6 +1462,7 @@ class spell_rog_bandits_guile : public AuraScript
}
private:
ObjectGuid _recentTargetGUID;
uint8 _procStrikes = 0;
};
// 14181 - Relentless Strikes