Combat/Threat rewrite - prep & refactor

Port From (https://github.com/TrinityCore/TrinityCore/commit/8be23fcbbdf26e8169defd761e61765f301bebe0)
This commit is contained in:
hondacrx
2020-08-22 11:58:19 -04:00
parent 67bacbb731
commit 193ad3a48d
42 changed files with 533 additions and 421 deletions
@@ -102,7 +102,7 @@ namespace Scripts.EasternKingdoms.Karazhan.Curator
switch (eventId)
{
case EventIds.HatefulBolt:
Unit target = SelectTarget(SelectAggroTarget.TopAggro, 1);
Unit target = SelectTarget(SelectAggroTarget.MaxThreat, 1);
if (target != null)
DoCast(target, SpellIds.HatefulBolt);
_events.Repeat(TimeSpan.FromSeconds(7), TimeSpan.FromSeconds(15));
@@ -278,16 +278,9 @@ namespace Scripts.EasternKingdoms.Karazhan.Moroes
if (Blind_Timer <= diff)
{
List<Unit> targets = SelectTargetList(5, SelectAggroTarget.Random, me.GetCombatReach() * 5, true);
foreach (var i in targets)
{
if (!me.IsWithinMeleeRange(i))
{
DoCast(i, SpellIds.Blind);
break;
}
}
Unit target = SelectTarget(SelectAggroTarget.MinDistance, 0, 0.0f, true, false);
if (target != null)
DoCast(target, SpellIds.Blind);
Blind_Timer = 40000;
}
else
@@ -765,11 +765,11 @@ namespace Scripts.EasternKingdoms.Karazhan.OperaEvent
{
Talk(RedRidingHood.SayWolfHood);
DoCast(target, RedRidingHood.SpellLittleRedRidingHood, true);
TempThreat = DoGetThreat(target);
TempThreat = GetThreat(target);
if (TempThreat != 0.0f)
DoModifyThreatPercent(target, -100);
ModifyThreatByPercent(target, -100);
HoodGUID = target.GetGUID();
me.AddThreat(target, 1000000.0f);
AddThreat(target, 1000000.0f);
ChaseTimer = 20000;
IsChasing = true;
}
@@ -781,9 +781,9 @@ namespace Scripts.EasternKingdoms.Karazhan.OperaEvent
if (target)
{
HoodGUID.Clear();
if (DoGetThreat(target) != 0f)
DoModifyThreatPercent(target, -100);
me.AddThreat(target, TempThreat);
if (GetThreat(target) != 0f)
ModifyThreatByPercent(target, -100);
AddThreat(target, TempThreat);
TempThreat = 0;
}
@@ -1023,7 +1023,7 @@ namespace Scripts.EasternKingdoms.Karazhan.OperaEvent
Romulo.GetMotionMaster().Clear();
Romulo.SetDeathState(DeathState.JustDied);
Romulo.CombatStop(true);
Romulo.DeleteThreatList();
Romulo.GetThreatManager().ClearAllThreat();
Romulo.SetDynamicFlags(UnitDynFlags.Lootable);
}
@@ -1261,7 +1261,7 @@ namespace Scripts.EasternKingdoms.Karazhan.OperaEvent
Julianne.GetMotionMaster().Clear();
Julianne.SetDeathState(DeathState.JustDied);
Julianne.CombatStop(true);
Julianne.DeleteThreatList();
Julianne.GetThreatManager().ClearAllThreat();
Julianne.SetDynamicFlags(UnitDynFlags.Lootable);
}
return;
@@ -1290,7 +1290,7 @@ namespace Scripts.EasternKingdoms.Karazhan.OperaEvent
Creature Julianne = (ObjectAccessor.GetCreature(me, JulianneGUID));
if (Julianne && Julianne.GetVictim())
{
me.AddThreat(Julianne.GetVictim(), 1.0f);
AddThreat(Julianne.GetVictim(), 1.0f);
AttackStart(Julianne.GetVictim());
}
}