Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
98
Scripts/Spells/Gargoyle/SpellDefinitions/FlySpell.cs
Normal file
98
Scripts/Spells/Gargoyle/SpellDefinitions/FlySpell.cs
Normal file
@@ -0,0 +1,98 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Spells
|
||||
{
|
||||
public class FlySpell : Spell
|
||||
{
|
||||
private static readonly SpellInfo m_Info = new SpellInfo("Gargoyle Flight", null, -1, 9002);
|
||||
|
||||
public FlySpell(Mobile caster)
|
||||
: base(caster, null, m_Info)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool ClearHandsOnCast { get { return false; } }
|
||||
public override bool RevealOnCast { get { return false; } }
|
||||
public override double CastDelayFastScalar { get { return 0; } }
|
||||
public override TimeSpan CastDelayBase { get { return TimeSpan.FromSeconds(2.0); } }
|
||||
public override TimeSpan GetCastRecovery() { return TimeSpan.Zero; }
|
||||
public override int GetMana() { return 0; }
|
||||
public override bool ConsumeReagents() { return true; }
|
||||
public override bool CheckFizzle() { return true; }
|
||||
public override bool CheckNextSpellTime { get { return false; } }
|
||||
|
||||
public override bool CheckDisturb(DisturbType type, bool checkFirst, bool resistable)
|
||||
{
|
||||
if (type == DisturbType.EquipRequest || type == DisturbType.UseRequest)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void SayMantra()
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDisturb(DisturbType type, bool message)
|
||||
{
|
||||
Caster.Flying = false;
|
||||
BuffInfo.RemoveBuff(this.Caster, BuffIcon.Fly);
|
||||
|
||||
if (message)
|
||||
Caster.SendLocalizedMessage(1113192); // You have been disrupted while attempting to fly!
|
||||
}
|
||||
|
||||
public static bool CheckFlyingAllowed(Mobile mob, bool message)
|
||||
{
|
||||
if (mob.Region != null && !mob.Region.AllowFlying(mob))
|
||||
{
|
||||
mob.SendMessage("You may not fly here.");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool CheckCast()
|
||||
{
|
||||
if (!CheckFlyingAllowed(Caster, true))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (!Caster.Alive)
|
||||
{
|
||||
Caster.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1113082); // You may not fly while dead.
|
||||
}
|
||||
else if (Factions.Sigil.ExistsOn(Caster))
|
||||
{
|
||||
Caster.SendLocalizedMessage(1061632); // You can't do that while carrying the sigil.
|
||||
}
|
||||
else if (!Caster.CanBeginAction(typeof(Seventh.PolymorphSpell)))
|
||||
{
|
||||
Caster.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1112453); // You can't fly in your current form!
|
||||
}
|
||||
else if (Ninjitsu.AnimalForm.UnderTransformation(Caster) || Mysticism.StoneFormSpell.IsEffected(Caster) || (TransformationSpellHelper.UnderTransformation(Caster)
|
||||
&& !TransformationSpellHelper.UnderTransformation(Caster, typeof(Spells.Necromancy.VampiricEmbraceSpell))) || (Caster.IsBodyMod && !Caster.Body.IsHuman))
|
||||
{
|
||||
Caster.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1112453); // You can't fly in your current form!
|
||||
}
|
||||
else if (Caster.Region.OnBeginSpellCast(Caster, this) && Server.Mobiles.BaseMount.CheckMountAllowed(Caster, true, true))
|
||||
{
|
||||
Caster.Flying = true;
|
||||
BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.Fly, 1112193, 1112567)); // Flying & You are flying.
|
||||
Caster.Animate(AnimationType.TakeOff, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void OnCast()
|
||||
{
|
||||
FinishSequence();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user