public override void GenerateLoot() { if (Utility.Random(100) < 20) { Lantern lantern = new Lantern(); lantern.Hue = Utility.RandomMinMax(2113, 2118); PackItem(lantern); } if (Utility.Random(100) < 10) { Item item; switch (Utility.Random(111)) { case 0: item = new Tapestry6W(); break; case 1: item = new MetalChest(); break; case 2: item = new MetalGoldenChest(); break; case 3: item = new MetalBox(); break; case 4: item = new AniLargeVioletFlask(); break; case 5: item = new AniRedRibbedFlask(); break; case 6: item = new AniSmallBlueFlask(); break; case 7: item = new BlueBeaker(); break; case 8: item = new BlueCurvedFlask(); break; case 9: item = new EmptyVial(); break; case 10: item = new EmptyVialsWRack(); break; case 11: item = new LargeFlask(); break; case 12: item = new LargeVioletFlask(); break; //case 13: item = new HourGlass(); break; //case 14: item = new HourGlassAni(); break; case 15: item = new DecorativeDAxeWest(); break; case 16: item = new DecorativeDAxeNorth(); break; case 17: item = new DecorativeBowWest(); break; case 18: item = new DecorativeBowNorth(); break; case 19: item = new DecorativeAxeWest(); break; case 20: item = new DecorativeAxeNorth(); break; case 21: item = new DecorativeShieldSword2West(); break; case 22: item = new DecorativeShieldSword2North(); break; case 23: item = new DecorativeShieldSword1West(); break; case 24: item = new DecorativeShieldSword1North(); break; case 25: item = new DecorativeShield11(); break; case 26: item = new DecorativeShield10(); break; case 27: item = new DecorativeShield9(); break; case 28: item = new DecorativeShield8(); break; case 29: item = new DecorativeShield7(); break; case 30: item = new DecorativeShield6(); break; case 31: item = new DecorativeShield5(); break; case 32: item = new DecorativeShield4(); break; case 33: item = new DecorativeShield3(); break; case 34: item = new DecorativeShield2(); break; case 35: item = new DecorativeShield1(); break; case 36: item = new Whip(); break; case 37: item = new SilverWire(); break; case 38: item = new Rope(); break; case 39: item = new PaintsAndBrush(); break; case 40: item = new IronWire(); break; case 41: item = new GoldWire(); break; case 42: item = new CopperWire(); break; case 43: item = new WoodDebris(); break; case 44: item = new RuinedPainting(); break; case 45: item = new RuinedFallenChairB(); break; case 46: item = new FullVialsWRack(); break; case 47: item = new FullJar(); break; case 48: item = new FullJars2(); break; case 49: item = new FullJars3(); break; case 50: item = new FullJars4(); break; case 51: item = new GreenBeaker(); break; case 52: item = new GreenBottle(); break; case 53: item = new VioletStemmedBottle(); break; case 54: item = new SpinningHourglass(); break; case 55: item = new ArcheryButte(); break; case 56: item = new PhillipsWoodenSteed(); break; case 57: item = new PileOfGlacialSnow(); break; case 58: item = new RedPoinsettia(); break; case 59: item = new RoseOfTrinsic(); break; case 60: item = new RaiseSwitch(); break; case 61: item = new SpecialFishingNet(); break; case 62: item = new SpecialHairDye(); break; case 63: item = new SpecialBeardDye(); break; case 64: item = new SnowPile(); break; case 65: item = new StatueEast2(); break; case 66: item = new StatuePegasus2(); break; case 67: item = new StatueSouth2(); break; case 68: item = new StatueSouthEast(); break; case 69: item = new StatuetteDyeTub(); break; case 70: item = new StatueWest(); break; case 71: item = new TapestryOfSosaria(); break; case 72: item = new WhitePoinsettia(); break; case 73: item = new WindChimes(); break; case 74: item = new ZoogiFungus(); break; case 75: item = new RuinedFallenChairA(); break; case 76: item = new RuinedDrawers(); break; case 77: item = new RuinedClock(); break; case 78: item = new RuinedChair(); break; case 79: item = new RuinedBooks(); break; case 80: item = new RuinedBookcase(); break; case 81: item = new RuinedArmoire(); break; case 82: item = new SmallStretchedHideSouthDeed(); break; case 83: item = new SmallStretchedHideEastDeed(); break; case 84: item = new PolarBearRugSouthDeed(); break; case 85: item = new PolarBearRugEastDeed(); break; case 86: item = new MediumStretchedHideSouthDeed(); break; case 87: item = new MediumStretchedHideEastDeed(); break; case 88: item = new LightFlowerTapestrySouthDeed(); break; case 89: item = new LightFlowerTapestryEastDeed(); break; case 90: item = new DarkFlowerTapestrySouthDeed(); break; case 91: item = new DarkFlowerTapestryEastDeed(); break; case 92: item = new BrownBearRugSouthDeed(); break; case 93: item = new BrownBearRugEastDeed(); break; case 94: item = new WallSconce(); break; case 95: item = new WallTorch(); break; case 96: item = new CandleShort(); break; case 97: item = new CandleLarge(); break; case 98: item = new DecorativeSwordNorth(); break; case 99: item = new DecorativeSwordWest(); break; case 100: item = new Tapestry1N(); break; case 101: item = new Tapestry2N(); break; case 102: item = new Tapestry2W(); break; case 103: item = new Tapestry3N(); break; case 104: item = new Tapestry3W(); break; case 105: item = new Tapestry4N(); break; case 106: item = new Tapestry4W(); break; case 107: item = new Tapestry5N(); break; case 108: item = new Tapestry5W(); break; case 109: item = new Tapestry6N(); break; default: item = new CandleSkull(); break; } item.LootType = LootType.Regular; item.Movable = true; PackItem(item); } }
private void GiveMagicItems() { ArrayList toGive = new ArrayList(); LogHelper Logger = new LogHelper("HarrowerLoot.log", false); ArrayList allNonExpiredPMDamageEntries = new ArrayList(); //New Looting method (Pix: 4/8/06) for (int i = 0; i < DamageEntries.Count; i++) { DamageEntry de = DamageEntries[i] as DamageEntry; if (de != null) { Logger.Log(LogType.Text, string.Format("DE[{0}]: {1} ({2})", i, de.Damager, de.Damager != null ? de.Damager.Name : "")); if (de.HasExpired) { Logger.Log(LogType.Text, string.Format("DE[{0}]: Expired", i)); } else { if (de.Damager != null && !de.Damager.Deleted) { if (de.Damager is BaseCreature) { Logger.Log(LogType.Text, string.Format("DE[{0}]: BaseCreature", i)); BaseCreature bc = (BaseCreature)de.Damager; if (bc.ControlMaster != null && !bc.ControlMaster.Deleted) { //de.Damager = bc.ControlMaster; DamageEntry cmde = new DamageEntry(bc.ControlMaster); cmde.DamageGiven = de.DamageGiven; de = cmde; Logger.Log(LogType.Text, string.Format("DE[{0}]: New Damager: {1}", i, de.Damager.Name)); } } if (de.Damager is PlayerMobile) { Logger.Log(LogType.Text, string.Format("DE[{0}]: PlayerMobile", i)); if (de.Damager.Alive) { Logger.Log(LogType.Text, string.Format("DE[{0}]: PM Alive", i)); bool bFound = false; for (int j = 0; j < allNonExpiredPMDamageEntries.Count; j++) { DamageEntry de2 = (DamageEntry)allNonExpiredPMDamageEntries[j]; if (de2.Damager == de.Damager) { Logger.Log(LogType.Text, string.Format("DE[{0}]: PM Found, adding damage", i)); de2.DamageGiven += de.DamageGiven; bFound = true; break; } } if (!bFound) { Logger.Log(LogType.Text, string.Format("DE[{0}]: PM not found, adding", i)); allNonExpiredPMDamageEntries.Add(de); } } } } } } } //Remove any PMs that are over 100 tiles away ArrayList toRemove = new ArrayList(); for (int i = 0; i < allNonExpiredPMDamageEntries.Count; i++) { DamageEntry de = (DamageEntry)allNonExpiredPMDamageEntries[i]; if (de.Damager.GetDistanceToSqrt(this.Location) > 100) { Logger.Log(LogType.Text, string.Format("Removing {0} for being too far away at death", de.Damager.Name)); toRemove.Add(allNonExpiredPMDamageEntries[i]); } } for (int i = 0; i < toRemove.Count; i++) { allNonExpiredPMDamageEntries.Remove(toRemove[i]); } int topDamage = 0; int minDamage = 0; for (int i = 0; i < allNonExpiredPMDamageEntries.Count; i++) { DamageEntry de = (DamageEntry)allNonExpiredPMDamageEntries[i]; if (de.DamageGiven > topDamage) { topDamage = de.DamageGiven; } Logger.Log(LogType.Text, string.Format("Non-Expired[{0}]: {1} (damage: {2})", i, de.Damager.Name, de.DamageGiven)); } //Now filter on 'enough' damage if (HitsMax >= 3000) { minDamage = topDamage / 16; } else if (HitsMax >= 1000) { minDamage = topDamage / 8; } else if (HitsMax >= 200) { minDamage = topDamage / 4; } else { minDamage = topDamage / 2; } Logger.Log(LogType.Text, string.Format("HitsMax: {0}, TopDamage: {1}, MinDamage: {2}", HitsMax, topDamage, minDamage)); for (int i = 0; i < allNonExpiredPMDamageEntries.Count; i++) { DamageEntry de = (DamageEntry)allNonExpiredPMDamageEntries[i]; if (de.DamageGiven >= minDamage) { toGive.Add(de.Damager); } } if (toGive.Count == 0) { return; } // Randomize for (int i = 0; i < toGive.Count; ++i) { int rand = Utility.Random(toGive.Count); object hold = toGive[i]; toGive[i] = toGive[rand]; toGive[rand] = hold; } Logger.Log(LogType.Text, ""); // new line Logger.Log(LogType.Text, "Randomized list of players:"); for (int i = 0; i < toGive.Count; ++i) { Mobile mob = toGive[i] as Mobile; Logger.Log(LogType.Mobile, mob, "alive:" + mob.Alive.ToString()); } Logger.Log(LogType.Text, ""); // new line Logger.Log(LogType.Text, "Begin loot distribution: Who/What:"); // Loop goes until we've generated MaxGifts items. for (int i = 0; i < MaxGifts; ++i) { Item reward = null; Mobile m = (Mobile)toGive[i % toGive.Count]; switch (Utility.Random(10)) { case 0: // Power/Vanq Weapon case 1: case 2: // 3 in 10 chance { // 33% chance at best reward = CreateWeapon((0.32 >= Utility.RandomDouble()) ? 5 : 4); break; } case 3: // Fort/Invul Armor case 4: case 5: // 3 in 10 chance { // 33% chance at best reward = CreateArmor((0.32 >= Utility.RandomDouble()) ? 5 : 4); break; } case 6: // hair/beard dye { // 1 in 10 chance if (Utility.RandomBool()) { reward = new SpecialHairDye(); } else { reward = new SpecialBeardDye(); } break; } case 7: // special cloth { // 1 in 10 chance reward = new UncutCloth(50); if (Utility.RandomBool()) { // best ore hues (vet rewards) + really dark 'evil cloth' reward.Hue = Utility.RandomList(2213, 2219, 2207, 2425, 1109); } else { reward.Hue = 0x01; // black cloth } break; } case 8: // potted plant { // 1 in 10 chance switch (Utility.Random(11)) { default: // should never happen case 0: reward = new PottedCactus(); break; case 1: reward = new PottedCactus1(); break; case 2: reward = new PottedCactus2(); break; case 3: reward = new PottedCactus3(); break; case 4: reward = new PottedCactus4(); break; case 5: reward = new PottedCactus5(); break; case 6: reward = new PottedPlant(); break; case 7: reward = new PottedPlant1(); break; case 8: reward = new PottedPlant2(); break; case 9: reward = new PottedTree(); break; case 10: reward = new PottedTree1(); break; } break; } default: // Should never happen /* fall through*/ case 9: // Magic Item Drop { // 1 in 10 chance reward = Loot.RandomClothingOrJewelry(); if (reward != null) { int minLevel = 3; int maxLevel = 3; if (reward is BaseClothing) { ((BaseClothing)reward).SetRandomMagicEffect(minLevel, maxLevel); } else if (reward is BaseJewel) { ((BaseJewel)reward).SetRandomMagicEffect(minLevel, maxLevel); } } break; } } if (reward != null) { // Drop the new weapon into their backpack and send them a message. m.SendMessage("You have received a special item!"); m.AddToBackpack(reward); Logger.Log(LogType.Mobile, m, "alive:" + m.Alive.ToString()); Logger.Log(LogType.Item, reward, string.Format("Hue:{0}:Rare:{1}", reward.Hue, (reward is BaseWeapon || reward is BaseArmor || reward is BaseClothing || reward is BaseJewel) ? "False" : "True")); } } // done logging Logger.Finish(); }
public override void GenerateLoot() { if (Utility.Random(100) <= 20) { int hue = Utility.RandomMinMax(1, 1001); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 10) { int hue = Utility.RandomMinMax(1, 1001); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 5) { int hue = Utility.RandomMinMax(1, 1001); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 5) { int hue = Utility.RandomMinMax(1201, 1255); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 2) { int hue = Utility.RandomMinMax(2101, 2130); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 1) { int hue = 2936; Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(1000) <= 2) { int hue; Sandals sandals = new Sandals(); switch (Utility.Random(7)) { case 0: hue = 1155; break; case 1: hue = 1156; break; case 2: hue = 1157; break; case 3: hue = 1158; break; case 4: hue = 1160; break; case 5: hue = 1172; break; default: hue = 1175; break; } sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(1000) <= 2) { int hue; Sandals sandals = new Sandals(); switch (Utility.Random(5)) { case 0: hue = 1176; break; case 1: hue = 1171; break; case 2: hue = 1159; break; case 3: hue = 1170; break; default: hue = 1161; break; } sandals.Hue = hue; PackItem(sandals); } double chance = Utility.RandomDouble(); if (chance <= 0.10) { Seed seed; PlantType type; switch (Utility.Random(17)) { case 0: type = PlantType.CampionFlowers; break; case 1: type = PlantType.Poppies; break; case 2: type = PlantType.Snowdrops; break; case 3: type = PlantType.Bulrushes; break; case 4: type = PlantType.Lilies; break; case 5: type = PlantType.PampasGrass; break; case 6: type = PlantType.Rushes; break; case 7: type = PlantType.ElephantEarPlant; break; case 8: type = PlantType.Fern; break; case 9: type = PlantType.PonytailPalm; break; case 10: type = PlantType.SmallPalm; break; case 11: type = PlantType.CenturyPlant; break; case 12: type = PlantType.WaterPlant; break; case 13: type = PlantType.SnakePlant; break; case 14: type = PlantType.PricklyPearCactus; break; case 15: type = PlantType.BarrelCactus; break; default: type = PlantType.TribarrelCactus; break; } PlantHue hue; switch (Utility.Random(19)) { case 0: hue = PlantHue.Plain; break; case 1: hue = PlantHue.Red; break; case 2: hue = PlantHue.Blue; break; case 3: hue = PlantHue.Yellow; break; case 4: hue = PlantHue.BrightRed; break; case 5: hue = PlantHue.BrightBlue; break; case 6: hue = PlantHue.BrightYellow; break; case 7: hue = PlantHue.Purple; break; case 8: hue = PlantHue.Green; break; case 9: hue = PlantHue.Orange; break; case 10: hue = PlantHue.BrightPurple; break; case 11: hue = PlantHue.BrightGreen; break; case 12: hue = PlantHue.BrightOrange; break; case 13: hue = PlantHue.Black; break; case 14: hue = PlantHue.White; break; case 15: hue = PlantHue.Pink; break; case 16: hue = PlantHue.Magenta; break; case 17: hue = PlantHue.Aqua; break; default: hue = PlantHue.FireRed; break; } seed = new Seed(type, hue, false); PackItem(seed); if (Utility.Random(500) == 1) { PackItem(new BlackDyeTub()); } if (Utility.Random(100) < 15) { Item item; switch (Utility.Random(111)) { case 0: item = new Tapestry6W(); break; case 1: item = new MetalChest(); break; case 2: item = new MetalGoldenChest(); break; case 3: item = new MetalBox(); break; case 4: item = new AniLargeVioletFlask(); break; case 5: item = new AniRedRibbedFlask(); break; case 6: item = new AniSmallBlueFlask(); break; case 7: item = new BlueBeaker(); break; case 8: item = new BlueCurvedFlask(); break; case 9: item = new EmptyVial(); break; case 10: item = new EmptyVialsWRack(); break; case 11: item = new LargeFlask(); break; case 12: item = new LargeVioletFlask(); break; //case 13: item = new HourGlass(); break; //case 14: item = new HourGlassAni(); break; case 15: item = new DecorativeDAxeWest(); break; case 16: item = new DecorativeDAxeNorth(); break; case 17: item = new DecorativeBowWest(); break; case 18: item = new DecorativeBowNorth(); break; case 19: item = new DecorativeAxeWest(); break; case 20: item = new DecorativeAxeNorth(); break; case 21: item = new DecorativeShieldSword2West(); break; case 22: item = new DecorativeShieldSword2North(); break; case 23: item = new DecorativeShieldSword1West(); break; case 24: item = new DecorativeShieldSword1North(); break; case 25: item = new DecorativeShield11(); break; case 26: item = new DecorativeShield10(); break; case 27: item = new DecorativeShield9(); break; case 28: item = new DecorativeShield8(); break; case 29: item = new DecorativeShield7(); break; case 30: item = new DecorativeShield6(); break; case 31: item = new DecorativeShield5(); break; case 32: item = new DecorativeShield4(); break; case 33: item = new DecorativeShield3(); break; case 34: item = new DecorativeShield2(); break; case 35: item = new DecorativeShield1(); break; case 36: item = new Whip(); break; case 37: item = new SilverWire(); break; case 38: item = new Rope(); break; case 39: item = new PaintsAndBrush(); break; case 40: item = new IronWire(); break; case 41: item = new GoldWire(); break; case 42: item = new CopperWire(); break; case 43: item = new WoodDebris(); break; case 44: item = new RuinedPainting(); break; case 45: item = new RuinedFallenChairB(); break; case 46: item = new FullVialsWRack(); break; case 47: item = new FullJar(); break; case 48: item = new FullJars2(); break; case 49: item = new FullJars3(); break; case 50: item = new FullJars4(); break; case 51: item = new GreenBeaker(); break; case 52: item = new GreenBottle(); break; case 53: item = new VioletStemmedBottle(); break; case 54: item = new SpinningHourglass(); break; case 55: item = new ArcheryButte(); break; case 56: item = new PhillipsWoodenSteed(); break; case 57: item = new PileOfGlacialSnow(); break; case 58: item = new RedPoinsettia(); break; case 59: item = new RoseOfTrinsic(); break; case 60: item = new RaiseSwitch(); break; case 61: item = new SpecialFishingNet(); break; case 62: item = new SpecialHairDye(); break; case 63: item = new SpecialBeardDye(); break; case 64: item = new SnowPile(); break; case 65: item = new StatueEast2(); break; case 66: item = new StatuePegasus2(); break; case 67: item = new StatueSouth2(); break; case 68: item = new StatueSouthEast(); break; case 69: item = new StatuetteDyeTub(); break; case 70: item = new StatueWest(); break; case 71: item = new TapestryOfSosaria(); break; case 72: item = new WhitePoinsettia(); break; case 73: item = new WindChimes(); break; case 74: item = new ZoogiFungus(); break; case 75: item = new RuinedFallenChairA(); break; case 76: item = new RuinedDrawers(); break; case 77: item = new RuinedClock(); break; case 78: item = new RuinedChair(); break; case 79: item = new RuinedBooks(); break; case 80: item = new RuinedBookcase(); break; case 81: item = new RuinedArmoire(); break; case 82: item = new SmallStretchedHideSouthDeed(); break; case 83: item = new SmallStretchedHideEastDeed(); break; case 84: item = new PolarBearRugSouthDeed(); break; case 85: item = new PolarBearRugEastDeed(); break; case 86: item = new MediumStretchedHideSouthDeed(); break; case 87: item = new MediumStretchedHideEastDeed(); break; case 88: item = new LightFlowerTapestrySouthDeed(); break; case 89: item = new LightFlowerTapestryEastDeed(); break; case 90: item = new DarkFlowerTapestrySouthDeed(); break; case 91: item = new DarkFlowerTapestryEastDeed(); break; case 92: item = new BrownBearRugSouthDeed(); break; case 93: item = new BrownBearRugEastDeed(); break; case 94: item = new WallSconce(); break; case 95: item = new WallTorch(); break; case 96: item = new CandleShort(); break; case 97: item = new CandleLarge(); break; case 98: item = new DecorativeSwordNorth(); break; case 99: item = new DecorativeSwordWest(); break; case 100: item = new Tapestry1N(); break; case 101: item = new Tapestry2N(); break; case 102: item = new Tapestry2W(); break; case 103: item = new Tapestry3N(); break; case 104: item = new Tapestry3W(); break; case 105: item = new Tapestry4N(); break; case 106: item = new Tapestry4W(); break; case 107: item = new Tapestry5N(); break; case 108: item = new Tapestry5W(); break; case 109: item = new Tapestry6N(); break; default: item = new CandleSkull(); break; } item.LootType = LootType.Regular; item.Movable = true; PackItem(item); } if (Utility.Random(100) < 10) { Item item; switch (Utility.Random(111)) { case 0: item = new Tapestry6W(); break; case 1: item = new MetalChest(); break; case 2: item = new MetalGoldenChest(); break; case 3: item = new MetalBox(); break; case 4: item = new AniLargeVioletFlask(); break; case 5: item = new AniRedRibbedFlask(); break; case 6: item = new AniSmallBlueFlask(); break; case 7: item = new BlueBeaker(); break; case 8: item = new BlueCurvedFlask(); break; case 9: item = new EmptyVial(); break; case 10: item = new EmptyVialsWRack(); break; case 11: item = new LargeFlask(); break; case 12: item = new LargeVioletFlask(); break; //case 13: item = new HourGlass(); break; //case 14: item = new HourGlassAni(); break; case 15: item = new DecorativeDAxeWest(); break; case 16: item = new DecorativeDAxeNorth(); break; case 17: item = new DecorativeBowWest(); break; case 18: item = new DecorativeBowNorth(); break; case 19: item = new DecorativeAxeWest(); break; case 20: item = new DecorativeAxeNorth(); break; case 21: item = new DecorativeShieldSword2West(); break; case 22: item = new DecorativeShieldSword2North(); break; case 23: item = new DecorativeShieldSword1West(); break; case 24: item = new DecorativeShieldSword1North(); break; case 25: item = new DecorativeShield11(); break; case 26: item = new DecorativeShield10(); break; case 27: item = new DecorativeShield9(); break; case 28: item = new DecorativeShield8(); break; case 29: item = new DecorativeShield7(); break; case 30: item = new DecorativeShield6(); break; case 31: item = new DecorativeShield5(); break; case 32: item = new DecorativeShield4(); break; case 33: item = new DecorativeShield3(); break; case 34: item = new DecorativeShield2(); break; case 35: item = new DecorativeShield1(); break; case 36: item = new Whip(); break; case 37: item = new SilverWire(); break; case 38: item = new Rope(); break; case 39: item = new PaintsAndBrush(); break; case 40: item = new IronWire(); break; case 41: item = new GoldWire(); break; case 42: item = new CopperWire(); break; case 43: item = new WoodDebris(); break; case 44: item = new RuinedPainting(); break; case 45: item = new RuinedFallenChairB(); break; case 46: item = new FullVialsWRack(); break; case 47: item = new FullJar(); break; case 48: item = new FullJars2(); break; case 49: item = new FullJars3(); break; case 50: item = new FullJars4(); break; case 51: item = new GreenBeaker(); break; case 52: item = new GreenBottle(); break; case 53: item = new VioletStemmedBottle(); break; case 54: item = new SpinningHourglass(); break; case 55: item = new ArcheryButte(); break; case 56: item = new PhillipsWoodenSteed(); break; case 57: item = new PileOfGlacialSnow(); break; case 58: item = new RedPoinsettia(); break; case 59: item = new RoseOfTrinsic(); break; case 60: item = new RaiseSwitch(); break; case 61: item = new SpecialFishingNet(); break; case 62: item = new SpecialHairDye(); break; case 63: item = new SpecialBeardDye(); break; case 64: item = new SnowPile(); break; case 65: item = new StatueEast2(); break; case 66: item = new StatuePegasus2(); break; case 67: item = new StatueSouth2(); break; case 68: item = new StatueSouthEast(); break; case 69: item = new StatuetteDyeTub(); break; case 70: item = new StatueWest(); break; case 71: item = new TapestryOfSosaria(); break; case 72: item = new WhitePoinsettia(); break; case 73: item = new WindChimes(); break; case 74: item = new ZoogiFungus(); break; case 75: item = new RuinedFallenChairA(); break; case 76: item = new RuinedDrawers(); break; case 77: item = new RuinedClock(); break; case 78: item = new RuinedChair(); break; case 79: item = new RuinedBooks(); break; case 80: item = new RuinedBookcase(); break; case 81: item = new RuinedArmoire(); break; case 82: item = new SmallStretchedHideSouthDeed(); break; case 83: item = new SmallStretchedHideEastDeed(); break; case 84: item = new PolarBearRugSouthDeed(); break; case 85: item = new PolarBearRugEastDeed(); break; case 86: item = new MediumStretchedHideSouthDeed(); break; case 87: item = new MediumStretchedHideEastDeed(); break; case 88: item = new LightFlowerTapestrySouthDeed(); break; case 89: item = new LightFlowerTapestryEastDeed(); break; case 90: item = new DarkFlowerTapestrySouthDeed(); break; case 91: item = new DarkFlowerTapestryEastDeed(); break; case 92: item = new BrownBearRugSouthDeed(); break; case 93: item = new BrownBearRugEastDeed(); break; case 94: item = new WallSconce(); break; case 95: item = new WallTorch(); break; case 96: item = new CandleShort(); break; case 97: item = new CandleLarge(); break; case 98: item = new DecorativeSwordNorth(); break; case 99: item = new DecorativeSwordWest(); break; case 100: item = new Tapestry1N(); break; case 101: item = new Tapestry2N(); break; case 102: item = new Tapestry2W(); break; case 103: item = new Tapestry3N(); break; case 104: item = new Tapestry3W(); break; case 105: item = new Tapestry4N(); break; case 106: item = new Tapestry4W(); break; case 107: item = new Tapestry5N(); break; case 108: item = new Tapestry5W(); break; case 109: item = new Tapestry6N(); break; default: item = new CandleSkull(); break; } item.LootType = LootType.Regular; item.Movable = true; PackItem(item); } } }
public override void OnDeath(Container c) { base.OnDeath(c); if (!Summoned && !NoKillAwards && DemonKnight.CheckArtifactChance(this)) { DemonKnight.DistributeArtifact(this); } if (0.75 > Utility.RandomDouble()) { int r = Utility.Random(100); Item drop = null; if (r < 1) { drop = new LayerSashDeed(); } else if (r < 4) { drop = new SpecialQuestSandals(); } else if (r < 6) { drop = new RareCreamCarpet(PieceType.Centre); } else if (r < 8) { drop = new RareBlueCarpet(PieceType.Centre); } else if (r < 10) { drop = new RareBloodCarpet(PieceType.Centre); } else if (r < 12) { drop = new BasicBlueCarpet(PieceType.Centre); } else if (r < 14) { drop = new BasicPinkCarpet(PieceType.Centre); } else if (r < 29) { drop = new BloodPentagramPart(Utility.Random(5)); } else if (r < 30) { drop = new ClothingBlessDeed(); } else if (r < 35) { drop = new MysteriousCloth(); } else if (r < 40) { drop = new SpecialHairDye(); } else if (r < 45) { drop = new SpecialBeardDye(); } else if (r < 50) { drop = new NameChangeDeed(); } else if (r < 65) { drop = new SkillTunic(); } else if (r < 80) { drop = new TamersCrook(); } else if (r < 85) { drop = new HeroShield(); } else if (r < 88) { drop = new EvilShield(); } else if (r < 91) { drop = new MondainHat(); } else if (r < 94) { drop = new PlatinGloves(); } else if (r < 96) { drop = new AncientSamuraiHelm(); } else if (r < 98) { drop = Utility.RandomBool() ? (Item)(new MirrorEast()) : (Item)(new MirrorNorth()); } else { drop = Utility.RandomBool() ? (Item)(new BoneBenchEastPart()) : (Item)(new BoneBenchWestPart()); } c.DropItem(drop); } }