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:
1 parent
38b4485e09
commit
8204a3e93d
1 file changed
+23
-13
@@ -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
|
||||
|
||||
Reference in new issue
Block a user