summaryrefslogtreecommitdiffstats
path: root/src/Mobs/Old Mobs/CaveSpider.cpp
diff options
context:
space:
mode:
authorSamuel Barney <samjbarney@gmail.com>2014-08-21 16:12:05 +0200
committerSamuel Barney <samjbarney@gmail.com>2014-08-21 16:12:05 +0200
commit77a36b58d8731821c88493742781cee0602d12ef (patch)
tree367ec7d2e9fe037b81721d62a94b01fa092d9227 /src/Mobs/Old Mobs/CaveSpider.cpp
parentFixed to make metadata work correctly. (diff)
downloadcuberite-77a36b58d8731821c88493742781cee0602d12ef.tar
cuberite-77a36b58d8731821c88493742781cee0602d12ef.tar.gz
cuberite-77a36b58d8731821c88493742781cee0602d12ef.tar.bz2
cuberite-77a36b58d8731821c88493742781cee0602d12ef.tar.lz
cuberite-77a36b58d8731821c88493742781cee0602d12ef.tar.xz
cuberite-77a36b58d8731821c88493742781cee0602d12ef.tar.zst
cuberite-77a36b58d8731821c88493742781cee0602d12ef.zip
Diffstat (limited to 'src/Mobs/Old Mobs/CaveSpider.cpp')
-rw-r--r--src/Mobs/Old Mobs/CaveSpider.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/Mobs/Old Mobs/CaveSpider.cpp b/src/Mobs/Old Mobs/CaveSpider.cpp
new file mode 100644
index 000000000..118a6e93b
--- /dev/null
+++ b/src/Mobs/Old Mobs/CaveSpider.cpp
@@ -0,0 +1,61 @@
+#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
+
+#include "CaveSpider.h"
+#include "../World.h"
+
+
+
+
+
+cCaveSpider::cCaveSpider(void) :
+ super("CaveSpider", mtCaveSpider, "mob.spider.say", "mob.spider.death", 0.7, 0.5)
+{
+}
+
+
+
+
+
+void cCaveSpider::Tick(float a_Dt, cChunk & a_Chunk)
+{
+ super::Tick(a_Dt, a_Chunk);
+
+ m_EMPersonality = (GetWorld()->GetTimeOfDay() < (12000 + 1000)) ? PASSIVE : AGGRESSIVE;
+}
+
+
+
+
+
+void cCaveSpider::Attack(float a_Dt)
+{
+ super::Attack(a_Dt);
+
+ if (m_Target->IsPawn())
+ {
+ // TODO: Easy = no poison, Medium = 7 seconds, Hard = 15 seconds
+ ((cPawn *) m_Target)->AddEntityEffect(cEntityEffect::effPoison, 7 * 20, 0);
+ }
+}
+
+
+
+
+
+void cCaveSpider::GetDrops(cItems & a_Drops, cEntity * a_Killer)
+{
+ int LootingLevel = 0;
+ if (a_Killer != NULL)
+ {
+ LootingLevel = a_Killer->GetEquippedWeapon().m_Enchantments.GetLevel(cEnchantments::enchLooting);
+ }
+ AddRandomDropItem(a_Drops, 0, 2 + LootingLevel, E_ITEM_STRING);
+ if ((a_Killer != NULL) && (a_Killer->IsPlayer() || a_Killer->IsA("cWolf")))
+ {
+ AddRandomUncommonDropItem(a_Drops, 33.0f, E_ITEM_SPIDER_EYE);
+ }
+}
+
+
+
+