public override void OnDoubleClick(Mobile from) { if (!IsChildOf(from.Backpack)) { from.SendMessage("This must be in your backpack to use."); return; } else { if (from.CheckSkill(SkillName.TasteID, -5, 125)) { if (from.Body.IsHuman && !from.Mounted) { from.Animate(34, 5, 1, true, false, 0); } from.PlaySound(0x2D6); if (Server.Misc.IntelligentAction.TestForReagent(from, "undertaker") && Utility.RandomMinMax(1, 5) == 1) { Item jar = new BottleOfParts(); Server.Items.BottleOfParts.FillJar("", Utility.RandomMinMax(1, 90), jar); from.AddToBackpack(jar); from.SendMessage("This seems to be a " + jar.Name + "."); } else { int min = 0; int max = 39; int extras = 0; if (from.Skills[SkillName.Forensics].Value >= 50 && from.Skills[SkillName.Necromancy].Value >= 50 && from.Skills[SkillName.SpiritSpeak].Value >= 50) { extras++; max = 55; } if (from.Skills[SkillName.Cooking].Value >= 50 && from.Skills[SkillName.AnimalLore].Value >= 50 && from.Skills[SkillName.AnimalTaming].Value >= 50) { extras++; extras++; max = 55; } if (extras > 2) { extras = Utility.RandomMinMax(1, 2); max = 55; } int potionType = Utility.RandomMinMax(min, max); string potionName = ""; if (Utility.RandomMinMax(1, 125) <= from.Skills[SkillName.Cooking].Value) // COOKS CAN FIND A POTION 1 LEVEL HIGHER { if (potionType == 1) { potionType++; } else if (potionType == 2) { potionType++; } else if (potionType == 4) { potionType++; } else if (potionType == 6) { potionType++; } else if (potionType == 8) { potionType++; } else if (potionType == 9) { potionType++; } else if (potionType == 10) { potionType++; } else if (potionType == 11) { potionType = 38; } else if (potionType == 12) { potionType++; } else if (potionType == 14) { potionType++; } else if (potionType == 15) { potionType++; } else if (potionType == 17) { potionType++; } else if (potionType == 18) { potionType++; } else if (potionType == 20) { potionType++; } else if (potionType == 21) { potionType++; } else if (potionType == 23) { potionType++; } else if (potionType == 24) { potionType++; } else if (potionType == 26) { potionType++; } else if (potionType == 27) { potionType++; } } if (potionType == 0) { from.AddToBackpack(new NightSightPotion()); potionName = "night sight potion"; } else if (potionType == 1) { from.AddToBackpack(new LesserCurePotion()); potionName = "lesser cure potion"; } else if (potionType == 2) { from.AddToBackpack(new CurePotion()); potionName = "cure potion"; } else if (potionType == 3) { from.AddToBackpack(new GreaterCurePotion()); potionName = "greater cure potion"; } else if (potionType == 4) { from.AddToBackpack(new AgilityPotion()); potionName = "agility potion"; } else if (potionType == 5) { from.AddToBackpack(new GreaterAgilityPotion()); potionName = "greater agility potion"; } else if (potionType == 6) { from.AddToBackpack(new StrengthPotion()); potionName = "strength"; } else if (potionType == 7) { from.AddToBackpack(new GreaterStrengthPotion()); potionName = "greater strength potion"; } else if (potionType == 8) { from.AddToBackpack(new LesserPoisonPotion()); potionName = "lesser poison"; } else if (potionType == 9) { from.AddToBackpack(new PoisonPotion()); potionName = "poison"; } else if (potionType == 10) { from.AddToBackpack(new GreaterPoisonPotion()); potionName = "greater poison"; } else if (potionType == 11) { from.AddToBackpack(new DeadlyPoisonPotion()); potionName = "deadly poison"; } else if (potionType == 12) { from.AddToBackpack(new RefreshPotion()); potionName = "refresh potion"; } else if (potionType == 13) { from.AddToBackpack(new TotalRefreshPotion()); potionName = "total refresh potion"; } else if (potionType == 14) { from.AddToBackpack(new LesserHealPotion()); potionName = "lesser heal potion"; } else if (potionType == 15) { from.AddToBackpack(new HealPotion()); potionName = "heal potion"; } else if (potionType == 16) { from.AddToBackpack(new GreaterHealPotion()); potionName = "greater heal potion"; } else if (potionType == 17) { from.AddToBackpack(new LesserExplosionPotion()); potionName = "lesser explosion potion"; } else if (potionType == 18) { from.AddToBackpack(new ExplosionPotion()); potionName = "explosion potion"; } else if (potionType == 19) { from.AddToBackpack(new GreaterExplosionPotion()); potionName = "greater explosion potion"; } else if (potionType == 20) { from.AddToBackpack(new LesserInvisibilityPotion()); potionName = "lesser invisibility potion"; } else if (potionType == 21) { from.AddToBackpack(new InvisibilityPotion()); potionName = "invisibility potion"; } else if (potionType == 22) { from.AddToBackpack(new GreaterInvisibilityPotion()); potionName = "greater invisibility potion"; } else if (potionType == 23) { from.AddToBackpack(new LesserRejuvenatePotion()); potionName = "lesser rejuvenation potion"; } else if (potionType == 24) { from.AddToBackpack(new RejuvenatePotion()); potionName = "rejuvenation potion"; } else if (potionType == 25) { from.AddToBackpack(new GreaterRejuvenatePotion()); potionName = "greater rejuvenation potion"; } else if (potionType == 26) { from.AddToBackpack(new LesserManaPotion()); potionName = "lesser mana potion"; } else if (potionType == 27) { from.AddToBackpack(new ManaPotion()); potionName = "mana potion"; } else if (potionType == 28) { from.AddToBackpack(new GreaterManaPotion()); potionName = "greater mana potion"; } else if (potionType == 29) { from.AddToBackpack(new InvulnerabilityPotion()); potionName = "invulnerability potion"; } else if (potionType == 30) { from.AddToBackpack(new AutoResPotion()); potionName = "resurrection potion"; } else if (potionType == 31) { from.AddToBackpack(new OilMetal()); potionName = "metal enhancement oil"; } else if (potionType == 32) { from.AddToBackpack(new OilLeather()); potionName = "leather enhancement oil"; } else if (potionType == 33) { from.AddToBackpack(new BottleOfAcid()); potionName = "acid"; } else if (potionType == 34) { from.AddToBackpack(new MagicalDyes()); potionName = "magical dye"; } else if (potionType == 35) { from.AddToBackpack(new BeverageBottle(BeverageType.Ale)); potionName = "ale"; } else if (potionType == 36) { from.AddToBackpack(new BeverageBottle(BeverageType.Wine)); potionName = "wine"; } else if (potionType == 37) { from.AddToBackpack(new BeverageBottle(BeverageType.Liquor)); potionName = "liquor"; } else if (potionType == 38) { from.AddToBackpack(new LethalPoisonPotion()); potionName = "lethal poison"; } else if (potionType == 39) { from.AddToBackpack(new OilWood()); potionName = "wood enhancement oil"; } if (extras == 1) { if (potionType == 40) { from.AddToBackpack(new HellsGateScroll()); potionName = "demonic fire ooze"; } else if (potionType == 41) { from.AddToBackpack(new ManaLeechScroll()); potionName = "lich leech mixture"; } else if (potionType == 42) { from.AddToBackpack(new NecroCurePoisonScroll()); potionName = "disease curing concoction"; } else if (potionType == 43) { from.AddToBackpack(new NecroPoisonScroll()); potionName = "disease draught"; } else if (potionType == 44) { from.AddToBackpack(new NecroUnlockScroll()); potionName = "tomb raiding concoction"; } else if (potionType == 45) { from.AddToBackpack(new PhantasmScroll()); potionName = "phantasm elixir"; } else if (potionType == 46) { from.AddToBackpack(new RetchedAirScroll()); potionName = "retched air elixir"; } else if (potionType == 47) { from.AddToBackpack(new SpectreShadowScroll()); potionName = "spectre shadow elixir"; } else if (potionType == 48) { from.AddToBackpack(new UndeadEyesScroll()); potionName = "eyes of the dead mixture"; } else if (potionType == 49) { from.AddToBackpack(new VampireGiftScroll()); potionName = "vampire blood draught"; } else if (potionType == 50) { from.AddToBackpack(new WallOfSpikesScroll()); potionName = "wall of spikes draught"; } else if (potionType == 51) { from.AddToBackpack(new BloodPactScroll()); potionName = "blood pact elixir"; } else if (potionType == 52) { from.AddToBackpack(new GhostlyImagesScroll()); potionName = "ghostly images draught"; } else if (potionType == 53) { from.AddToBackpack(new GhostPhaseScroll()); potionName = "ghost phase concoction"; } else if (potionType == 54) { from.AddToBackpack(new GraveyardGatewayScroll()); potionName = "black gate draught"; } else if (potionType == 55) { from.AddToBackpack(new HellsBrandScroll()); potionName = "hellish branding ooze"; } } if (extras == 2) { if (potionType == 40) { from.AddToBackpack(new ShieldOfEarthPotion()); potionName = "shield of earth liquid"; } else if (potionType == 41) { from.AddToBackpack(new WoodlandProtectionPotion()); potionName = "woodland protection oil"; } else if (potionType == 42) { from.AddToBackpack(new ProtectiveFairyPotion()); potionName = "fairy in a bottle"; } else if (potionType == 43) { from.AddToBackpack(new HerbalHealingPotion()); potionName = "herbal healing elixir"; } else if (potionType == 44) { from.AddToBackpack(new GraspingRootsPotion()); potionName = "grasping roots mixture"; } else if (potionType == 45) { from.AddToBackpack(new BlendWithForestPotion()); potionName = "forest blending oil"; } else if (potionType == 46) { from.AddToBackpack(new SwarmOfInsectsPotion()); potionName = "bottle of insects"; } else if (potionType == 47) { from.AddToBackpack(new VolcanicEruptionPotion()); potionName = "volcanic fluid"; } else if (potionType == 48) { from.AddToBackpack(new TreefellowPotion()); potionName = "treant fertilizer"; } else if (potionType == 49) { from.AddToBackpack(new StoneCirclePotion()); potionName = "stone rising concoction"; } else if (potionType == 50) { from.AddToBackpack(new DruidicRunePotion()); potionName = "druidic marking oil"; } else if (potionType == 51) { from.AddToBackpack(new LureStonePotion()); potionName = "stone in a bottle"; } else if (potionType == 52) { from.AddToBackpack(new NaturesPassagePotion()); potionName = "nature passage mixture"; } else if (potionType == 53) { from.AddToBackpack(new MushroomGatewayPotion()); potionName = "mushroom gateway growth"; } else if (potionType == 54) { from.AddToBackpack(new RestorativeSoilPotion()); potionName = "bottle of magical mud"; } else if (potionType == 55) { from.AddToBackpack(new FireflyPotion()); potionName = "bottle of fireflies"; } } if (potionName == "") { from.AddToBackpack(new BeverageBottle(BeverageType.Ale)); potionName = "ale"; } from.SendMessage("This seems to be a bottle of " + potionName + "."); } } else { int nReaction = Utility.RandomMinMax(0, 10); if (nReaction == 1) { from.PlaySound(from.Female ? 813 : 1087); from.Say("*vomits*"); if (!from.Mounted) { from.Animate(32, 5, 1, true, false, 0); } Vomit puke = new Vomit(); puke.Map = from.Map; puke.Location = from.Location; from.SendMessage("You fail to identify the liquid, convulsing and spilling the bottle."); } else if (nReaction == 2) { from.PlaySound(from.Female ? 798 : 1070); from.Say("*hiccup!*"); from.SendMessage("You fail to identify the liquid, spasming and spilling the bottle."); } else if (nReaction == 3) { from.PlaySound(from.Female ? 792 : 1064); from.Say("*farts*"); from.SendMessage("You fail to identify the liquid, feeling gassy...you dump it out."); } else if (nReaction == 4) { from.PlaySound(from.Female ? 785 : 1056); from.Say("*cough!*"); if (!from.Mounted) { from.Animate(33, 5, 1, true, false, 0); } from.SendMessage("You fail to identify the liquid, coughing and spilling the bottle."); } else if (nReaction == 5) { from.PlaySound(from.Female ? 748 : 1055); from.Say("*clears throat*"); if (!from.Mounted) { from.Animate(33, 5, 1, true, false, 0); } from.SendMessage("You fail to identify the liquid, hurting your throat...you dump out the bottle."); } else if (nReaction == 6) { from.PlaySound(from.Female ? 782 : 1053); from.Say("*burp!*"); if (!from.Mounted) { from.Animate(33, 5, 1, true, false, 0); } from.SendMessage("You fail to identify the liquid, accidentally drinking the entire bottle."); } else if (nReaction > 6) { int nPoison = Utility.RandomMinMax(0, 10); from.Say("Poison!"); Effects.SendLocationParticles(EffectItem.Create(from.Location, from.Map, EffectItem.DefaultDuration), 0x36B0, 1, 14, 63, 7, 9915, 0); from.PlaySound(Utility.RandomList(0x30, 0x2D6)); if (nPoison > 9) { from.ApplyPoison(from, Poison.Deadly); } else if (nPoison > 7) { from.ApplyPoison(from, Poison.Greater); } else if (nPoison > 4) { from.ApplyPoison(from, Poison.Regular); } else { from.ApplyPoison(from, Poison.Lesser); } from.SendMessage("Poison!"); } else { from.PlaySound(from.Female ? 820 : 1094); from.Say("*spits*"); if (!from.Mounted) { from.Animate(6, 5, 1, true, false, 0); } from.SendMessage("You fail to identify the liquid, spitting it out and dumping the bottle."); } } this.Delete(); } }
public static void GivePotion(Mobile from) { if (Server.Misc.IntelligentAction.TestForReagent(from, "undertaker") && Utility.RandomMinMax(1, 5) == 1) { Item jar = new BottleOfParts(); Server.Items.BottleOfParts.FillJar("", Utility.RandomMinMax(1, 90), jar); from.AddToBackpack(jar); from.SendMessage("This seems to be a " + jar.Name + "."); } else { int min = 0; int max = 39; int extras = 0; if (from.Skills[SkillName.Forensics].Value >= 50 && from.Skills[SkillName.Necromancy].Value >= 50 && from.Skills[SkillName.SpiritSpeak].Value >= 50) { extras++; max = 55; } if (from.Skills[SkillName.Cooking].Value >= 50 && from.Skills[SkillName.AnimalLore].Value >= 50 && from.Skills[SkillName.AnimalTaming].Value >= 50) { extras++; extras++; max = 55; } if (extras > 2) { extras = Utility.RandomMinMax(1, 2); max = 55; } int potionType = Utility.RandomMinMax(min, max); string potionName = ""; if (Utility.RandomMinMax(1, 125) <= from.Skills[SkillName.Cooking].Value) // COOKS CAN FIND A POTION 1 LEVEL HIGHER { if (potionType == 1) { potionType++; } else if (potionType == 2) { potionType++; } else if (potionType == 4) { potionType++; } else if (potionType == 6) { potionType++; } else if (potionType == 8) { potionType++; } else if (potionType == 9) { potionType++; } else if (potionType == 10) { potionType++; } else if (potionType == 11) { potionType = 38; } else if (potionType == 12) { potionType++; } else if (potionType == 14) { potionType++; } else if (potionType == 15) { potionType++; } else if (potionType == 17) { potionType++; } else if (potionType == 18) { potionType++; } else if (potionType == 20) { potionType++; } else if (potionType == 21) { potionType++; } else if (potionType == 23) { potionType++; } else if (potionType == 24) { potionType++; } else if (potionType == 26) { potionType++; } else if (potionType == 27) { potionType++; } } if (potionType == 0) { from.AddToBackpack(new NightSightPotion()); potionName = "night sight potion"; } else if (potionType == 1) { from.AddToBackpack(new LesserCurePotion()); potionName = "lesser cure potion"; } else if (potionType == 2) { from.AddToBackpack(new CurePotion()); potionName = "cure potion"; } else if (potionType == 3) { from.AddToBackpack(new GreaterCurePotion()); potionName = "greater cure potion"; } else if (potionType == 4) { from.AddToBackpack(new AgilityPotion()); potionName = "agility potion"; } else if (potionType == 5) { from.AddToBackpack(new GreaterAgilityPotion()); potionName = "greater agility potion"; } else if (potionType == 6) { from.AddToBackpack(new StrengthPotion()); potionName = "strength"; } else if (potionType == 7) { from.AddToBackpack(new GreaterStrengthPotion()); potionName = "greater strength potion"; } else if (potionType == 8) { from.AddToBackpack(new LesserPoisonPotion()); potionName = "lesser poison"; } else if (potionType == 9) { from.AddToBackpack(new PoisonPotion()); potionName = "poison"; } else if (potionType == 10) { from.AddToBackpack(new GreaterPoisonPotion()); potionName = "greater poison"; } else if (potionType == 11) { from.AddToBackpack(new DeadlyPoisonPotion()); potionName = "deadly poison"; } else if (potionType == 12) { from.AddToBackpack(new RefreshPotion()); potionName = "refresh potion"; } else if (potionType == 13) { from.AddToBackpack(new TotalRefreshPotion()); potionName = "total refresh potion"; } else if (potionType == 14) { from.AddToBackpack(new LesserHealPotion()); potionName = "lesser heal potion"; } else if (potionType == 15) { from.AddToBackpack(new HealPotion()); potionName = "heal potion"; } else if (potionType == 16) { from.AddToBackpack(new GreaterHealPotion()); potionName = "greater heal potion"; } else if (potionType == 17) { from.AddToBackpack(new LesserExplosionPotion()); potionName = "lesser explosion potion"; } else if (potionType == 18) { from.AddToBackpack(new ExplosionPotion()); potionName = "explosion potion"; } else if (potionType == 19) { from.AddToBackpack(new GreaterExplosionPotion()); potionName = "greater explosion potion"; } else if (potionType == 20) { from.AddToBackpack(new LesserInvisibilityPotion()); potionName = "lesser invisibility potion"; } else if (potionType == 21) { from.AddToBackpack(new InvisibilityPotion()); potionName = "invisibility potion"; } else if (potionType == 22) { from.AddToBackpack(new GreaterInvisibilityPotion()); potionName = "greater invisibility potion"; } else if (potionType == 23) { from.AddToBackpack(new LesserRejuvenatePotion()); potionName = "lesser rejuvenation potion"; } else if (potionType == 24) { from.AddToBackpack(new RejuvenatePotion()); potionName = "rejuvenation potion"; } else if (potionType == 25) { from.AddToBackpack(new GreaterRejuvenatePotion()); potionName = "greater rejuvenation potion"; } else if (potionType == 26) { from.AddToBackpack(new LesserManaPotion()); potionName = "lesser mana potion"; } else if (potionType == 27) { from.AddToBackpack(new ManaPotion()); potionName = "mana potion"; } else if (potionType == 28) { from.AddToBackpack(new GreaterManaPotion()); potionName = "greater mana potion"; } else if (potionType == 29) { from.AddToBackpack(new InvulnerabilityPotion()); potionName = "invulnerability potion"; } else if (potionType == 30) { from.AddToBackpack(new AutoResPotion()); potionName = "resurrection potion"; } else if (potionType == 31) { from.AddToBackpack(new OilMetal()); potionName = "metal enhancement oil"; } else if (potionType == 32) { from.AddToBackpack(new OilLeather()); potionName = "leather enhancement oil"; } else if (potionType == 33) { from.AddToBackpack(new BottleOfAcid()); potionName = "acid"; } else if (potionType == 34) { from.AddToBackpack(new MagicalDyes()); potionName = "magical dye"; } else if (potionType == 35) { from.AddToBackpack(new BeverageBottle(BeverageType.Ale)); potionName = "ale"; } else if (potionType == 36) { from.AddToBackpack(new BeverageBottle(BeverageType.Wine)); potionName = "wine"; } else if (potionType == 37) { from.AddToBackpack(new BeverageBottle(BeverageType.Liquor)); potionName = "liquor"; } else if (potionType == 38) { from.AddToBackpack(new LethalPoisonPotion()); potionName = "lethal poison"; } else if (potionType == 39) { from.AddToBackpack(new OilWood()); potionName = "wood enhancement oil"; } if (extras == 1) { if (potionType == 40) { from.AddToBackpack(new HellsGateScroll()); potionName = "demonic fire ooze"; } else if (potionType == 41) { from.AddToBackpack(new ManaLeechScroll()); potionName = "lich leech mixture"; } else if (potionType == 42) { from.AddToBackpack(new NecroCurePoisonScroll()); potionName = "disease curing concoction"; } else if (potionType == 43) { from.AddToBackpack(new NecroPoisonScroll()); potionName = "disease draught"; } else if (potionType == 44) { from.AddToBackpack(new NecroUnlockScroll()); potionName = "tomb raiding concoction"; } else if (potionType == 45) { from.AddToBackpack(new PhantasmScroll()); potionName = "phantasm elixir"; } else if (potionType == 46) { from.AddToBackpack(new RetchedAirScroll()); potionName = "retched air elixir"; } else if (potionType == 47) { from.AddToBackpack(new SpectreShadowScroll()); potionName = "spectre shadow elixir"; } else if (potionType == 48) { from.AddToBackpack(new UndeadEyesScroll()); potionName = "eyes of the dead mixture"; } else if (potionType == 49) { from.AddToBackpack(new VampireGiftScroll()); potionName = "vampire blood draught"; } else if (potionType == 50) { from.AddToBackpack(new WallOfSpikesScroll()); potionName = "wall of spikes draught"; } else if (potionType == 51) { from.AddToBackpack(new BloodPactScroll()); potionName = "blood pact elixir"; } else if (potionType == 52) { from.AddToBackpack(new GhostlyImagesScroll()); potionName = "ghostly images draught"; } else if (potionType == 53) { from.AddToBackpack(new GhostPhaseScroll()); potionName = "ghost phase concoction"; } else if (potionType == 54) { from.AddToBackpack(new GraveyardGatewayScroll()); potionName = "black gate draught"; } else if (potionType == 55) { from.AddToBackpack(new HellsBrandScroll()); potionName = "hellish branding ooze"; } } if (extras == 2) { if (potionType == 40) { from.AddToBackpack(new ShieldOfEarthPotion()); potionName = "shield of earth liquid"; } else if (potionType == 41) { from.AddToBackpack(new WoodlandProtectionPotion()); potionName = "woodland protection oil"; } else if (potionType == 42) { from.AddToBackpack(new ProtectiveFairyPotion()); potionName = "fairy in a bottle"; } else if (potionType == 43) { from.AddToBackpack(new HerbalHealingPotion()); potionName = "herbal healing elixir"; } else if (potionType == 44) { from.AddToBackpack(new GraspingRootsPotion()); potionName = "grasping roots mixture"; } else if (potionType == 45) { from.AddToBackpack(new BlendWithForestPotion()); potionName = "forest blending oil"; } else if (potionType == 46) { from.AddToBackpack(new SwarmOfInsectsPotion()); potionName = "bottle of insects"; } else if (potionType == 47) { from.AddToBackpack(new VolcanicEruptionPotion()); potionName = "volcanic fluid"; } else if (potionType == 48) { from.AddToBackpack(new TreefellowPotion()); potionName = "treant fertilizer"; } else if (potionType == 49) { from.AddToBackpack(new StoneCirclePotion()); potionName = "stone rising concoction"; } else if (potionType == 50) { from.AddToBackpack(new DruidicRunePotion()); potionName = "druidic marking oil"; } else if (potionType == 51) { from.AddToBackpack(new LureStonePotion()); potionName = "stone in a bottle"; } else if (potionType == 52) { from.AddToBackpack(new NaturesPassagePotion()); potionName = "nature passage mixture"; } else if (potionType == 53) { from.AddToBackpack(new MushroomGatewayPotion()); potionName = "mushroom gateway growth"; } else if (potionType == 54) { from.AddToBackpack(new RestorativeSoilPotion()); potionName = "bottle of magical mud"; } else if (potionType == 55) { from.AddToBackpack(new FireflyPotion()); potionName = "bottle of fireflies"; } } if (potionName == "") { from.AddToBackpack(new BeverageBottle(BeverageType.Ale)); potionName = "ale"; } from.SendMessage("This seems to be a bottle of " + potionName + "."); } }