Esempio n. 1
0
		public override void OnHit( Mobile attacker, Mobile defender, int damage )
		{
			if( !Validate( attacker ) || !CheckMana( attacker, true ) )
				return;

			ClearCurrentAbility( attacker );

			if( Server.Items.ParalyzingBlow.IsImmune( defender ) )	//After mana consumption intentional
			{
				attacker.SendLocalizedMessage( 1070804 ); // Your target resists paralysis.
				defender.SendLocalizedMessage( 1070813 ); // You resist paralysis.
				return;
			}

			attacker.SendLocalizedMessage( 1063356 ); // You cripple your target with a nerve strike!
			defender.SendLocalizedMessage( 1063357 ); // Your attacker dealt a crippling nerve strike!

			attacker.PlaySound( 0x204 );
			defender.FixedEffect( 0x376A, 9, 32 );
			defender.FixedParticles( 0x37C4, 1, 8, 0x13AF, 0, 0, EffectLayer.Waist );

			AOS.Damage( defender, attacker, (int)(15.0 * (attacker.Skills[SkillName.Bushido].Value - 50.0) / 70.0 + 10), 100, 0, 0, 0, 0 );	//10-25

			defender.Paralyze( TimeSpan.FromSeconds( 3.0 ) );
			Server.Items.ParalyzingBlow.BeginImmunity( defender, Server.Items.ParalyzingBlow.FreezeDelayDuration );
		}
		public override void OnHit( Mobile attacker, Mobile defender, int damage )
		{
			if ( !CheckMana( attacker, true ) )
				return;

			ClearCurrentAbility( attacker );

			IMount mount = defender.Mount;

			if ( mount != null && !(defender is ChaosDragoonElite) )
			{
				defender.SendLocalizedMessage( 1062315 ); // You fall off your mount!

				defender.PlaySound( 0x140 );
				defender.FixedParticles( 0x3728, 10, 15, 9955, EffectLayer.Waist );

				mount.Rider = null;

				BaseMount.SetMountPrevention( defender, BlockMountType.Dazed, TimeSpan.FromSeconds( 10.0 ) );

				if( Core.ML && attacker is BaseCreature && ((BaseCreature)attacker).ControlMaster != null )
					BaseMount.SetMountPrevention( ((BaseCreature)attacker).ControlMaster, BlockMountType.DismountRecovery, TimeSpan.FromSeconds( 3.0 ) );
				else
					BaseMount.SetMountPrevention( attacker, BlockMountType.DismountRecovery, TimeSpan.FromSeconds( 3.0 ) );
			}
			else
			{
				//if ( WeaponAbility.ParalyzingBlow.IsImmune( defender ) )
				//{
					//attacker.SendLocalizedMessage( 1070804 ); // Your target resists paralysis.
					//defender.SendLocalizedMessage( 1070813 ); // You resist paralysis.

				//}
				//else
				//{
					defender.FixedEffect( 0x376A, 9, 32 );
					defender.PlaySound( 0x204 );
					attacker.SendLocalizedMessage( 1060163 ); // You deliver a paralyzing blow!
					defender.SendLocalizedMessage( 1060164 ); // The attack has temporarily paralyzed you!
					TimeSpan duration = defender.Player ? TimeSpan.FromSeconds( 3.0 ) : TimeSpan.FromSeconds( 6.0 );
					defender.Paralyze( duration );
					//WeaponAbility.ParalyzingBlow.BeginImmunity( defender, duration + TimeSpan.FromSeconds( 8.0 ) );
				//}
			}

			int amount = 15;

			switch( Utility.Random( 5 ) )
			{
				case 0: AOS.Damage( defender, attacker, amount, 100, 0, 0, 0, 0 ); break;
				case 1: AOS.Damage( defender, attacker, amount, 0, 100, 0, 0, 0 ); break;
				case 2: AOS.Damage( defender, attacker, amount, 0, 0, 100, 0, 0 ); break;
				case 3: AOS.Damage( defender, attacker, amount, 0, 0, 0, 100, 0 ); break;
				case 4: AOS.Damage( defender, attacker, amount, 0, 0, 0, 0, 100 ); break;
			}

		}
Esempio n. 3
0
        public override bool OnMoveOver( Mobile m )
        {
            if ( m is Navrey )
                return true;

            if ( AccessLevel.Player == m.AccessLevel )
            {
                m.Paralyze( duration );
    
                m.PlaySound( 0x204 );
                m.FixedEffect( 0x376A, 10, 16 );
            }

            return true;
        }
