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); } }
public void DistributeLoot() { if (Map != Map.Felucca) { return; } List <Mobile> PlayersToGiveTo = new List <Mobile>(); List <AggressorInfo> list = Aggressors; for (int i = 0; i < list.Count; ++i) { AggressorInfo info = list[i]; if (info.Attacker.Player && info.Attacker.Alive && (DateTime.Now - info.LastCombatTime) < TimeSpan.FromSeconds(60.0) && !PlayersToGiveTo.Contains(info.Attacker)) { PlayersToGiveTo.Add(info.Attacker); } } list = Aggressed; for (int i = 0; i < list.Count; ++i) { AggressorInfo info = list[i]; if (info.Defender.Player && info.Defender.Alive && (DateTime.Now - info.LastCombatTime) < TimeSpan.FromSeconds(60.0) && !PlayersToGiveTo.Contains(info.Defender)) { PlayersToGiveTo.Add(info.Defender); } } if (PlayersToGiveTo.Count <= 0) { return; } if (Backpack == null) { return; } //ArrayList ItemsToGive = new ArrayList(); Item item = null; int rand = Utility.Random(200); if (rand == 0) { item = new LayerSashDeed(); } else if (rand <= 8) { item = new HolyDeedofBlessing(); } else if (rand <= 30) { item = new CursedClothingBlessDeed(); } else if (rand <= 80) { item = new ClothingBlessDeed(); } if (item != null) { if (item.Movable == false || item.LootType == LootType.Blessed || item.LootType == LootType.Newbied) { return; } PlayerMobile player = PlayersToGiveTo[Utility.Random(PlayersToGiveTo.Count)] as PlayerMobile; if (player != null && player.Backpack != null) { player.SendMessage("You have been given a special item."); player.Backpack.DropItem(item); } } }