本文整理汇总了C#中Server.Spells.Spell.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# Spell.GetType方法的具体用法?C# Spell.GetType怎么用?C# Spell.GetType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Server.Spells.Spell
的用法示例。
在下文中一共展示了Spell.GetType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AllowSpellCast
public bool AllowSpellCast( Mobile from, Spell spell )
{
if ( !m_StartedBeginCountdown )
return true;
if (spell == null) return false;
Type spellType = spell.GetType();
foreach (Type alwaysdisallowed in m_AlwaysDisallowedSpells)
{
if (alwaysdisallowed == spellType)
return false;
}
DuelPlayer pl = Find( from );
if ( pl == null || pl.Eliminated )
return true;
if ( CantDoAnything( from ) )
return false;
string title = null, option = null;
if( spell is MagerySpell )
{
switch( ((MagerySpell)spell).Circle )
{
case SpellCircle.First: title = "1st Circle"; break;
case SpellCircle.Second: title = "2nd Circle"; break;
case SpellCircle.Third: title = "3rd Circle"; break;
case SpellCircle.Fourth: title = "4th Circle"; break;
case SpellCircle.Fifth: title = "5th Circle"; break;
case SpellCircle.Sixth: title = "6th Circle"; break;
case SpellCircle.Seventh: title = "7th Circle"; break;
case SpellCircle.Eighth: title = "8th Circle"; break;
}
option = spell.Name;
}
else
{
title = "Other Spell";
option = spell.Name;
}
if ( title == null || option == null || m_Ruleset.GetOption( title, option ) )
return true;
from.SendMessage( "The dueling ruleset prevents you from casting this spell." );
return false;
}
示例2: OnCast
public static bool OnCast(Mobile caster, Spell spell)
{
ITransformationSpell transformSpell = spell as ITransformationSpell;
if (transformSpell == null)
return false;
if (Factions.Sigil.ExistsOn(caster))
{
caster.SendLocalizedMessage(1061632); // You can't do that while carrying the sigil.
}
else if (!caster.CanBeginAction(typeof(PolymorphSpell)))
{
caster.SendLocalizedMessage(1061628); // You can't do that while polymorphed.
}
else if (DisguiseTimers.IsDisguised(caster))
{
caster.SendLocalizedMessage(1061631); // You can't do that while disguised.
return false;
}
else if (AnimalForm.UnderTransformation(caster))
{
caster.SendLocalizedMessage(1061091); // You cannot cast that spell in this form.
}
else if (!caster.CanBeginAction(typeof(IncognitoSpell)) || (caster.IsBodyMod && GetContext(caster) == null))
{
spell.DoFizzle();
}
else if (spell.CheckSequence())
{
TransformContext context = GetContext(caster);
Type ourType = spell.GetType();
bool wasTransformed = (context != null);
bool ourTransform = (wasTransformed && context.Type == ourType);
if (wasTransformed)
{
RemoveContext(caster, context, ourTransform);
if (ourTransform)
{
caster.PlaySound(0xFA);
caster.FixedParticles(0x3728, 1, 13, 5042, EffectLayer.Waist);
}
}
if (!ourTransform)
{
List<ResistanceMod> mods = new List<ResistanceMod>();
if (transformSpell.PhysResistOffset != 0)
mods.Add(new ResistanceMod(ResistanceType.Physical, transformSpell.PhysResistOffset));
if (transformSpell.FireResistOffset != 0)
mods.Add(new ResistanceMod(ResistanceType.Fire, transformSpell.FireResistOffset));
if (transformSpell.ColdResistOffset != 0)
mods.Add(new ResistanceMod(ResistanceType.Cold, transformSpell.ColdResistOffset));
if (transformSpell.PoisResistOffset != 0)
mods.Add(new ResistanceMod(ResistanceType.Poison, transformSpell.PoisResistOffset));
if (transformSpell.NrgyResistOffset != 0)
mods.Add(new ResistanceMod(ResistanceType.Energy, transformSpell.NrgyResistOffset));
if (!((Body)transformSpell.Body).IsHuman)
{
Mobiles.IMount mt = caster.Mount;
if (mt != null)
mt.Rider = null;
}
caster.BodyMod = transformSpell.Body;
caster.HueMod = transformSpell.Hue;
for (int i = 0; i < mods.Count; ++i)
caster.AddResistanceMod(mods[i]);
transformSpell.DoEffect(caster);
Timer timer = new TransformTimer(caster, transformSpell);
timer.Start();
AddContext(caster, new TransformContext(timer, mods, ourType, transformSpell));
return true;
}
}
return false;
}
示例3: OnCast
public static bool OnCast( Mobile caster, Spell spell )
{
ITransformationSpell transformSpell = spell as ITransformationSpell;
if( transformSpell == null )
return false;
if( !caster.CanBeginAction( typeof( PolymorphSpell ) ) )
{
caster.SendLocalizedMessage( 1061628 ); // You can't do that while polymorphed.
}
else if ( DisguiseTimers.IsDisguised( caster ) )
{
caster.SendLocalizedMessage( 1061631 ); // You can't do that while disguised.
return false;
}
else if( !caster.CanBeginAction( typeof( IncognitoSpell ) ) || (caster.IsBodyMod && GetContext( caster ) == null) )
{
spell.DoFizzle();
}
else if( spell.CheckSequence() )
{
TransformContext context = GetContext( caster );
Type ourType = spell.GetType();
bool wasTransformed = (context != null);
bool ourTransform = (wasTransformed && context.Type == ourType);
if( wasTransformed )
{
RemoveContext( caster, context, ourTransform );
if( ourTransform )
{
caster.PlaySound( 0xFA );
caster.FixedParticles( 0x3728, 1, 13, 5042, EffectLayer.Waist );
}
}
if( !ourTransform )
{
if( !((Body)transformSpell.Body).IsHuman )
{
Mobiles.IMount mt = caster.Mount;
if( mt != null )
mt.Rider = null;
}
caster.BodyMod = transformSpell.Body;
caster.HueMod = transformSpell.Hue;
transformSpell.DoEffect( caster );
Timer timer = new TransformTimer( caster, transformSpell );
timer.Start();
AddContext( caster, new TransformContext( timer, ourType, transformSpell ) );
return true;
}
}
return false;
}