public override void GiveSpecialItems(List <Mobile> eligibleMobs, List <double> eligibleMobScores, double totalScores) { double currentTestValue = 0.0; double roll = Utility.RandomDouble() * totalScores; if (0.05 > Utility.RandomDouble()) { for (int i = 0; i < eligibleMobScores.Count; i++) { currentTestValue += eligibleMobScores[i]; if (roll > currentTestValue) { continue; } var recipescroll = new RecipeScroll(Recipe.GetRandomRecipe()); if (eligibleMobs[i] is PlayerMobile && eligibleMobs[i].Backpack != null) { eligibleMobs[i].Backpack.DropItem(recipescroll); eligibleMobs[i].SendMessage(54, "You have received a recipe scroll!"); return; } } } }
public override void OnConfirmed(CollectionItem citem, int index) { Item item = null; if (citem.Type == typeof(RecipeScroll)) { switch (index) { default: case 3: item = new RecipeScroll((int)CarpRecipes.KotlBlackRod); break; case 4: item = new RecipeScroll((int)TinkerRecipes.DrSpectorLenses); break; case 5: item = new RecipeScroll((int)TinkerRecipes.KotlAutomatonHead); break; } } else if (citem.Type == typeof(TreasuresOfKotlRewardDeed)) { item = new TreasuresOfKotlRewardDeed(citem.Tooltip); } else if (citem.Type == typeof(TribalBanner)) { switch (index) { case 10: item = new TribalBanner(EodonTribe.Urali); break; case 11: item = new TribalBanner(EodonTribe.Barrab); break; case 12: item = new TribalBanner(EodonTribe.Sakkhra); break; case 13: item = new TribalBanner(EodonTribe.Barako); break; case 14: item = new TribalBanner(EodonTribe.Kurak); break; case 15: item = new TribalBanner(EodonTribe.Jukari); break; } } if (item != null) { if (User.Backpack == null || !User.Backpack.TryDropItem(User, item, false)) { User.SendLocalizedMessage(1074361); // The reward could not be given. Make sure you have room in your pack. item.Delete(); } else { User.SendLocalizedMessage(1073621); // Your reward has been placed in your backpack. User.PlaySound(0x5A7); } } else { base.OnConfirmed(citem, index); } PointsSystem.TreasuresOfKotlCity.DeductPoints(User, citem.Points); }
public static Item TinkerRecipe() { RecipeScroll recipe = null; if (0.01 > Utility.RandomDouble()) { recipe = new RecipeScroll(Utility.RandomList(450, 451, 452, 453)); } return(recipe); }
public static void CheckRecipeDrop(CreatureDeathEventArgs e) { BaseCreature bc = e.Creature as BaseCreature; var c = e.Corpse; var killer = e.Killer; if (SpellHelper.IsEodon(c.Map, c.Location)) { double chance = (double)bc.Fame / 1000000; int luck = 0; if (killer != null) { luck = Math.Min(1800, killer is PlayerMobile ? ((PlayerMobile)killer).RealLuck : killer.Luck); } if (luck > 0) { chance += (double)luck / 152000; } if (chance > Utility.RandomDouble()) { if (0.33 > Utility.RandomDouble()) { Item item = Server.Loot.Construct(_ArmorDropTypes[Utility.Random(_ArmorDropTypes.Length)]); if (item != null) { c.DropItem(item); } } else { Item scroll = new RecipeScroll(_RecipeTypes[Utility.Random(_RecipeTypes.Length)]); if (scroll != null) { c.DropItem(scroll); } } } } }
public override void OnConfirmed(CollectionItem citem, int index) { if (citem.Type == typeof(RecipeScroll)) { Item item; switch (citem.Tooltip.Number) { default: case 1158769: item = new RecipeScroll(605); break; case 1158770: item = new RecipeScroll(606); break; case 1158771: item = new RecipeScroll(607); break; case 1159204: item = new RecipeScroll(608); break; case 1159205: item = new RecipeScroll(609); break; case 1159206: item = new RecipeScroll(610); break; } if (item != null) { if (User.Backpack == null || !User.Backpack.TryDropItem(User, item, false)) { User.SendLocalizedMessage(1074361); // The reward could not be given. Make sure you have room in your pack. item.Delete(); } else { OnItemCreated(item); User.SendLocalizedMessage(1073621); // Your reward has been placed in your backpack. RemovePoints(citem.Points); User.PlaySound(0x5A8); } } } else { base.OnConfirmed(citem, index); } }
public override void OnConfirmed(CollectionItem citem, int index) { Item item = null; if (citem.Type == typeof(RecipeScroll)) { switch (index) { default: case 9: item = new RecipeScroll((int)TailorRecipe.CowlOfTheMaceAndShield); break; case 10: item = new RecipeScroll((int)TailorRecipe.MagesHoodOfScholarlyInsight); break; case 11: item = new RecipeScroll((int)TailorRecipe.ElegantCollarOfFortune); break; case 12: item = new RecipeScroll((int)TailorRecipe.CrimsonDaggerBelt); break; case 13: item = new RecipeScroll((int)TailorRecipe.CrimsonSwordBelt); break; case 14: item = new RecipeScroll((int)TailorRecipe.CrimsonMaceBelt); break; } } if (item != null) { if (User.Backpack == null || !User.Backpack.TryDropItem(User, item, false)) { User.SendLocalizedMessage(1074361); // The reward could not be given. Make sure you have room in your pack. item.Delete(); } else { User.SendLocalizedMessage(1073621); // Your reward has been placed in your backpack. User.PlaySound(0x5A7); } } else { base.OnConfirmed(citem, index); } PointsSystem.FellowshipData.DeductPoints(User, citem.Points); }
public override void OnDeath(Container c) { if (IsKrampusEncounter) { List <DamageStore> rights = GetLootingRights(); foreach (DamageStore ds in rights.Where(s => s.m_Mobile is PlayerMobile && s.m_HasRight)) { PlayerMobile m = ds.m_Mobile as PlayerMobile; int ordersComplete = 0; if (KrampusEvent.Instance.CompleteTable.ContainsKey(m)) { ordersComplete = KrampusEvent.Instance.CompleteTable[m]; } if (ordersComplete >= 3 || Utility.RandomMinMax(0, 8) <= ordersComplete) { Item item = null; switch (Utility.Random(13)) { case 0: item = new KrampusCoinPurse(m.Karma); break; case 1: item = new CardOfSemidar(Utility.RandomMinMax(0, 6)); break; case 2: item = new NiceTitleDeed(); break; case 3: item = new NaughtyTitleDeed(); break; case 4: item = new PunisherTitleDeed(); break; case 5: item = new RecipeScroll(586); break; // minion hat case 6: item = new RecipeScroll(587); break; // minion boots case 7: item = new KrampusCoinPurse(463); break; // minion talons case 8: item = new KrampusCoinPurse(588); break; // minion earrings case 9: item = new KrampusPunishinList(m.Name); break; case 10: item = new RecipeScroll(466); break; // barbed whip case 11: item = new RecipeScroll(467); break; // spiked whip case 12: item = new RecipeScroll(468); break; // bladed whip } if (item != null) { m.SendLocalizedMessage(1156269); // For your valor in defeating your foe a specialty item has been awarded to you! if (m.Backpack == null || !m.Backpack.TryDropItem(m, item, false)) { m.BankBox.DropItem(item); } } } } } base.OnDeath(c); }
public override void GiveSpecialItems(List <Mobile> eligibleMobs, List <double> eligibleMobScores, double totalScores) { double currentTestValue = 0.0; double roll = Utility.RandomDouble() * totalScores; if (0.05 > Utility.RandomDouble()) { for (int i = 0; i < eligibleMobScores.Count; i++) { currentTestValue += eligibleMobScores[i]; if (roll > currentTestValue) { continue; } var recipescroll = new RecipeScroll(Recipe.GetRandomRecipe()); if (eligibleMobs[i] is PlayerMobile && eligibleMobs[i].Backpack != null) { eligibleMobs[i].Backpack.DropItem(recipescroll); eligibleMobs[i].SendMessage(54, "You have received a recipe scroll!"); break; } } } if (0.1 > Utility.RandomDouble()) { for (int i = 0; i < eligibleMobScores.Count; i++) { currentTestValue += eligibleMobScores[i]; if (roll > currentTestValue) { continue; } if (eligibleMobs[i] is PlayerMobile && eligibleMobs[i].Backpack != null) { eligibleMobs[i].Backpack.DropItem(new TitleScroll("Locked and Loaded")); eligibleMobs[i].SendMessage(54, "You have received a title scroll."); break; } } } if (0.05 > Utility.RandomDouble()) { for (int i = 0; i < eligibleMobScores.Count; i++) { currentTestValue += eligibleMobScores[i]; if (roll > currentTestValue) { continue; } if (eligibleMobs[i] is PlayerMobile && eligibleMobs[i].Backpack != null) { eligibleMobs[i].Backpack.DropItem(new LeatherGloves() { Name = "Locke's Gloves", Hue = 4, Identified = true, Slayer = SlayerName.Silver, LootType = LootType.Blessed }); eligibleMobs[i].SendMessage(54, "You have received a pair of Locke Cole's gloves!"); return; } } } }