public override bool OnBeforeDeath()
{
int treasureLevel = TreasureMapLevel;
if (treasureLevel == 1 && this.Map == Map.Trammel && TreasureMap.IsInHavenIsland(this))
{
Mobile killer = this.LastKiller;
if (killer is BaseCreature)
killer = ((BaseCreature)killer).GetMaster();
if (killer is PlayerMobile && ((PlayerMobile)killer).Young)
treasureLevel = 0;
}
if (!Summoned && !NoKillAwards && !IsBonded && treasureLevel >= 0)
{
if (m_Paragon && Paragon.ChestChance > Utility.RandomDouble())
PackItem(new ParagonChest(this.Name, treasureLevel));
else if ((Map == Map.Felucca || Map == Map.Trammel) && TreasureMap.LootChance >= Utility.RandomDouble())
PackItem(new TreasureMap(treasureLevel, Map));
}
if (!Summoned && !NoKillAwards && !m_HasGeneratedLoot)
{
m_HasGeneratedLoot = true;
GenerateLoot(false);
}
if (!NoKillAwards && Region.IsPartOf("Doom"))
{
int bones = Engines.Quests.Doom.TheSummoningQuest.GetDaemonBonesFor(this);
if (bones > 0)
PackItem(new DaemonBone(bones));
}
if (IsAnimatedDead)
Effects.SendLocationEffect(Location, Map, 0x3728, 13, 1, 0x461, 4);
InhumanSpeech speechType = this.SpeechType;
if (speechType != null)
speechType.OnDeath(this);
if (m_ReceivedHonorContext != null)
m_ReceivedHonorContext.OnTargetKilled();
if( Utility.RandomDouble() < 0.20 ) // 20% chance
{
switch ( Utility.Random(1) ) // your list of items
{
case 0: AddToBackpack(new ChainLegs()); break;
// case 1: AddToBackpack(new AngelicEmbrace()); break;
// case 2: AddToBackpack(new AngeroftheGods()); break;
// case 3: AddToBackpack(new Annihilation()); break;
// case 4: AddToBackpack(new ArcanicRobe()); break;
// case 5: AddToBackpack(new ArmsOfToxicity()); break;
// case 6: AddToBackpack(new BookOfKnowledge()); break;
// case 7: AddToBackpack(new CircletOfTheSorceress()); break;
// case 8: AddToBackpack(new DarkGuardiansChest()); break;
// case 9: AddToBackpack(new DarkLordsPitchfork()); break;
// case 10: AddToBackpack(new DarkNeck()); break;
// case 11: AddToBackpack(new DeathsMask()); break;
// case 12: AddToBackpack(new DupresCollar()); break;
// case 13: AddToBackpack(new EvilMageGloves()); break;
// case 14: AddToBackpack(new EyesOfHate()); break;
// case 15: AddToBackpack(new FalseGodsScepter()); break;
// case 16: AddToBackpack(new FesteringWound()); break;
// case 17: AddToBackpack(new Fortifiedarms()); break;
// case 18: AddToBackpack(new FortunateBlades()); break;
// case 19: AddToBackpack(new FurCapeOfTheSorceress()); break;
// case 20: AddToBackpack(new Fury()); break;
// case 21: AddToBackpack(new GeishasObi()); break;
// case 22: AddToBackpack(new GlovesOfCorruption()); break;
// case 23: AddToBackpack(new Frostbringer()); break;
// case 24: AddToBackpack(new GlovesOfRegeneration()); break;
// case 25: AddToBackpack(new HellForgedArms()); break;
// case 26: AddToBackpack(new Indecency()); break;
// case 27: AddToBackpack(new JadeScimitar()); break;
// case 28: AddToBackpack(new JinBaoriOfGoodFortune()); break;
// case 29: AddToBackpack(new KamiNarisIndestructableDoubleAxe()); break;
// case 30: AddToBackpack(new LeggingsOfDeceit()); break;
// case 31: AddToBackpack(new LeggingsOfEnlightenment()); break;
// case 32: AddToBackpack(new LensesOfFocus()); break;
// case 33: AddToBackpack(new LongShot()); break;
// case 34: AddToBackpack(new LuckyEarrings()); break;
// case 35: AddToBackpack(new MadmansHatchet()); break;
// case 36: AddToBackpack(new MagesBand()); break;
// case 37: AddToBackpack(new MagiciansIllusion()); break;
// case 38: AddToBackpack(new MagiciansMempo()); break;
// case 39: AddToBackpack(new MarbleShield()); break;
// case 40: AddToBackpack(new MauloftheBeast()); break;
// case 41: AddToBackpack(new MerlinsPants()); break;
// case 42: AddToBackpack(new MinersPickaxe()); break;
// case 43: AddToBackpack(new NordicVikingSword()); break;
// case 44: AddToBackpack(new NoxBow()); break;
// case 45: AddToBackpack(new Pestilence()); break;
// case 46: AddToBackpack(new RamusNecromanticScalpel()); break;
// case 47: AddToBackpack(new Retort()); break;
// case 48: AddToBackpack(new RobeOfTreason()); break;
// case 49: AddToBackpack(new RoyalArchersBow()); break;
// case 50: AddToBackpack(new RoyalGuardsChestplate()); break;
// case 51: AddToBackpack(new RoyalGuardsGorget()); break;
// case 52: AddToBackpack(new SamuraiBokuto()); break;
// case 53: AddToBackpack(new ShadowBlade()); break;
// case 54: AddToBackpack(new ShimmeringTalisman()); break;
// case 55: AddToBackpack(new SprintersSandals()); break;
// case 56: AddToBackpack(new SwiftStrike()); break;
// case 57: AddToBackpack(new TownGuardsHalberd()); break;
// case 58: AddToBackpack(new WarriorsClasp()); break;
// case 59: AddToBackpack(new YashimotosHatsuburi()); break;
}
}
return base.OnBeforeDeath();
if (!Summoned && !NoKillAwards && !IsBonded)
{
if (treasureLevel >= 0)
{
if (m_Paragon && XmlParagon.GetChestChance(this) > Utility.RandomDouble())
{
XmlParagon.AddChest(this, treasureLevel);
}
else if ((Map == Map.Felucca || Map == Map.Trammel) && TreasureMap.LootChance >= Utility.RandomDouble())
{
PackItem(new TreasureMap(treasureLevel, Map));
}
}
if (m_Paragon && Paragon.ChocolateIngredientChance > Utility.RandomDouble())
{
switch (Utility.Random(4))
{
case 0:
PackItem(new CocoaButter());
break;
case 1:
PackItem(new CocoaLiquor());
break;
case 2:
PackItem(new SackOfSugar());
break;
case 3:
PackItem(new Vanilla());
break;
}
}
}
if (!Summoned && !NoKillAwards && !m_HasGeneratedLoot)
{
m_HasGeneratedLoot = true;
GenerateLoot(false);
}
if (!NoKillAwards && Region.IsPartOf("Doom"))
{
int bones = TheSummoningQuest.GetDaemonBonesFor(this);
if (bones > 0)
{
PackItem(new DaemonBone(bones));
}
}
if (IsAnimatedDead)
{
Effects.SendLocationEffect(Location, Map, 0x3728, 13, 1, 0x461, 4);
}
InhumanSpeech speechType = SpeechType;
if (speechType != null)
{
speechType.OnDeath(this);
}
if (m_ReceivedHonorContext != null)
{
m_ReceivedHonorContext.OnTargetKilled();
}
return base.OnBeforeDeath();
}