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); } }
/** * 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 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(); }
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); } }
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; } }