public Spell CheckMagerySummon()
		{
			int slots = m_Mobile.FollowersMax - m_Mobile.Followers;

			if ( slots < 2 )
				return null;

			Spell spell = null;

			if ( m_Mobile.Skills[SkillName.Magery].Value > 95.0 && m_Mobile.Mana > 50 )
			{
				int whichone = Utility.Random( 10 );

				if ( slots > 4 && whichone == 0 )
					spell = new SummonDaemonSpell( m_Mobile, null );
				else if ( slots > 3 && whichone < 2 )
					spell = new FireElementalSpell( m_Mobile, null );
				else if ( slots > 2 && whichone < 3 )
					spell = new WaterElementalSpell( m_Mobile, null );
				else if ( whichone < 4 )
					spell = new AirElementalSpell( m_Mobile, null );
				else if ( whichone < 5 )
					spell = new EarthElementalSpell( m_Mobile, null );
				else
					spell = new EnergyVortexSpell( m_Mobile, null );
			}
			else if ( m_Mobile.Skills[SkillName.Magery].Value > 55.0 && m_Mobile.Mana > 14 ) // 5th level
			{
				if ( m_Mobile.InitialInnocent ) // peace loving hippy using nature friendly animals
					spell = new SummonCreatureSpell( m_Mobile, null );
				else
					spell = new BladeSpiritsSpell( m_Mobile, null );
			}

			return spell;
		}
 protected override void OnTargetOutOfLOS(Mobile from, object o)
 {
     from.SendLocalizedMessage(501943); // Target cannot be seen. Try again.
     from.Target = new InternalTarget(m_Owner);
     from.Target.BeginTimeout(from, TimeoutTime - DateTime.Now);
     m_Owner = null;
 }
 public InternalSphereTarget(WaterElementalSpell owner)
     : base(8, true, TargetFlags.Harmful)
 {
     m_Owner = owner;
     m_Owner.Caster.SendAsciiMessage("Selecione o alvo...");
 }
 public InternalTarget(WaterElementalSpell owner)
     : base(12, true, TargetFlags.None)
 {
     m_Owner = owner;
 }