Added some implicit operators to spell casting.
This commit is contained in:
@@ -207,7 +207,7 @@ namespace Framework.Constants
|
|||||||
public const int MaxActivePets = 5;
|
public const int MaxActivePets = 5;
|
||||||
public const int MaxPetStables = 200;
|
public const int MaxPetStables = 200;
|
||||||
public const uint CallPetSpellId = 883;
|
public const uint CallPetSpellId = 883;
|
||||||
public const uint PetSummoningDisorientation = 32752;
|
public const uint SpellPetSummoningDisorientation = 32752;
|
||||||
public const float PetFollowDist = 1.0f;
|
public const float PetFollowDist = 1.0f;
|
||||||
public const float PetFollowAngle = MathF.PI;
|
public const float PetFollowAngle = MathF.PI;
|
||||||
public const int MaxSpellCharm = 4;
|
public const int MaxSpellCharm = 4;
|
||||||
|
|||||||
@@ -2423,25 +2423,9 @@ namespace Game.Entities
|
|||||||
return my_faction.IsNeutralToAll();
|
return my_faction.IsNeutralToAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SpellCastResult CastSpell(WorldObject target, uint spellId, bool triggered = false)
|
public SpellCastResult CastSpell(CastSpellTargetArg targets, uint spellId)
|
||||||
{
|
{
|
||||||
CastSpellExtraArgs args = new(triggered);
|
return CastSpell(targets, spellId, new CastSpellExtraArgs());
|
||||||
return CastSpell(target, spellId, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SpellCastResult CastSpell(SpellCastTargets targets, uint spellId, CastSpellExtraArgs args)
|
|
||||||
{
|
|
||||||
return CastSpell(new CastSpellTargetArg(targets), spellId, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SpellCastResult CastSpell(WorldObject target, uint spellId, CastSpellExtraArgs args)
|
|
||||||
{
|
|
||||||
return CastSpell(new CastSpellTargetArg(target), spellId, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SpellCastResult CastSpell(Position dest, uint spellId, CastSpellExtraArgs args)
|
|
||||||
{
|
|
||||||
return CastSpell(new CastSpellTargetArg(dest), spellId, args);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SpellCastResult CastSpell(CastSpellTargetArg targets, uint spellId, CastSpellExtraArgs args)
|
public SpellCastResult CastSpell(CastSpellTargetArg targets, uint spellId, CastSpellExtraArgs args)
|
||||||
@@ -3366,7 +3350,8 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
return obj1 && obj2 && IsInBetween(obj1.GetPosition(), obj2.GetPosition(), size);
|
return obj1 && obj2 && IsInBetween(obj1.GetPosition(), obj2.GetPosition(), size);
|
||||||
}
|
}
|
||||||
bool IsInBetween(Position pos1, Position pos2, float size)
|
|
||||||
|
public bool IsInBetween(Position pos1, Position pos2, float size)
|
||||||
{
|
{
|
||||||
float dist = GetExactDist2d(pos1);
|
float dist = GetExactDist2d(pos1);
|
||||||
|
|
||||||
|
|||||||
@@ -1131,7 +1131,7 @@ namespace Game.Entities
|
|||||||
SetUpdateFieldStatValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.MaxDamage), maxdamage);
|
SetUpdateFieldStatValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.MaxDamage), maxdamage);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetBonusDamage(int damage)
|
public void SetBonusDamage(int damage)
|
||||||
{
|
{
|
||||||
m_bonusSpellDamage = damage;
|
m_bonusSpellDamage = damage;
|
||||||
Player playerOwner = GetOwner().ToPlayer();
|
Player playerOwner = GetOwner().ToPlayer();
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace Game.Entities
|
|||||||
protected float[][] m_weaponDamage = new float[(int)WeaponAttackType.Max][];
|
protected float[][] m_weaponDamage = new float[(int)WeaponAttackType.Max][];
|
||||||
|
|
||||||
uint[] m_baseAttackSpeed = new uint[(int)WeaponAttackType.Max];
|
uint[] m_baseAttackSpeed = new uint[(int)WeaponAttackType.Max];
|
||||||
internal float[] m_modAttackSpeedPct = new float[(int)WeaponAttackType.Max];
|
public float[] m_modAttackSpeedPct = new float[(int)WeaponAttackType.Max];
|
||||||
protected uint[] m_attackTimer = new uint[(int)WeaponAttackType.Max];
|
protected uint[] m_attackTimer = new uint[(int)WeaponAttackType.Max];
|
||||||
bool _isCombatDisallowed;
|
bool _isCombatDisallowed;
|
||||||
|
|
||||||
|
|||||||
@@ -2823,7 +2823,7 @@ namespace Game.Entities
|
|||||||
return aurApp?.GetBase();
|
return aurApp?.GetBase();
|
||||||
}
|
}
|
||||||
|
|
||||||
AuraApplication GetAuraApplicationOfRankedSpell(uint spellId, ObjectGuid casterGUID = default, ObjectGuid itemCasterGUID = default, uint reqEffMask = 0, AuraApplication except = null)
|
public AuraApplication GetAuraApplicationOfRankedSpell(uint spellId, ObjectGuid casterGUID = default, ObjectGuid itemCasterGUID = default, uint reqEffMask = 0, AuraApplication except = null)
|
||||||
{
|
{
|
||||||
uint rankSpell = Global.SpellMgr.GetFirstSpellInChain(spellId);
|
uint rankSpell = Global.SpellMgr.GetFirstSpellInChain(spellId);
|
||||||
while (rankSpell != 0)
|
while (rankSpell != 0)
|
||||||
|
|||||||
@@ -5366,7 +5366,7 @@ namespace Game.Spells
|
|||||||
Pet pet = unitCaster.ToPlayer().GetPet();
|
Pet pet = unitCaster.ToPlayer().GetPet();
|
||||||
if (pet != null)
|
if (pet != null)
|
||||||
{
|
{
|
||||||
pet.CastSpell(pet, SharedConst.PetSummoningDisorientation, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
pet.CastSpell(pet, SharedConst.SpellPetSummoningDisorientation, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
||||||
.SetOriginalCaster(pet.GetGUID())
|
.SetOriginalCaster(pet.GetGUID())
|
||||||
.SetTriggeringSpell(this));
|
.SetTriggeringSpell(this));
|
||||||
}
|
}
|
||||||
@@ -9339,6 +9339,31 @@ namespace Game.Spells
|
|||||||
Targets = new();
|
Targets = new();
|
||||||
Targets = targets;
|
Targets = targets;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static implicit operator CastSpellTargetArg(WorldObject target)
|
||||||
|
{
|
||||||
|
return new CastSpellTargetArg(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static implicit operator CastSpellTargetArg(Item itemTarget)
|
||||||
|
{
|
||||||
|
return new CastSpellTargetArg(itemTarget);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static implicit operator CastSpellTargetArg(Position dest)
|
||||||
|
{
|
||||||
|
return new CastSpellTargetArg(dest);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static implicit operator CastSpellTargetArg(SpellDestination dest)
|
||||||
|
{
|
||||||
|
return new CastSpellTargetArg(dest);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static implicit operator CastSpellTargetArg(SpellCastTargets targets)
|
||||||
|
{
|
||||||
|
return new CastSpellTargetArg(targets);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CastSpellExtraArgs
|
public class CastSpellExtraArgs
|
||||||
@@ -9455,6 +9480,18 @@ namespace Game.Spells
|
|||||||
CustomArg = customArg;
|
CustomArg = customArg;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static implicit operator CastSpellExtraArgs(bool triggered) => new CastSpellExtraArgs(triggered);
|
||||||
|
|
||||||
|
public static implicit operator CastSpellExtraArgs(TriggerCastFlags trigger) => new CastSpellExtraArgs(trigger);
|
||||||
|
|
||||||
|
public static implicit operator CastSpellExtraArgs(Item item) => new CastSpellExtraArgs(item);
|
||||||
|
|
||||||
|
public static implicit operator CastSpellExtraArgs(Spell triggeringSpell) => new CastSpellExtraArgs(triggeringSpell);
|
||||||
|
|
||||||
|
public static implicit operator CastSpellExtraArgs(AuraEffect eff) => new CastSpellExtraArgs(eff);
|
||||||
|
|
||||||
|
public static implicit operator CastSpellExtraArgs(Difficulty castDifficulty) => new CastSpellExtraArgs(castDifficulty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SpellLogEffect
|
public class SpellLogEffect
|
||||||
|
|||||||
Reference in New Issue
Block a user