Esempio n. 4
0
        /* Echo Strike
         * The Dark Knight teleports to one of the platforms in
         * the room, and calls down lightning several times to
         * strike you or your pets. The lightning is slightly
         * displaced, allowing you a chance to escape, or even
         * give him a taste of his own medicine.
         */

        public static void EchoStrike(Mobile from, int min, int max)
        {
            from.Paralyze(TimeSpan.FromSeconds(1));
            from.Animate(17, 5, 1, true, false, 0);

            List <Mobile>     mobiles = new List <Mobile>();
            Point3D           point;
            IPooledEnumerable eable = from.GetMobilesInRange(14);

            foreach (Mobile m in eable)
            {
                if (m != from && CanTarget(from, m, true, false, false))
                {
                    mobiles.Add(m);
                }
            }
            eable.Free();

            for (int i = 0; i < mobiles.Count; i++)
            {
                Mobile m = mobiles[i];

                if (Utility.Random(5) == 0)
                {
                    Effects.SendBoltEffect(m);
                    AOS.Damage(m, from, Utility.RandomMinMax(min, max), 0, 0, 0, 0, 100);
                    m.SendMessage("You get hit by a lightning bolt");
                }
                else
                {
                    point = RandomCloseLocation(from, 1);

                    if (from.Location == point)
                    {
                        AOS.Damage(from, from, Utility.RandomMinMax(min, max), 0, 0, 0, 0, 100);
                        Effects.SendBoltEffect(from);
                    }
                    else
                    {
                        Effects.SendBoltEffect(new Entity(Serial.Zero, point, from.Map));
                    }
                }
            }
        }
Esempio n. 5
0
        public override void OnHit(Mobile attacker, Mobile defender, int damage)
        {
            if (!Validate(attacker) || !CheckMana(attacker, true))
                return;

            ClearCurrentAbility(attacker);

            bool cantpara = Server.Items.ParalyzingBlow.IsImmune(defender);

            if (cantpara)
            {
                attacker.SendLocalizedMessage(1070804); // Your target resists paralysis.
                defender.SendLocalizedMessage(1070813); // You resist paralysis.
            }
            else
            {
                attacker.SendLocalizedMessage(1063356); // You cripple your target with a nerve strike!
                defender.SendLocalizedMessage(1063357); // Your attacker dealt a crippling nerve strike!
            }

            attacker.PlaySound(0x204);
            defender.FixedEffect(0x376A, 9, 32);
            defender.FixedParticles(0x37C4, 1, 8, 0x13AF, 0, 0, EffectLayer.Waist);

            if (Core.ML)
            {
                AOS.Damage(defender, attacker, (int)(15.0 * (attacker.Skills[SkillName.Bushido].Value - 50.0) / 70.0 + Utility.Random(10)), true, 100, 0, 0, 0, 0);	//0-25

                if (!cantpara && ((150.0 / 7.0 + (4.0 * attacker.Skills[SkillName.Bushido].Value) / 7.0) / 100.0) > Utility.RandomDouble())
                {
                    defender.Paralyze(TimeSpan.FromSeconds(2.0));
                    Server.Items.ParalyzingBlow.BeginImmunity(defender, Server.Items.ParalyzingBlow.FreezeDelayDuration);
                }
            }
            else if (!cantpara)
            {
                AOS.Damage(defender, attacker, (int)(15.0 * (attacker.Skills[SkillName.Bushido].Value - 50.0) / 70.0 + 10), true, 100, 0, 0, 0, 0); //10-25
                defender.Freeze(TimeSpan.FromSeconds(2.0));
                Server.Items.ParalyzingBlow.BeginImmunity(defender, Server.Items.ParalyzingBlow.FreezeDelayDuration);
            }
        }
Esempio n. 6
0
		// TODO: Throwing Dagger

		public override void OnGaveMeleeAttack( Mobile defender )
		{
			base.OnGaveMeleeAttack( defender );

			if ( 0.1 > Utility.RandomDouble() )
			{
				/* Maniacal laugh
				 * Cliloc: 1070840
				 * Effect: Type: "3" From: "0x57D4F5B" To: "0x0" ItemId: "0x37B9" ItemIdName: "glow" FromLocation: "(884 715, 10)" ToLocation: "(884 715, 10)" Speed: "10" Duration: "5" FixedDirection: "True" Explode: "False"
				 * Paralyzes for 4 seconds, or until hit
				 */

				defender.FixedEffect( 0x37B9, 10, 5 );
				defender.SendLocalizedMessage( 1070840 ); // You are frozen as the creature laughs maniacally.

				defender.Paralyze( TimeSpan.FromSeconds( 4.0 ) );
 			}
		}
		public override bool OnMoveOver(Mobile m)
		{
			bool temp = base.OnMoveOver(m);
			if (mep != null && m != null && m.Alive && mep.Alive && (m.Player || ((BaseCreature)m).Controlled))
			{
				Timer pullT = new PullTimer(mep, m, this);
				m.Paralyze(TimeSpan.FromSeconds(10));
				pullT.Start();
			}
			return temp;
		}
