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 (pet.GetStatMod("[Tasty Treat] Str") != null) { from.SendLocalizedMessage(1113051); // Your pet is still enjoying the last tasty treat! return(false); } else if (DateTime.Now < pet.NextTastyTreat) { from.SendLocalizedMessage(1113049); // Your pet is still recovering from the last tasty treat. return(false); } else { pet.SayTo(from, 1113050); // Your pet looks much happier. pet.FixedEffect(0x375A, 10, 15); pet.PlaySound(0x1E7); AddEffect(pet); pet.NextTastyTreat = DateTime.Now + Duration + Cooldown; if (this.Amount > 1) { this.Amount -= 1; from.Backpack.DropItem(this); } else { Delete(); } return(true); } }
protected override void OnTarget(Mobile from, object targeted) { if (!from.Alive) { from.SendLocalizedMessage(500331); // The spirits of the dead are not the province of animal lore. } else if (targeted is BaseCreature) { BaseCreature c = (BaseCreature)targeted; if (!c.IsDeadPet) { if (c.Body.IsAnimal || c.Body.IsMonster || c.Body.IsSea) { if ((!c.Controlled || !c.Tamable) && from.Skills[SkillName.AnimalLore].Base < 75.0) { from.SendLocalizedMessage(1049674); // At your skill level, you can only lore tamed creatures. } else if (!c.Tamable && from.Skills[SkillName.AnimalLore].Base < 100.0) { from.SendLocalizedMessage(1049675); // At your skill level, you can only lore tamed or tameable creatures. } else if (!from.CheckTargetSkill(SkillName.AnimalLore, c, 0.0, 100.0)) { from.SendLocalizedMessage(500334); // You can't think of anything you know offhand. } else { c.SayTo(from, 1049563); ArrayList food = new ArrayList(); if ((c.FavoriteFood & FoodType.FruitsAndVegies) != 0) { food.Add(1049565); // Fruits and Vegetables } if ((c.FavoriteFood & FoodType.GrainsAndHay) != 0) { food.Add(1049566); // Grains and Hay } if ((c.FavoriteFood & FoodType.Fish) != 0) { food.Add(1049568); // Fish } if ((c.FavoriteFood & FoodType.Meat) != 0) { food.Add(1049564); // Meat } if (food.Count <= 0) { c.SayTo(from, 3000340); } else { foreach (int i in food) { c.SayTo(from, i); } } c.SayTo(from, 1043271 + ((c.Loyalty + 1) / 10));// 1043271 = Your pet looks confused } } else { from.SendLocalizedMessage(500329); // That's not an animal! } } else { from.SendLocalizedMessage(500331); // The spirits of the dead are not the province of animal lore. } } else { from.SendLocalizedMessage(500329); // That's not an animal! } }
public bool OnUsed( Mobile from, BaseCreature pet ) { if ( pet.GetStatMod( "[Tasty Treat] Str" ) != null ) { from.SendLocalizedMessage( 1113051 ); // Your pet is still enjoying the last tasty treat! return false; } else if ( DateTime.Now < pet.NextTastyTreat ) { from.SendLocalizedMessage( 1113049 ); // Your pet is still recovering from the last tasty treat. return false; } else { pet.SayTo( from, 1113050 ); // Your pet looks much happier. pet.FixedEffect( 0x375A, 10, 15 ); pet.PlaySound( 0x1E7 ); AddEffect( pet ); pet.NextTastyTreat = DateTime.Now + Duration + Cooldown; if ( this.Amount > 1 ) { this.Amount -= 1; from.Backpack.DropItem( this ); } else { 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; } }