Core/Objects: Added ToWorldObject and ToItem
Port From (https://github.com/TrinityCore/TrinityCore/commit/6f6af6a1a1508508d0e42b90f0acf4f363cf91bd)
This commit is contained in:
@@ -820,12 +820,8 @@ namespace Game.Entities
|
||||
{
|
||||
SpellInfo spellInfo = Global.SpellMgr.GetSpellInfo(quest.SourceSpellID, GetMap().GetDifficultyID());
|
||||
Unit caster = this;
|
||||
if (questGiver != null && questGiver.IsTypeMask(TypeMask.Unit) && !quest.HasFlag(QuestFlags.PlayerCastAccept) && !spellInfo.HasTargetType(Targets.UnitCaster) && !spellInfo.HasTargetType(Targets.DestCasterSummon))
|
||||
{
|
||||
Unit unit = questGiver.ToUnit();
|
||||
if (unit != null)
|
||||
caster = unit;
|
||||
}
|
||||
if (questGiver != null && questGiver.IsUnit() && !quest.HasFlag(QuestFlags.PlayerCastAccept) && !spellInfo.HasTargetType(Targets.UnitCaster) && !spellInfo.HasTargetType(Targets.DestCasterSummon))
|
||||
caster = questGiver.ToUnit();
|
||||
|
||||
caster.CastSpell(this, spellInfo.Id, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetCastDifficulty(spellInfo.Difficulty));
|
||||
}
|
||||
@@ -1169,12 +1165,8 @@ namespace Game.Entities
|
||||
{
|
||||
SpellInfo spellInfo = Global.SpellMgr.GetSpellInfo(quest.RewardSpell, GetMap().GetDifficultyID());
|
||||
Unit caster = this;
|
||||
if (questGiver != null && questGiver.IsTypeMask(TypeMask.Unit) && !quest.HasFlag(QuestFlags.PlayerCastComplete) && !spellInfo.HasTargetType(Targets.UnitCaster))
|
||||
{
|
||||
Unit unit = questGiver.ToUnit();
|
||||
if (unit != null)
|
||||
caster = unit;
|
||||
}
|
||||
if (questGiver != null && questGiver.IsUnit() && !quest.HasFlag(QuestFlags.PlayerCastComplete) && !spellInfo.HasTargetType(Targets.UnitCaster))
|
||||
caster = questGiver.ToUnit();
|
||||
|
||||
caster.CastSpell(this, spellInfo.Id, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetCastDifficulty(spellInfo.Difficulty));
|
||||
}
|
||||
@@ -1189,12 +1181,8 @@ namespace Game.Entities
|
||||
|
||||
SpellInfo spellInfo = Global.SpellMgr.GetSpellInfo(displaySpell.SpellId, GetMap().GetDifficultyID());
|
||||
Unit caster = this;
|
||||
if (questGiver != null && questGiver.IsTypeMask(TypeMask.Unit) && !quest.HasFlag(QuestFlags.PlayerCastComplete) && !spellInfo.HasTargetType(Targets.UnitCaster))
|
||||
{
|
||||
Unit unit = questGiver.ToUnit();
|
||||
if (unit != null)
|
||||
caster = unit;
|
||||
}
|
||||
if (questGiver != null && questGiver.IsUnit() && !quest.HasFlag(QuestFlags.PlayerCastComplete) && !spellInfo.HasTargetType(Targets.UnitCaster))
|
||||
caster = questGiver.ToUnit();
|
||||
|
||||
caster.CastSpell(this, spellInfo.Id, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetCastDifficulty(spellInfo.Difficulty));
|
||||
}
|
||||
@@ -1229,7 +1217,7 @@ namespace Game.Entities
|
||||
//lets remove flag for delayed teleports
|
||||
SetCanDelayTeleport(false);
|
||||
|
||||
if (questGiver != null && questGiver.IsTypeMask(TypeMask.Unit | TypeMask.GameObject))
|
||||
if (questGiver != null && questGiver.IsWorldObject())
|
||||
{
|
||||
//For AutoSubmition was added plr case there as it almost same exclute AI script cases.
|
||||
// Send next quest
|
||||
|
||||
@@ -875,15 +875,12 @@ namespace Game.Entities
|
||||
|
||||
public void StopCastingBindSight()
|
||||
{
|
||||
WorldObject target = GetViewpoint();
|
||||
Unit target = GetViewpoint()?.ToUnit();
|
||||
if (target != null)
|
||||
{
|
||||
if (target.IsTypeMask(TypeMask.Unit))
|
||||
{
|
||||
((Unit)target).RemoveAurasByType(AuraType.BindSight, GetGUID());
|
||||
((Unit)target).RemoveAurasByType(AuraType.ModPossess, GetGUID());
|
||||
((Unit)target).RemoveAurasByType(AuraType.ModPossessPet, GetGUID());
|
||||
}
|
||||
target.RemoveAurasByType(AuraType.BindSight, GetGUID());
|
||||
target.RemoveAurasByType(AuraType.ModPossess, GetGUID());
|
||||
target.RemoveAurasByType(AuraType.ModPossessPet, GetGUID());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6148,8 +6148,7 @@ namespace Game.Entities
|
||||
|
||||
// target aura duration for caster show only if target exist at caster client
|
||||
// send data at target visibility change (adding to client)
|
||||
if (target.IsTypeMask(TypeMask.Unit))
|
||||
SendInitialVisiblePackets(target.ToUnit());
|
||||
SendInitialVisiblePackets(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7438,8 +7437,9 @@ namespace Game.Entities
|
||||
// farsight dynobj or puppet may be very far away
|
||||
UpdateVisibilityOf(target);
|
||||
|
||||
if (target.IsTypeMask(TypeMask.Unit) && target != GetVehicleBase())
|
||||
target.ToUnit().AddPlayerToVision(this);
|
||||
Unit targetUnit = target.ToUnit();
|
||||
if (targetUnit != null && targetUnit != GetVehicleBase())
|
||||
targetUnit.AddPlayerToVision(this);
|
||||
SetSeer(target);
|
||||
}
|
||||
else
|
||||
@@ -7454,8 +7454,9 @@ namespace Game.Entities
|
||||
|
||||
SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.FarsightObject), ObjectGuid.Empty);
|
||||
|
||||
if (target.IsTypeMask(TypeMask.Unit) && target != GetVehicleBase())
|
||||
target.ToUnit().RemovePlayerFromVision(this);
|
||||
Unit targetUnit = target.ToUnit();
|
||||
if (targetUnit != null && targetUnit != GetVehicleBase())
|
||||
targetUnit.RemovePlayerFromVision(this);
|
||||
|
||||
//must immediately set seer back otherwise may crash
|
||||
SetSeer(this);
|
||||
|
||||
Reference in New Issue
Block a user