Core/Movement: remove redundant method MovementGenerator::NotifyAIOnFinalize and use existing Finalize - MovementInform implementation
Port From (https://github.com/TrinityCore/TrinityCore/commit/0e0deaefd4e84c8069f6249778774f605fc5e628)
This commit is contained in:
@@ -118,7 +118,7 @@ namespace Game.AI
|
||||
me.SetControlled(true, UnitState.Fleeing);
|
||||
}
|
||||
|
||||
public override void OnMovementGeneratorFinalized(MovementGeneratorType type)
|
||||
public override void MovementInform(MovementGeneratorType type, uint id)
|
||||
{
|
||||
if (type == MovementGeneratorType.TimedFleeing)
|
||||
EnterEvadeMode(EvadeReason.Other);
|
||||
|
||||
@@ -498,8 +498,6 @@ namespace Game.AI
|
||||
/// </summary>
|
||||
public virtual void OnGameEvent(bool start, ushort eventId) { }
|
||||
|
||||
public virtual void OnMovementGeneratorFinalized(MovementGeneratorType type) { }
|
||||
|
||||
public virtual string GetDebugInfo()
|
||||
{
|
||||
return $"Me: {(me != null ? me.GetDebugInfo() : "NULL")}";
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
|
||||
using Framework.Constants;
|
||||
using Game.AI;
|
||||
using Game.Entities;
|
||||
using System;
|
||||
|
||||
@@ -208,9 +209,9 @@ namespace Game.Movement
|
||||
TimeTracker _timer;
|
||||
}
|
||||
|
||||
public class TimedFleeingGenerator : FleeingMovementGenerator<Creature>
|
||||
public class TimedFleeingMovementGenerator : FleeingMovementGenerator<Creature>
|
||||
{
|
||||
public TimedFleeingGenerator(ObjectGuid fright, uint time) : base(fright)
|
||||
public TimedFleeingMovementGenerator(ObjectGuid fright, uint time) : base(fright)
|
||||
{
|
||||
_totalFleeTime = new TimeTracker(time);
|
||||
}
|
||||
@@ -243,6 +244,14 @@ namespace Game.Movement
|
||||
owner.ToCreature().GetAI().AttackStart(victim);
|
||||
}
|
||||
}
|
||||
|
||||
if (movementInform)
|
||||
{
|
||||
Creature ownerCreature = owner.ToCreature();
|
||||
CreatureAI ai = ownerCreature != null ? ownerCreature.GetAI() : null;
|
||||
if (ai != null)
|
||||
ai.MovementInform(MovementGeneratorType.TimedFleeing, 0);
|
||||
}
|
||||
}
|
||||
|
||||
public override MovementGeneratorType GetMovementGeneratorType()
|
||||
|
||||
@@ -61,12 +61,6 @@ namespace Game.Movement
|
||||
return false;
|
||||
}
|
||||
|
||||
public void NotifyAIOnFinalize(Unit obj)
|
||||
{
|
||||
UnitAI ai = obj.GetAI();
|
||||
ai?.OnMovementGeneratorFinalized(GetMovementGeneratorType());
|
||||
}
|
||||
|
||||
public void AddFlag(MovementGeneratorFlags flag) { Flags |= flag; }
|
||||
public bool HasFlag(MovementGeneratorFlags flag) { return (Flags & flag) != 0; }
|
||||
public void RemoveFlag(MovementGeneratorFlags flag) { Flags &= ~flag; }
|
||||
|
||||
@@ -580,7 +580,7 @@ namespace Game.Movement
|
||||
if (_owner.IsCreature())
|
||||
{
|
||||
if (time != 0)
|
||||
Add(new TimedFleeingGenerator(enemy.GetGUID(), time));
|
||||
Add(new TimedFleeingMovementGenerator(enemy.GetGUID(), time));
|
||||
else
|
||||
Add(new FleeingMovementGenerator<Creature>(enemy.GetGUID()));
|
||||
}
|
||||
@@ -1119,10 +1119,7 @@ namespace Game.Movement
|
||||
{
|
||||
case MovementSlot.Default:
|
||||
if (_defaultGenerator != null)
|
||||
{
|
||||
_defaultGenerator.Finalize(_owner, _generators.Empty(), false);
|
||||
_defaultGenerator.NotifyAIOnFinalize(_owner);
|
||||
}
|
||||
|
||||
_defaultGenerator = movement;
|
||||
if (IsStatic(movement))
|
||||
@@ -1160,14 +1157,12 @@ namespace Game.Movement
|
||||
void Delete(MovementGenerator movement, bool active, bool movementInform)
|
||||
{
|
||||
movement.Finalize(_owner, active, movementInform);
|
||||
movement.NotifyAIOnFinalize(_owner);
|
||||
ClearBaseUnitState(movement);
|
||||
}
|
||||
|
||||
void DeleteDefault(bool active, bool movementInform)
|
||||
{
|
||||
_defaultGenerator.Finalize(_owner, active, movementInform);
|
||||
_defaultGenerator.NotifyAIOnFinalize(_owner);
|
||||
_defaultGenerator = GetIdleMovementGenerator();
|
||||
AddFlag(MotionMasterFlags.StaticInitializationPending);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user