Core/Units: Set UNIT_FLAG2_*_AOI dynamically according to the VisibilityDistanceType set on the creature

Port From (https://github.com/TrinityCore/TrinityCore/commit/4b06b8ec1e3ccc153a44b3eb2e8487641cfae98d)
This commit is contained in:
hondacrx
2022-10-01 17:00:55 -04:00
parent 5b41cb0646
commit e8ff7bfa67
2 changed files with 21 additions and 1 deletions
+1 -1
View File
@@ -131,7 +131,7 @@ namespace Framework.Constants
MirrorImage | ForceMovement | DisarmOffhand |
DisablePredStats | AllowChangingTalents | DisarmRanged |
/* UNIT_FLAG2_REGENERATE_POWER | */ RestrictPartyInteraction |
PreventSpellClick | InteractWhileHostile | /* UNIT_FLAG2_CANNOT_TURN | */
PreventSpellClick | InteractWhileHostile | /* Unk2 | */
/* UNIT_FLAG2_PLAY_DEATH_ANIM | */ AllowCheatSpells | SuppressHighlightWhenTargetedOrMousedOver |
TreatAsRaidUnitForHelpfulSpells | LargeAoi | GiganticAoi | NoActions |
AiWillOnlySwimIfTargetSwims | DontGenerateCombatLogWhenEngagedWithNpcs | AttackerIgnoresMinimumRanges |
@@ -977,6 +977,26 @@ namespace Game.Entities
if (GetTypeId() == TypeId.Player)
return;
Creature creature = ToCreature();
if (creature != null)
{
creature.RemoveUnitFlag2(UnitFlags2.LargeAoi | UnitFlags2.GiganticAoi | UnitFlags2.InfiniteAoi);
switch (type)
{
case VisibilityDistanceType.Large:
creature.SetUnitFlag2(UnitFlags2.LargeAoi);
break;
case VisibilityDistanceType.Gigantic:
creature.SetUnitFlag2(UnitFlags2.GiganticAoi);
break;
case VisibilityDistanceType.Infinite:
creature.SetUnitFlag2(UnitFlags2.InfiniteAoi);
break;
default:
break;
}
}
m_visibilityDistanceOverride = SharedConst.VisibilityDistances[(int)type];
}