From de44d88f7ed98ba2dbd54e7e1aea8adc2796cf64 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Tue, 19 May 2020 13:59:04 -0400 Subject: [PATCH] Core/AI: added a function to allow 0 damage attacks (sparring) depending on target Port From (https://github.com/TrinityCore/TrinityCore/commit/bb3f2a11cfa909a0b40450050f33a3893f6bb061) --- Source/Game/AI/CoreAI/UnitAI.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Source/Game/AI/CoreAI/UnitAI.cs b/Source/Game/AI/CoreAI/UnitAI.cs index faeb04ede..cfd49fa9e 100644 --- a/Source/Game/AI/CoreAI/UnitAI.cs +++ b/Source/Game/AI/CoreAI/UnitAI.cs @@ -75,13 +75,21 @@ namespace Game.AI //Make sure our attack is ready and we aren't currently casting before checking distance if (me.IsAttackReady()) { - me.AttackerStateUpdate(victim); + if (ShouldSparWith(victim)) + me.FakeAttackerStateUpdate(victim); + else + me.AttackerStateUpdate(victim); + me.ResetAttackTimer(); } if (me.HaveOffhandWeapon() && me.IsAttackReady(WeaponAttackType.OffAttack)) { - me.AttackerStateUpdate(victim, WeaponAttackType.OffAttack); + if (ShouldSparWith(victim)) + me.FakeAttackerStateUpdate(victim, WeaponAttackType.OffAttack); + else + me.AttackerStateUpdate(victim, WeaponAttackType.OffAttack); + me.ResetAttackTimer(WeaponAttackType.OffAttack); } } @@ -356,6 +364,8 @@ namespace Game.AI public virtual void OnCharmed(bool apply) { } + public virtual bool ShouldSparWith(Unit target) { return false; } + public virtual void DoAction(int action) { } public virtual uint GetData(uint id = 0) { return 0; } public virtual void SetData(uint id, uint value) { }