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);
            }
        }
Exemple #2
0
        /**
         * Evento invocado quando uma criatura é invocada por um jogador.
         */
        public void OnSummon(Jogador caster, BaseCreature creature, ref Point3D p, ref TimeSpan duration)
        {
            SistemaTalento st = caster.getSistemaTalento();

            //Aumenta o duração
            if (st.possuiHabilidadeTalento(IdHabilidadeTalento.conjuracaoExtendida))
            {
                caster.SendMessage("Duracao normal: {0}", duration);

                double totalDuracaoSegundos = duration.TotalSeconds * 1.5;
                duration = TimeSpan.FromSeconds(totalDuracaoSegundos);

                caster.SendMessage("Duracao alterada: {0}", duration);
            }

            //Aumenta a resistencia das conjurações
            if (st.possuiHabilidadeTalento(IdHabilidadeTalento.conjuracaoResistente))
            {
                creature.AddResistanceMod(new ResistanceMod(ResistanceType.Cold, 5));
                creature.AddResistanceMod(new ResistanceMod(ResistanceType.Energy, 5));
                creature.AddResistanceMod(new ResistanceMod(ResistanceType.Fire, 5));
                creature.AddResistanceMod(new ResistanceMod(ResistanceType.Physical, 5));
                creature.AddResistanceMod(new ResistanceMod(ResistanceType.Poison, 5));

                caster.SendMessage("Bonus resistencia");
            }

            //Aumenta os atributos da conjuração
            if (st.possuiHabilidadeTalento(IdHabilidadeTalento.conjuracaoResistente))
            {
                HabilidadeNode node = st.getHabilidades()[IdHabilidadeTalento.conjuracaoResistente];

                StatMod statusBonus = new StatMod(StatType.All, "TalentoConjuracaoForte", node.Nivel * 10, TimeSpan.FromDays(99));
                creature.AddStatMod(statusBonus);

                caster.SendMessage("Bonus Status");
            }
        }
Exemple #3
0
        public override void OnCast()
        {
            if (CheckSequence())
            {
                try
                {
                    BaseCreature creature = (BaseCreature)Activator.CreateInstance(m_Types[Utility.Random(m_Types.Length)]);

                    creature.RangePerception = 100;
                    creature.ControlSlots    = 5;

                    int amount1 = 2 * (int)(Caster.Skills[SkillName.EvalInt].Value / 25);

                    creature.RawStr += (Caster.RawInt) * amount1;
                    creature.RawDex += (Caster.RawInt) * amount1;
                    creature.RawInt += (Caster.RawInt) * amount1;

                    creature.Hits += (Caster.RawInt) * amount1;
                    creature.Stam += (Caster.RawInt) * amount1;
                    creature.Mana += (Caster.RawInt) * amount1;

                    int amount2 = 1 + (int)(Caster.Skills[SkillName.EvalInt].Value / 25);

                    creature.DamageMin += (Caster.FollowersMax) * amount2;
                    creature.DamageMax += (Caster.FollowersMax) * amount2;

                    int amount3 = 3 * (int)(Caster.Skills[SkillName.MagicResist].Value / 5);

                    ResistanceMod mod1 = new ResistanceMod(ResistanceType.Physical, +amount3);
                    ResistanceMod mod2 = new ResistanceMod(ResistanceType.Fire, +amount3);
                    ResistanceMod mod3 = new ResistanceMod(ResistanceType.Cold, +amount3);
                    ResistanceMod mod4 = new ResistanceMod(ResistanceType.Poison, +amount3);
                    ResistanceMod mod5 = new ResistanceMod(ResistanceType.Energy, +amount3);

                    int amount4 = 5 * (int)(Caster.Skills[SkillName.Inscribe].Value / 5);

                    SkillMod mod6 = new DefaultSkillMod(SkillName.Anatomy, true, +amount4);
                    SkillMod mod7 = new DefaultSkillMod(SkillName.MagicResist, true, +amount4);
                    SkillMod mod8 = new DefaultSkillMod(SkillName.Tactics, true, +amount4);
                    SkillMod mod9 = new DefaultSkillMod(SkillName.Wrestling, true, +amount4);

                    creature.AddResistanceMod(mod1);
                    creature.AddResistanceMod(mod2);
                    creature.AddResistanceMod(mod3);
                    creature.AddResistanceMod(mod4);
                    creature.AddResistanceMod(mod5);

                    creature.AddSkillMod(mod6);
                    creature.AddSkillMod(mod7);
                    creature.AddSkillMod(mod8);
                    creature.AddSkillMod(mod9);

                    TimeSpan duration;

                    duration = TimeSpan.FromHours(1.0);

                    SpellHelper.Summon(creature, Caster, 0x215, duration, false, false);
                }
                catch
                {
                }
            }

            FinishSequence();
        }