Esempio n. 8
0
        private void Paralyze( Mobile defender )
        {
            defender.Paralyze( TimeSpan.FromSeconds( 3.0 ) );

            defender.FixedEffect( 0x376A, 6, 1 );
            defender.PlaySound( 0x204 );

            defender.SendLocalizedMessage( 1060164 ); // The attack has temporarily paralyzed you!
        }
Esempio n. 9
0
		// Correct?
		public override void Target( Mobile m )
		{
			if ( CheckHSequence( m ) )
			{
				SpellHelper.Turn( Caster, m );
				Caster.FixedParticles( 0x374A, 10, 15, 2038, EffectLayer.Head );
				m.FixedParticles( 0x374A, 10, 15, 5038, EffectLayer.Head );
				m.PlaySound( 0x213 );
				m.Paralyze( TimeSpan.FromSeconds( Utility.RandomMinMax( 10, 20 ) ) );
			}

			FinishSequence();
		}
Esempio n. 10
0
        public static void Rally(Mobile from, int delay)
        {
            from.Paralyze(TimeSpan.FromSeconds(4.0));
            from.Animate(6, 5, 1, true, false, 0);

            Timer timer = new RallyTimer(from, delay);
            timer.Start();
        }
            private bool DoFreeze( Mobile from, Mobile to )
            {
                if ( (to.Frozen || to.Paralyzed ) )
                    from.SendMessage( "The target is already frozen." );
                else if ( from.Skills[SkillName.Magery].BaseFixedPoint < 300 )
                    from.SendMessage( "You are not sure how to use the magic within this staff." );
                else if ( from.Mana < 15 )
                    from.SendMessage( "You lack the concentration to use this staff." );
                else
                {
                    Mobile caster = from;
                    caster.RevealingAction();
                    SpellHelper.Turn( caster, to );
                    SpellHelper.CheckReflect( (int)SpellCircle.Fifth, ref from, ref to );

                    to.Paralyze( TimeSpan.FromSeconds( 7.0 ) );
                    Timer.DelayCall( TimeSpan.FromSeconds( 2.5 ), new TimerStateCallback( ReleaseSolidHueOverrideMod ), new object[]{ to, to.SolidHueOverride } );
                    to.SolidHueOverride = 1264;

                    caster.PrivateOverheadMessage( MessageType.Regular, 0x3B2, 1008127, caster.NetState );
                    to.PlaySound( 0x204 );
                    caster.Animate( 218, 7, 1, true, false, 0 );
                    Effects.SendTargetEffect( to, 0x376A, 16 );
                    from.Mana -= 15;
                    return true;
                }

                return false;
            }
Esempio n. 12
0
        public override bool OnMoveOver(Mobile m)
        {
            if (m is Navrey)
                return true;

            if (m.AccessLevel == AccessLevel.Player && m.Alive)
            {
                m.Paralyze(m_Duration);

                m_StuckMobs.Add(m);

                m.PlaySound(0x204);
                m.FixedEffect(0x376A, 10, 16);

                BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.Webbing, 1153789, 1153825));
            }

            return true;
        }
		// Freezing The Lifeblood
		// Your attack paralyzes a humanoid and making them helpless for 60 seconds.
		// A successful fortitude save negates this effect. This target periodically 
		// makes a save to attempt to break free of this effect.
		public static void DarkWaterCombo( Mobile from, Mobile target )
		{
			from.SendMessage( 2075, "You execute the maneuver: Freezing The Lifeblood" );
			target.Paralyze( TimeSpan.FromSeconds( 15 ) );
			target.SendMessage( 2075, "Your opponent's blow cuts you with a chilling blow." );
			target.PlaySound( 0x21A );
		}
Esempio n. 14
0
        public override bool DoEffect(Mobile from, Mobile target)
        {
            if (target.Frozen || target.Paralyzed)
            {
                return false; // The target is already frozen.
            }
            else if ( target.Alive && from.CanBeHarmful( target ) && from.CanSee( target ) && from.InLOS( target ) )
            {
                from.DoHarmful( target );
                SpellHelper.Turn( from, target );
                SpellHelper.CheckReflect( 5, from, ref target );

                if ( target.Spell is Spell )
                    ((Spell)target.Spell).OnCasterHurt( 1 );

                double duration = Utility.Random( 10 ) + 15;
                if ( target.CheckSkill( SkillName.MagicResist, 10, 50 ) ) // check resisted easy
                    duration *= 0.5;

                target.Paralyze( TimeSpan.FromSeconds( duration ) );
                target.PlaySound( 0x204 );
                target.FixedEffect( 0x376A, 6, 1 );
                return true;
            }

            return false;
        }
