summaryrefslogtreecommitdiffstats
path: root/source/Mobs/Zombiepigman.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Mobs/Zombiepigman.cpp')
-rw-r--r--source/Mobs/Zombiepigman.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/source/Mobs/Zombiepigman.cpp b/source/Mobs/Zombiepigman.cpp
new file mode 100644
index 000000000..6483e58c5
--- /dev/null
+++ b/source/Mobs/Zombiepigman.cpp
@@ -0,0 +1,60 @@
+
+#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
+
+#include "Zombiepigman.h"
+
+
+
+
+
+cZombiepigman::cZombiepigman(void) :
+ super("Zombiepigman", 57, "mob.zombiepig.zpighurt", "mob.zombiepig.zpigdeath", 0.6, 1.8)
+{
+}
+
+
+
+
+
+void cZombiepigman::Tick(float a_Dt, cChunk & a_Chunk)
+{
+ super::Tick(a_Dt, a_Chunk);
+
+ // TODO Same as noticed in cSkeleton AND Do they really burn by sun?? :D In the neather is no sun :D
+ if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire())
+ {
+ // Burn for 10 ticks, then decide again
+ StartBurning(10);
+ }
+}
+
+
+
+
+
+void cZombiepigman::GetDrops(cItems & a_Drops, cEntity * a_Killer)
+{
+ AddRandomDropItem(a_Drops, 0, 1, E_ITEM_ROTTEN_FLESH);
+ AddRandomDropItem(a_Drops, 0, 1, E_ITEM_GOLD_NUGGET);
+
+ // TODO: Rare drops
+}
+
+
+
+
+
+void cZombiepigman::KilledBy(cEntity * a_Killer)
+{
+ super::KilledBy(a_Killer);
+
+ if ((a_Killer != NULL) && (a_Killer->IsPlayer()))
+ {
+ // TODO: Anger all nearby zombie pigmen
+ // TODO: In vanilla, if one player angers ZPs, do they attack any nearby player, or only that one attacker?
+ }
+}
+
+
+
+