summaryrefslogtreecommitdiffstats
path: root/src/Mobs/Zombie.cpp
diff options
context:
space:
mode:
authorTheJumper <maximilian.springer@web.de>2014-02-21 18:45:00 +0100
committerTheJumper <maximilian.springer@web.de>2014-02-21 18:45:00 +0100
commit1b32b005626e7dd7e466358910d461bf5fb11a64 (patch)
tree28d1261dc2a00dff85c6a03328c3d78c3c4d8937 /src/Mobs/Zombie.cpp
parentBlockBed.cpp: Fixed space at if statement (diff)
downloadcuberite-1b32b005626e7dd7e466358910d461bf5fb11a64.tar
cuberite-1b32b005626e7dd7e466358910d461bf5fb11a64.tar.gz
cuberite-1b32b005626e7dd7e466358910d461bf5fb11a64.tar.bz2
cuberite-1b32b005626e7dd7e466358910d461bf5fb11a64.tar.lz
cuberite-1b32b005626e7dd7e466358910d461bf5fb11a64.tar.xz
cuberite-1b32b005626e7dd7e466358910d461bf5fb11a64.tar.zst
cuberite-1b32b005626e7dd7e466358910d461bf5fb11a64.zip
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);
}