Esempio n. 15
0
		public static void DDSleep( Mobile from, Mobile target )
		{
			if ( target == null )
				return;
			else if ( BlueSpell.SavingThrow( target, DDSave.Fort, 30 ) )
			{
				target.SendMessage( "You makes a successful save against a spell" );
				return;
			}

			target.SendMessage( "You failed your save verses Sleep!" );
			// TODO use the new SA method of sleep (prevents spellcasting).
			target.Paralyze( TimeSpan.FromSeconds( 30 ) );
		}
Esempio n. 16
0
		public void Target( Mobile m )
		{
			if ( !Caster.CanSee( m ) )
			{
				Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
			}
			else if ( Caster.HarmfulCheck( m ) && CheckSequence() )
			{
				Mobile source = Caster;
				SpellHelper.CheckReflect( (int)this.Circle, ref source, ref m );
				double duration = 7.0;

				m.Paralyze( TimeSpan.FromSeconds( duration ) );
				Caster.Mana = 0;

				if ( Caster != m )
				{
					Caster.Direction = Caster.GetDirectionTo( m );
				}

				m.PlaySound( 0x204 );
				Effects.SendTargetEffect( m, 0x376A, 16 );
				Caster.SendLocalizedMessage( 1008127 );
			}

			FinishSequence();
		}
Esempio n. 17
0
        /* Echo Strike
        The Dark Knight teleports to one of the platforms in
        the room, and calls down lightning several times to
        strike you or your pets. The lightning is slightly
        displaced, allowing you a chance to escape, or even
        give him a taste of his own medicine.
        */

        public static void EchoStrike(Mobile from, int min, int max)
        {
            from.Paralyze(TimeSpan.FromSeconds(1));
            from.Animate(17, 5, 1, true, false, 0);

            var mobiles = new List<Mobile>();
            Point3D point;

            foreach (var m in from.Map.GetMobilesInRange(from.Location, 14))
            {
                if (m != from && CanTarget(from, m, true, false, false))
                    mobiles.Add(m);
            }

            for (var i = 0; i < mobiles.Count; i++)
            {
                var m = mobiles[i];

                if (Utility.Random(5) == 0)
                {
                    Effects.SendBoltEffect(m);
                    AOS.Damage(m, from, Utility.RandomMinMax(min, max), 0, 0, 0, 0, 100);
                    m.SendMessage("You get hit by a lightning bolt");
                }
                else
                {
                    point = RandomCloseLocation(from, 1);

                    if (from.Location == point)
                    {
                        AOS.Damage(from, from, Utility.RandomMinMax(min, max), 0, 0, 0, 0, 100);
                        Effects.SendBoltEffect(from);
                    }
                    else
                        Effects.SendBoltEffect(new Entity(Serial.Zero, point, from.Map));
                }
            }
        }
Esempio n. 18
0
		public override void OnGaveMeleeAttack( Mobile defender )
		{
			defender.Paralyze( TimeSpan.FromSeconds( 15.0 ) );
			PerformAttack( defender );
			base.OnGaveMeleeAttack( defender );
		}
Esempio n. 19
0
        public static void IcyWindAttack( Mobile from, Mobile target )
        {
            Effects.PlaySound( from.Location, from.Map, 0x1FB );
            Effects.PlaySound( from.Location, from.Map, 0x10B );
            Effects.SendLocationParticles( EffectItem.Create( from.Location, from.Map, EffectItem.DefaultDuration ), 0x37CC, 1, 40, 97, 3, 9917, 0 );

            target.FixedParticles( 0x374A, 1, 15, 9502, 97, 3, (EffectLayer) 255 );

            target.SendLocalizedMessage( 1070832 ); // An icy wind surrounds you, freezing your lungs as you breathe!

            int duration = 3 + Utility.Random( 3 );

            target.Paralyze( TimeSpan.FromSeconds( duration ) );

            from.DoHarmful( target );
        }
Esempio n. 20
0
		public override void OnGaveMeleeAttack( Mobile defender )
		{
			base.OnGaveMeleeAttack( defender );
			if ( Utility.Random( 100 ) < 30 ) defender.Paralyze( TimeSpan.FromSeconds( 3.0 ) ); }