public Spell GetMagerySpell()
		{
			Spell spell = null;

			// always check for bless, per OSI
			spell = CheckBless();

			if ( spell != null )
			{
				if ( m_Mobile.Debug )
					m_Mobile.Say( 1156, "Blessing my self" );

				return spell;
			}

			// always check for curse, per OSI
			spell = CheckCurse();

			if ( spell != null )
			{
				if ( m_Mobile.Debug )
					m_Mobile.Say( 1156, "Cursing my opponent" );

				return spell;
			}

			// 25% chance to cast poison if needed
			if ( m_Mobile.Combatant != null && !m_Mobile.Combatant.Poisoned && Utility.RandomDouble() > 0.75 )
			{
				if ( m_Mobile.Debug )
					m_Mobile.Say( 1156, "Casting Poison" );

				spell = new PoisonSpell( m_Mobile, null );
			}

			// scaling chance to drain mana based on how much of a caster the opponent is
			if ( CheckManaDrain() > 0.75 )
			{
				if ( m_Mobile.Skills[SkillName.Magery].Value > 80.0 )
					spell = new ManaVampireSpell( m_Mobile, null );
				else if ( m_Mobile.Skills[SkillName.Magery].Value > 40.0 )
					spell = new ManaDrainSpell( m_Mobile, null );

				if ( spell != null )
				{
					if ( m_Mobile.Debug )
						m_Mobile.Say( 1156, "Draining mana" );

					return spell;
				}
			}

			// 10% chance to summon help
			if ( m_CanUseMagerySummon && Utility.RandomDouble() > 0.90 )
			{
				spell = CheckMagerySummon();

				if ( spell != null )
				{
					if ( m_Mobile.Debug )
						m_Mobile.Say( 1156, "Summoning help" );
					return spell;
				}
			}

			// Let's just blast the hell out of them.
			return GetRandomMageryDamageSpell();
		}
示例#2
0
 public InternalTarget(ManaVampireSpell owner)
     : base(10, false, TargetFlags.Harmful)
 {
     m_Owner = owner;
 }
示例#3
0
			public InternalTarget( ManaVampireSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful )
			{
				m_Owner = owner;
			}
示例#4
0
 public InternalTarget(ManaVampireSpell owner)
     : base(Core.ML ? 10 : 12, false, TargetFlags.Harmful)
 {
     this.m_Owner = owner;
 }
示例#5
0
 public InternalTarget(ManaVampireSpell owner)
     : base(owner.Caster.EraML ? 10 : 12, false, TargetFlags.Harmful)
 {
     m_Owner = owner;
 }
示例#6
0
 public InternalSphereTarget(ManaVampireSpell owner)
     : base(Core.ML ? 10 : 12, false, TargetFlags.Harmful)
 {
     m_Owner = owner;
     m_Owner.Caster.SendAsciiMessage("Selecione o alvo...");
 }
 public InternalSphereTarget(ManaVampireSpell owner)
     : base(Core.ML ? 10 : 12, false, TargetFlags.Harmful)
 {
     m_Owner = owner;
     m_Owner.Caster.SendAsciiMessage("Selecione o alvo...");
 }