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 || c.BodyValue == 242) { if ((!c.Controled || !c.Tamable) && from.Skills[SkillName.AnimalLore].Base < 100.0) { from.SendLocalizedMessage(1049674); // At your skill level, you can only lore tamed creatures. } else if (!c.Tamable && from.Skills[SkillName.AnimalLore].Base < 110.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, 120.0)) { from.SendLocalizedMessage(500334); // You can't think of anything you know offhand. } else { if (c.Tamable) { TavGenome genome = (TavGenome)XmlAttach.FindAttachment(c, typeof(TavGenome)); if (genome == null) { genome = new TavGenome(); XmlAttach.AttachTo(c, genome); TAVUtilities.ScaleGenetics(c); } } bool husbandry = false; if (from is TeiravonMobile && ((TeiravonMobile)from).HasFeat(TeiravonMobile.Feats.AnimalHusbandry)) { husbandry = true; } from.CloseGump(typeof(AnimalLoreGump)); from.SendGump(new AnimalLoreGump(c, husbandry)); } } 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 AnimalLoreGump(BaseCreature c, bool husbandry) : base((Int32)250, (Int32)50) { TavGenome genome = (TavGenome)XmlAttach.FindAttachment(c, typeof(TavGenome)); if (genome == null) { husbandry = false; Console.WriteLine("no genome located"); } int[] labelhue = { 0x24E5, 0xFF00, 0xF500, 0xD000 }; AddPage(0); AddImage(100, 100, 2080); AddImage(118, 137, 2081); AddImage(118, 207, 2081); AddImage(118, 277, 2081); AddImage(118, 347, 2083); AddHtml(147, 108, 210, 18, String.Format("<center><i>{0}</i></center>", c.Name), false, false); AddButton(240, 77, 2093, 2093, 2, GumpButtonType.Reply, 0); AddImage(140, 138, 2091); AddImage(140, 335, 2091); int pages = (Core.AOS ? 5 : 3); int page = 0; #region Attributes AddPage(++page); AddImage(128, 152, 2086); AddHtmlLocalized(147, 150, 160, 18, 1049593, 200, false, false); // Attributes AddHtmlLocalized(153, 168, 160, 18, 1049578, (husbandry && (genome.Hp > 0)) ? labelhue[genome.Hp] : LabelColor, false, false); // Hits AddHtml(280, 168, 75, 18, FormatAttributes(c.Hits, c.HitsMax), false, false); AddHtmlLocalized(153, 186, 160, 18, 1049579, (husbandry && (genome.Stam > 0))? labelhue[genome.Stam]: LabelColor, false, false); // Stamina AddHtml(280, 186, 75, 18, FormatAttributes(c.Stam, c.StamMax), false, false); AddHtmlLocalized(153, 204, 160, 18, 1049580, LabelColor, false, false); // Mana AddHtml(280, 204, 75, 18, FormatAttributes(c.Mana, c.ManaMax), false, false); AddHtmlLocalized(153, 222, 160, 18, 1028335, husbandry && (genome.Str > 0) ? labelhue[genome.Str]: LabelColor, false, false); // Strength AddHtml(320, 222, 35, 18, FormatStat(c.Str), false, false); AddHtmlLocalized(153, 240, 160, 18, 3000113, husbandry && (genome.Dex > 0) ? labelhue[genome.Dex]: LabelColor, false, false); // Dexterity AddHtml(320, 240, 35, 18, FormatStat(c.Dex), false, false); AddHtmlLocalized(153, 258, 160, 18, 3000112, husbandry && (genome.Int > 0) ? labelhue[genome.Int]: LabelColor, false, false); // Intelligence AddHtml(320, 258, 35, 18, FormatStat(c.Int), false, false); if (Core.AOS) { AddImage(128, 278, 2086); AddHtmlLocalized(147, 276, 160, 18, 1049594, 200, false, false); // Loyalty Rating AddHtmlLocalized(153, 294, 160, 18, (!c.Controled || c.Loyalty == PetLoyalty.None) ? 1061643 : 1049594 + (int)c.Loyalty, LabelColor, false, false); } else { AddImage(128, 278, 2086); AddHtmlLocalized(147, 276, 160, 18, 3001016, 200, false, false); // Miscellaneous AddHtmlLocalized(153, 294, 160, 18, 1049581, LabelColor, false, false); // Armor Rating AddHtml(320, 294, 35, 18, FormatStat(c.VirtualArmor), false, false); } AddButton(340, 358, 5601, 5605, 0, GumpButtonType.Page, page + 1); AddButton(317, 358, 5603, 5607, 0, GumpButtonType.Page, pages); #endregion #region Resistances if (Core.AOS) { AddPage(++page); AddImage(128, 152, 2086); AddHtmlLocalized(147, 150, 160, 18, 1061645, 200, false, false); // Resistances AddHtmlLocalized(153, 168, 160, 18, 1061646, husbandry && (genome.PhysResist > 0) ? labelhue[genome.PhysResist]: LabelColor, false, false); // Physical AddHtml(320, 168, 35, 18, FormatElement(c.PhysicalResistance), false, false); AddHtmlLocalized(153, 186, 160, 18, 1061647, husbandry && (genome.FireResist > 0) ? labelhue[genome.FireResist]: LabelColor, false, false); // Fire AddHtml(320, 186, 35, 18, FormatElement(c.FireResistance), false, false); AddHtmlLocalized(153, 204, 160, 18, 1061648, husbandry && (genome.ColdResist > 0) ? labelhue[genome.ColdResist]: LabelColor, false, false); // Cold AddHtml(320, 204, 35, 18, FormatElement(c.ColdResistance), false, false); AddHtmlLocalized(153, 222, 160, 18, 1061649, husbandry && (genome.PoisonResist > 0) ? labelhue[genome.PoisonResist]: LabelColor, false, false); // Poison AddHtml(320, 222, 35, 18, FormatElement(c.PoisonResistance), false, false); AddHtmlLocalized(153, 240, 160, 18, 1061650, husbandry && (genome.EnergyResist > 0) ? labelhue[genome.EnergyResist]: LabelColor, false, false); // Energy AddHtml(320, 240, 35, 18, FormatElement(c.EnergyResistance), false, false); AddButton(340, 358, 5601, 5605, 0, GumpButtonType.Page, page + 1); AddButton(317, 358, 5603, 5607, 0, GumpButtonType.Page, page - 1); } #endregion #region Damage if (Core.AOS) { AddPage(++page); AddImage(128, 152, 2086); AddHtmlLocalized(147, 150, 160, 18, 1017319, 200, false, false); // Damage AddHtmlLocalized(153, 168, 160, 18, 1061646, LabelColor, false, false); // Physical AddHtml(320, 168, 35, 18, FormatElement(c.PhysicalDamage), false, false); AddHtmlLocalized(153, 186, 160, 18, 1061647, LabelColor, false, false); // Fire AddHtml(320, 186, 35, 18, FormatElement(c.FireDamage), false, false); AddHtmlLocalized(153, 204, 160, 18, 1061648, LabelColor, false, false); // Cold AddHtml(320, 204, 35, 18, FormatElement(c.ColdDamage), false, false); AddHtmlLocalized(153, 222, 160, 18, 1061649, LabelColor, false, false); // Poison AddHtml(320, 222, 35, 18, FormatElement(c.PoisonDamage), false, false); AddHtmlLocalized(153, 240, 160, 18, 1061650, LabelColor, false, false); // Energy AddHtml(320, 240, 35, 18, FormatElement(c.EnergyDamage), false, false); AddButton(340, 358, 5601, 5605, 0, GumpButtonType.Page, page + 1); AddButton(317, 358, 5603, 5607, 0, GumpButtonType.Page, page - 1); } #endregion #region Skills AddPage(++page); AddImage(128, 152, 2086); AddHtmlLocalized(147, 150, 160, 18, 3001030, 200, false, false); // Combat Ratings AddHtmlLocalized(153, 168, 160, 18, 1044103, husbandry && (genome.Wrestling > 0) ? labelhue[genome.Wrestling]: LabelColor, false, false); // Wrestling AddHtml(320, 168, 35, 18, FormatSkill(c, SkillName.Wrestling), false, false); AddHtmlLocalized(153, 186, 160, 18, 1044087, husbandry && (genome.Tactics > 0) ? labelhue[genome.Tactics]: LabelColor, false, false); // Tactics AddHtml(320, 186, 35, 18, FormatSkill(c, SkillName.Tactics), false, false); AddHtmlLocalized(153, 204, 160, 18, 1044086, husbandry && (genome.MagicResist > 0) ? labelhue[genome.MagicResist]: LabelColor, false, false); // Magic Resistance AddHtml(320, 204, 35, 18, FormatSkill(c, SkillName.MagicResist), false, false); AddHtmlLocalized(153, 222, 160, 18, 1044061, husbandry && (genome.Anatomy > 0) ? labelhue[genome.Anatomy]: LabelColor, false, false); // Anatomy AddHtml(320, 222, 35, 18, FormatSkill(c, SkillName.Anatomy), false, false); AddHtmlLocalized(153, 240, 160, 18, 1044090, LabelColor, false, false); // Poisoning AddHtml(320, 240, 35, 18, FormatSkill(c, SkillName.Poisoning), false, false); AddImage(128, 260, 2086); AddHtmlLocalized(147, 258, 160, 18, 3001032, 200, false, false); // Lore & Knowledge AddHtmlLocalized(153, 276, 160, 18, 1044085, LabelColor, false, false); // Magery AddHtml(320, 276, 35, 18, FormatSkill(c, SkillName.Magery), false, false); AddHtmlLocalized(153, 294, 160, 18, 1044076, LabelColor, false, false); // Evaluating Intelligence AddHtml(320, 294, 35, 18, FormatSkill(c, SkillName.EvalInt), false, false); AddHtmlLocalized(153, 312, 160, 18, 1044106, LabelColor, false, false); // Meditation AddHtml(320, 312, 35, 18, FormatSkill(c, SkillName.Meditation), false, false); AddButton(340, 358, 5601, 5605, 0, GumpButtonType.Page, page + 1); AddButton(317, 358, 5603, 5607, 0, GumpButtonType.Page, page - 1); #endregion #region Misc AddPage(++page); AddImage(128, 152, 2086); AddHtmlLocalized(147, 150, 160, 18, 1049563, 200, false, false); // Preferred Foods int foodPref = 3000340; if ((c.FavoriteFood & FoodType.FruitsAndVegies) != 0) { foodPref = 1049565; // Fruits and Vegetables } else if ((c.FavoriteFood & FoodType.GrainsAndHay) != 0) { foodPref = 1049566; // Grains and Hay } else if ((c.FavoriteFood & FoodType.Fish) != 0) { foodPref = 1049568; // Fish } else if ((c.FavoriteFood & FoodType.Meat) != 0) { foodPref = 1049564; // Meat } AddHtmlLocalized(153, 168, 160, 18, foodPref, LabelColor, false, false); AddImage(128, 188, 2086); AddHtmlLocalized(147, 186, 160, 18, 1049569, 200, false, false); // Pack Instincts int packInstinct = 3000340; if ((c.PackInstinct & PackInstinct.Canine) != 0) { packInstinct = 1049570; // Canine } else if ((c.PackInstinct & PackInstinct.Ostard) != 0) { packInstinct = 1049571; // Ostard } else if ((c.PackInstinct & PackInstinct.Feline) != 0) { packInstinct = 1049572; // Feline } else if ((c.PackInstinct & PackInstinct.Arachnid) != 0) { packInstinct = 1049573; // Arachnid } else if ((c.PackInstinct & PackInstinct.Daemon) != 0) { packInstinct = 1049574; // Daemon } else if ((c.PackInstinct & PackInstinct.Bear) != 0) { packInstinct = 1049575; // Bear } else if ((c.PackInstinct & PackInstinct.Equine) != 0) { packInstinct = 1049576; // Equine } else if ((c.PackInstinct & PackInstinct.Bull) != 0) { packInstinct = 1049577; // Bull } AddHtmlLocalized(153, 204, 160, 18, packInstinct, LabelColor, false, false); if (!Core.AOS) { AddImage(128, 224, 2086); AddHtmlLocalized(147, 222, 160, 18, 1049594, 200, false, false); // Loyalty Rating AddHtmlLocalized(153, 240, 160, 18, (!c.Controled || c.Loyalty == PetLoyalty.None) ? 1061643 : 1049594 + (int)c.Loyalty, LabelColor, false, false); } AddButton(340, 358, 5601, 5605, 0, GumpButtonType.Page, 1); AddButton(317, 358, 5603, 5607, 0, GumpButtonType.Page, page - 1); #endregion }