summaryrefslogtreecommitdiffstats
path: root/src/Mobs/Zombie.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Mobs/Zombie.cpp')
-rw-r--r--src/Mobs/Zombie.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/Mobs/Zombie.cpp b/src/Mobs/Zombie.cpp
index 27e8ed5fb..72373266a 100644
--- a/src/Mobs/Zombie.cpp
+++ b/src/Mobs/Zombie.cpp
@@ -23,9 +23,18 @@ cZombie::cZombie(bool a_IsVillagerZombie) :
void cZombie::GetDrops(cItems & a_Drops, cEntity * a_Killer)
{
- AddRandomDropItem(a_Drops, 0, 2, E_ITEM_ROTTEN_FLESH);
-
- // TODO: Rare drops
+ int LootingLevel = a_Killer->GetEquippedWeapon().m_Enchantments.GetLevel(21);
+ AddRandomDropItem(a_Drops, 0, 2 + LootingLevel, E_ITEM_ROTTEN_FLESH);
+ cItems RareDrops;
+ RareDrops.Add(cItem(E_ITEM_IRON));
+ RareDrops.Add(cItem(E_ITEM_CARROT));
+ RareDrops.Add(cItem(E_ITEM_POTATO));
+ if (!GetEquippedHelmet().IsEmpty()) RareDrops.Add(GetEquippedHelmet());
+ if (!GetEquippedChestplate().IsEmpty()) RareDrops.Add(GetEquippedChestplate());
+ if (!GetEquippedLeggings().IsEmpty()) RareDrops.Add(GetEquippedLeggings());
+ if (!GetEquippedBoots().IsEmpty()) RareDrops.Add(GetEquippedBoots());
+ if (!GetEquippedWeapon().IsEmpty()) RareDrops.Add(GetEquippedWeapon());
+ AddRandomRareDropItem(a_Drops, RareDrops, LootingLevel);
}