TC Ports:
Core/Misc: 522f537048 followup (https://github.com/TrinityCore/TrinityCore/commit/9a57e95f102a9d35ac8416d02e24c0dddbc755ed) Core/CreatureAI: b6b0353bff followup (https://github.com/TrinityCore/TrinityCore/commit/5d411e0b21b1f1a4653d274d9b1cc7fef17f232b) Core/Spell: move creature focus (https://github.com/TrinityCore/TrinityCore/commit/8c12f36915b2fddd48a5e4c9244c2b0498a64ae9) Core/Unit: 2170541a51 followup (https://github.com/TrinityCore/TrinityCore/commit/2d4549023a6655d19671f7f7e6b4f7c9b71ae632) Core/Misc: cleanup SetInFront uses (https://github.com/TrinityCore/TrinityCore/commit/104e745edfb89f95e34cad7840eae0b6e183bf94) Core/Unit: 229444b74a follow-up (https://github.com/TrinityCore/TrinityCore/commit/6a96addadd5dea633b3066b8d0427302ba514364) Core/Unit: revert 3ea46e57af (https://github.com/TrinityCore/TrinityCore/commit/a46286a803b41b375ed9352858c742626bb85720) Core/Scripts: remove OnDummyEffect hook/sOnDummyEffect ai hook (https://github.com/TrinityCore/TrinityCore/commit/1929ca3aa14f6cd83ea3ac9d7e8c0e2ed0e87a26) Core/Entities: moved PetAura handling to Player where it belongs (https://github.com/TrinityCore/TrinityCore/commit/4f6d38fe9d5c07e6e8eb88e517af71b6cdc4f9f8) Core/Spells: Fixed Chilled to the Bone (https://github.com/TrinityCore/TrinityCore/commit/08635c740a7ee04da9b0cd5045075a9432121b06) Core/Spell: implement pvp trinket immunity against Judgement of Justice (https://github.com/TrinityCore/TrinityCore/commit/05ba662d5daaa3428cc01cdaa3794bf5a073ef17)
This commit is contained in:
@@ -184,7 +184,9 @@ namespace Game.Entities
|
||||
if (target && target == taunter)
|
||||
return;
|
||||
|
||||
SetInFront(taunter);
|
||||
if (!IsFocusing(null, true))
|
||||
SetInFront(taunter);
|
||||
|
||||
if (creature.IsAIEnabled)
|
||||
creature.GetAI().AttackStart(taunter);
|
||||
}
|
||||
@@ -219,7 +221,8 @@ namespace Game.Entities
|
||||
|
||||
if (target && target != taunter)
|
||||
{
|
||||
SetInFront(target);
|
||||
if (!IsFocusing(null, true))
|
||||
SetInFront(target);
|
||||
if (creature.IsAIEnabled)
|
||||
creature.GetAI().AttackStart(target);
|
||||
}
|
||||
@@ -597,7 +600,7 @@ namespace Game.Entities
|
||||
return;
|
||||
|
||||
if (IsTypeId(TypeId.Unit) && !HasUnitFlag(UnitFlags.PlayerControlled))
|
||||
SetFacingToObject(victim); // update client side facing to face the target (prevents visual glitches when casting untargeted spells)
|
||||
SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells)
|
||||
|
||||
// melee attack spell casted at main hand attack only - no normal melee dmg dealt
|
||||
if (attType == WeaponAttackType.BaseAttack && GetCurrentSpell(CurrentSpellTypes.Melee) != null && !extra)
|
||||
@@ -678,7 +681,7 @@ namespace Game.Entities
|
||||
return; // ignore ranged case
|
||||
|
||||
if (IsTypeId(TypeId.Unit) && !HasUnitFlag(UnitFlags.PlayerControlled))
|
||||
SetFacingToObject(victim); // update client side facing to face the target (prevents visual glitches when casting untargeted spells)
|
||||
SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells)
|
||||
|
||||
CalcDamageInfo damageInfo = new CalcDamageInfo();
|
||||
damageInfo.attacker = this;
|
||||
|
||||
@@ -92,7 +92,6 @@ namespace Game.Entities
|
||||
SpellHistory _spellHistory;
|
||||
|
||||
//Auras
|
||||
public List<PetAura> m_petAuras = new List<PetAura>();
|
||||
List<AuraEffect> AuraEffectList = new List<AuraEffect>();
|
||||
MultiMap<AuraType, AuraEffect> m_modAuras = new MultiMap<AuraType, AuraEffect>();
|
||||
List<Aura> m_removedAuras = new List<Aura>();
|
||||
|
||||
@@ -164,9 +164,10 @@ namespace Game.Entities
|
||||
Orientation = GetAngle(target.GetPosition());
|
||||
}
|
||||
|
||||
public void SetFacingTo(float ori, bool force = false)
|
||||
public void SetFacingTo(float ori, bool force = true)
|
||||
{
|
||||
if (!force && !IsStopped())
|
||||
// do not face when already moving
|
||||
if (!force && (!IsStopped() || !MoveSpline.Finalized()))
|
||||
return;
|
||||
|
||||
MoveSplineInit init = new MoveSplineInit(this);
|
||||
@@ -175,10 +176,10 @@ namespace Game.Entities
|
||||
init.Launch();
|
||||
}
|
||||
|
||||
public void SetFacingToObject(WorldObject obj, bool force = false)
|
||||
public void SetFacingToObject(WorldObject obj, bool force = true)
|
||||
{
|
||||
// do not face when already moving
|
||||
if (!force && !IsStopped())
|
||||
if (!force && (!IsStopped() || !MoveSpline.Finalized()))
|
||||
return;
|
||||
|
||||
// @todo figure out under what conditions creature will move towards object instead of facing it where it currently is.
|
||||
|
||||
@@ -26,28 +26,6 @@ namespace Game.Entities
|
||||
{
|
||||
public partial class Unit
|
||||
{
|
||||
public void AddPetAura(PetAura petSpell)
|
||||
{
|
||||
if (!IsTypeId(TypeId.Player))
|
||||
return;
|
||||
|
||||
m_petAuras.Add(petSpell);
|
||||
Pet pet = ToPlayer().GetPet();
|
||||
if (pet)
|
||||
pet.CastPetAura(petSpell);
|
||||
}
|
||||
|
||||
public void RemovePetAura(PetAura petSpell)
|
||||
{
|
||||
if (!IsTypeId(TypeId.Player))
|
||||
return;
|
||||
|
||||
m_petAuras.Remove(petSpell);
|
||||
Pet pet = ToPlayer().GetPet();
|
||||
if (pet)
|
||||
pet.RemoveAurasDueToSpell(petSpell.GetAura(pet.GetEntry()));
|
||||
}
|
||||
|
||||
public CharmInfo GetCharmInfo() { return m_charmInfo; }
|
||||
|
||||
public CharmInfo InitCharmInfo()
|
||||
|
||||
@@ -30,11 +30,6 @@ namespace Game.Entities
|
||||
{
|
||||
public virtual bool HasSpell(uint spellId) { return false; }
|
||||
|
||||
public virtual bool IsFocusing(Spell focusSpell = null, bool withDelay = false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void SetInstantCast(bool set) { _instantCast = set; }
|
||||
public bool CanInstantCast() { return _instantCast; }
|
||||
|
||||
@@ -1388,7 +1383,12 @@ namespace Game.Entities
|
||||
return 0;
|
||||
}
|
||||
|
||||
public bool IsMovementPreventedByCasting()
|
||||
public virtual bool IsFocusing(Spell focusSpell = null, bool withDelay = false) { return false; }
|
||||
|
||||
/// <summary>
|
||||
/// Check if our current channel spell has attribute SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING
|
||||
/// </summary>
|
||||
public virtual bool IsMovementPreventedByCasting()
|
||||
{
|
||||
// can always move when not casting
|
||||
if (!HasUnitState(UnitState.Casting))
|
||||
@@ -1401,9 +1401,6 @@ namespace Game.Entities
|
||||
if (spell.GetSpellInfo().IsMoveAllowedChannel())
|
||||
return false;
|
||||
|
||||
if (IsFocusing(null, true))
|
||||
return false;
|
||||
|
||||
// prohibit movement for all other spell casts
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user