Exemple #4
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                PlayerMobile pm = from as PlayerMobile;

                if (m_Tasty.Deleted)
                {
                    return;
                }

                if (targeted is BaseCreature)
                {
                    BaseCreature creature = (BaseCreature)targeted;

                    if ((creature.Controlled || creature.Summoned) && (from == creature.ControlMaster) && !(creature.Sleep))
                    {
                        creature.FixedParticles(0x373A, 10, 15, 5018, EffectLayer.Waist);
                        creature.PlaySound(0x1EA);

                        ResistanceMod mod  = new ResistanceMod(ResistanceType.Physical, +15);
                        ResistanceMod mod1 = new ResistanceMod(ResistanceType.Fire, +10);
                        ResistanceMod mod2 = new ResistanceMod(ResistanceType.Cold, +10);
                        ResistanceMod mod3 = new ResistanceMod(ResistanceType.Poison, +10);
                        ResistanceMod mod4 = new ResistanceMod(ResistanceType.Energy, +10);
                        creature.AddResistanceMod(mod);
                        creature.AddResistanceMod(mod1);
                        creature.AddResistanceMod(mod2);
                        creature.AddResistanceMod(mod3);
                        creature.AddResistanceMod(mod4);

                        from.SendMessage("You have increased the Damage Absorption of your pet by 10% for 10 Minutes !!");
                        m_Tasty.m_Used = true;
                        creature.Sleep = true;


                        Timer.DelayCall(TimeSpan.FromMinutes(10.0), delegate()
                        {
                            ResistanceMod mod5 = new ResistanceMod(ResistanceType.Physical, -15);
                            ResistanceMod mod6 = new ResistanceMod(ResistanceType.Fire, -10);
                            ResistanceMod mod7 = new ResistanceMod(ResistanceType.Cold, -10);
                            ResistanceMod mod8 = new ResistanceMod(ResistanceType.Poison, -10);
                            ResistanceMod mod9 = new ResistanceMod(ResistanceType.Energy, -10);
                            creature.AddResistanceMod(mod5);
                            creature.AddResistanceMod(mod6);
                            creature.AddResistanceMod(mod7);
                            creature.AddResistanceMod(mod8);
                            creature.AddResistanceMod(mod9);
                            creature.PlaySound(0x1EB);

                            m_Tasty.m_Used = true;
                            creature.Sleep = false;
                            from.SendMessage("The effect of Vial of Armor Essence is finish !");

                            Timer.DelayCall(TimeSpan.FromMinutes(120.0), delegate()
                            {
                                m_Tasty.m_Used = false;
                            });
                        });
                    }
                    else if ((creature.Controlled || creature.Summoned) && (from == creature.ControlMaster) && (creature.Sleep))
                    {
                        from.SendMessage("Pet already under the influence of Vial of Armor Essence !");
                    }
                    else
                    {
                        from.SendLocalizedMessage(1113049);
                    }
                }
                else
                {
                    from.SendLocalizedMessage(500329);
                }
            }
Exemple #5
0
        /**
         * Evento invocado quando uma criatura é invocada por um jogador.
         */
        public void OnSummon(Jogador caster, BaseCreature creature, ref Point3D p, ref TimeSpan duration)
        {
            SistemaTalento st = caster.getSistemaTalento();

            //Aumenta o duração
            if (st.possuiHabilidadeTalento(IdHabilidadeTalento.conjuracaoExtendida))
            {
                caster.SendMessage("Duracao normal: {0}", duration);

                double totalDuracaoSegundos = duration.TotalSeconds * 1.5;
                duration = TimeSpan.FromSeconds(totalDuracaoSegundos);

                caster.SendMessage("Duracao alterada: {0}", duration);
            }

            //Aumenta a resistencia das conjurações
            if (st.possuiHabilidadeTalento(IdHabilidadeTalento.conjuracaoResistente))
            {
                creature.AddResistanceMod(new ResistanceMod(ResistanceType.Cold, 5));
                creature.AddResistanceMod(new ResistanceMod(ResistanceType.Energy, 5));
                creature.AddResistanceMod(new ResistanceMod(ResistanceType.Fire, 5));
                creature.AddResistanceMod(new ResistanceMod(ResistanceType.Physical, 5));
                creature.AddResistanceMod(new ResistanceMod(ResistanceType.Poison, 5));

                caster.SendMessage("Bonus resistencia");
            }

            //Aumenta os atributos da conjuração
            if (st.possuiHabilidadeTalento(IdHabilidadeTalento.conjuracaoResistente))
            {
                HabilidadeNode node = st.getHabilidades()[IdHabilidadeTalento.conjuracaoResistente];

                StatMod statusBonus = new StatMod(StatType.All, "TalentoConjuracaoForte", node.Nivel * 10, TimeSpan.FromDays(99));
                creature.AddStatMod(statusBonus);

                caster.SendMessage("Bonus Status");
            }
        }
        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;
            }
        }