Exemple #1
0
        public bool OnUsed(Mobile from, BaseCreature pet)
        {
            if (m_UnderEffect.Contains(pet))
            {
                from.SendLocalizedMessage(1113075);                   // Your pet is still under the effect of armor essence.
                return(false);
            }
            else if (DateTime.Now < pet.NextArmorEssence)
            {
                from.SendLocalizedMessage(1113076);                   // Your pet is still recovering from the last armor essence it consumed.
                return(false);
            }
            else
            {
                pet.SayTo(from, 1113050);                   // Your pet looks much happier.

                pet.FixedEffect(0x375A, 10, 15);
                pet.PlaySound(0x1E7);

                List <ResistanceMod> mods = new List <ResistanceMod>();

                mods.Add(new ResistanceMod(ResistanceType.Physical, 15));
                mods.Add(new ResistanceMod(ResistanceType.Fire, 10));
                mods.Add(new ResistanceMod(ResistanceType.Cold, 10));
                mods.Add(new ResistanceMod(ResistanceType.Poison, 10));
                mods.Add(new ResistanceMod(ResistanceType.Energy, 10));

                for (int i = 0; i < mods.Count; i++)
                {
                    pet.AddResistanceMod(mods[i]);
                }

                m_UnderEffect.Add(pet);

                Timer.DelayCall(Duration, new TimerCallback(
                                    delegate
                {
                    for (int i = 0; i < mods.Count; i++)
                    {
                        pet.RemoveResistanceMod(mods[i]);
                    }

                    m_UnderEffect.Remove(pet);
                }));

                pet.NextArmorEssence = DateTime.Now + Duration + Cooldown;

                Delete();

                return(true);
            }
        }
        public bool OnUsed( Mobile from, BaseCreature pet )
        {
            if ( m_UnderEffect.Contains( pet ) )
            {
                from.SendLocalizedMessage( 1113075 ); // Your pet is still under the effect of armor essence.
                return false;
            }
            else if ( DateTime.Now < pet.NextArmorEssence )
            {
                from.SendLocalizedMessage( 1113076 ); // Your pet is still recovering from the last armor essence it consumed.
                return false;
            }
            else
            {
                pet.SayTo( from, 1113050 ); // Your pet looks much happier.

                pet.FixedEffect( 0x375A, 10, 15 );
                pet.PlaySound( 0x1E7 );

                List<ResistanceMod> mods = new List<ResistanceMod>();

                mods.Add( new ResistanceMod( ResistanceType.Physical, 15 ) );
                mods.Add( new ResistanceMod( ResistanceType.Fire, 10 ) );
                mods.Add( new ResistanceMod( ResistanceType.Cold, 10 ) );
                mods.Add( new ResistanceMod( ResistanceType.Poison, 10 ) );
                mods.Add( new ResistanceMod( ResistanceType.Energy, 10 ) );

                for ( int i = 0; i < mods.Count; i++ )
                    pet.AddResistanceMod( mods[i] );

                m_UnderEffect.Add( pet );

                Timer.DelayCall( Duration, new TimerCallback(
                    delegate
                    {
                        for ( int i = 0; i < mods.Count; i++ )
                            pet.RemoveResistanceMod( mods[i] );

                        m_UnderEffect.Remove( pet );
                    } ) );

                pet.NextArmorEssence = DateTime.Now + Duration + Cooldown;

                Delete();

                return true;
            }
        }