summaryrefslogtreecommitdiffstats
path: root/source/Mobs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source/Mobs/Blaze.cpp49
-rw-r--r--source/Mobs/Blaze.h14
-rw-r--r--source/Mobs/Magmacube.cpp49
-rw-r--r--source/Mobs/Magmacube.h14
-rw-r--r--source/Mobs/Mooshroom.cpp56
-rw-r--r--source/Mobs/Mooshroom.h14
-rw-r--r--source/Mobs/Ocelot.cpp45
-rw-r--r--source/Mobs/Ocelot.h14
-rw-r--r--source/Mobs/Villager.cpp45
-rw-r--r--source/Mobs/Villager.h14
10 files changed, 314 insertions, 0 deletions
diff --git a/source/Mobs/Blaze.cpp b/source/Mobs/Blaze.cpp
new file mode 100644
index 000000000..c3e68518f
--- /dev/null
+++ b/source/Mobs/Blaze.cpp
@@ -0,0 +1,49 @@
+
+#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
+
+#include "Blaze.h"
+
+
+
+
+
+cBlaze::cBlaze()
+{
+ m_MobType = 61;
+ GetMonsterConfig("Blaze");
+}
+
+
+
+
+
+cBlaze::~cBlaze()
+{
+}
+
+
+
+
+
+bool cBlaze::IsA( const char* a_EntityType )
+{
+ if( strcmp( a_EntityType, "cBlaze" ) == 0 ) return true;
+ return cMonster::IsA( a_EntityType );
+}
+
+
+
+
+
+void cBlaze::KilledBy( cEntity* a_Killer )
+{
+ cItems Drops;
+ AddRandomDropItem(Drops, 0, 1, E_ITEM_BLAZE_ROD);
+ m_World->SpawnItemPickups(Drops, m_Pos.x, m_Pos.y, m_Pos.z);
+
+ cMonster::KilledBy( a_Killer );
+}
+
+
+
+
diff --git a/source/Mobs/Blaze.h b/source/Mobs/Blaze.h
new file mode 100644
index 000000000..bd722d529
--- /dev/null
+++ b/source/Mobs/Blaze.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "AggressiveMonster.h"
+
+class cBlaze : public cAggressiveMonster
+{
+public:
+ cBlaze();
+ ~cBlaze();
+
+ virtual bool IsA( const char* a_EntityType );
+
+ virtual void KilledBy( cEntity* a_Killer );
+};
diff --git a/source/Mobs/Magmacube.cpp b/source/Mobs/Magmacube.cpp
new file mode 100644
index 000000000..d73041baf
--- /dev/null
+++ b/source/Mobs/Magmacube.cpp
@@ -0,0 +1,49 @@
+
+#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
+
+#include "Magmacube.h"
+
+
+
+
+
+cMagmacube::cMagmacube()
+{
+ m_MobType = 62;
+ GetMonsterConfig("Magmacube");
+}
+
+
+
+
+
+cMagmacube::~cMagmacube()
+{
+}
+
+
+
+
+
+bool cMagmacube::IsA( const char* a_EntityType )
+{
+ if( strcmp( a_EntityType, "cMagmacube" ) == 0 ) return true;
+ return cMonster::IsA( a_EntityType );
+}
+
+
+
+
+
+void cMagmacube::KilledBy( cEntity* a_Killer )
+{
+ cItems Drops;
+ AddRandomDropItem(Drops, 0, 1, E_ITEM_MAGMA_CREAM);
+ m_World->SpawnItemPickups(Drops, m_Pos.x, m_Pos.y, m_Pos.z);
+
+ cMonster::KilledBy( a_Killer );
+}
+
+
+
+
diff --git a/source/Mobs/Magmacube.h b/source/Mobs/Magmacube.h
new file mode 100644
index 000000000..1a36ef2c1
--- /dev/null
+++ b/source/Mobs/Magmacube.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "AggressiveMonster.h"
+
+class cMagmacube : public cAggressiveMonster
+{
+public:
+ cMagmacube();
+ ~cMagmacube();
+
+ virtual bool IsA( const char* a_EntityType );
+
+ virtual void KilledBy( cEntity* a_Killer );
+};
diff --git a/source/Mobs/Mooshroom.cpp b/source/Mobs/Mooshroom.cpp
new file mode 100644
index 000000000..f70349e97
--- /dev/null
+++ b/source/Mobs/Mooshroom.cpp
@@ -0,0 +1,56 @@
+
+#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
+
+#include "Mooshroom.h"
+
+
+
+
+
+// TODO: Milk Cow
+
+
+
+
+
+cMooshroom::cMooshroom()
+{
+ m_MobType = 96;
+ GetMonsterConfig("Mooshroom");
+}
+
+
+
+
+
+cMooshroom::~cMooshroom()
+{
+}
+
+
+
+
+
+bool cMooshroom::IsA( const char* a_EntityType )
+{
+ if( strcmp( a_EntityType, "cMooshroom" ) == 0 ) return true;
+ return cMonster::IsA( a_EntityType );
+}
+
+
+
+
+
+void cMooshroom::KilledBy( cEntity* a_Killer )
+{
+ cItems Drops;
+ AddRandomDropItem(Drops, 0, 2, E_ITEM_LEATHER);
+ AddRandomDropItem(Drops, 1, 3, (GetMetaData() == BURNING) ? E_ITEM_STEAK : E_ITEM_RAW_BEEF);
+ m_World->SpawnItemPickups(Drops, m_Pos.x, m_Pos.y, m_Pos.z);
+
+ cMonster::KilledBy( a_Killer );
+}
+
+
+
+
diff --git a/source/Mobs/Mooshroom.h b/source/Mobs/Mooshroom.h
new file mode 100644
index 000000000..ea8ed5b08
--- /dev/null
+++ b/source/Mobs/Mooshroom.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "PassiveMonster.h"
+
+class cMooshroom : public cPassiveMonster
+{
+public:
+ cMooshroom();
+ ~cMooshroom();
+
+ virtual bool IsA( const char* a_EntityType );
+
+ virtual void KilledBy( cEntity* a_Killer );
+};
diff --git a/source/Mobs/Ocelot.cpp b/source/Mobs/Ocelot.cpp
new file mode 100644
index 000000000..ec50a9656
--- /dev/null
+++ b/source/Mobs/Ocelot.cpp
@@ -0,0 +1,45 @@
+
+#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
+
+#include "Ocelot.h"
+
+
+
+
+
+cOcelot::cOcelot()
+{
+ m_MobType = 98;
+ GetMonsterConfig("Ocelot");
+}
+
+
+
+
+
+cOcelot::~cOcelot()
+{
+}
+
+
+
+
+
+bool cOcelot::IsA( const char* a_EntityType )
+{
+ if( strcmp( a_EntityType, "cOcelot" ) == 0 ) return true;
+ return cMonster::IsA( a_EntityType );
+}
+
+
+
+
+
+void cOcelot::KilledBy( cEntity* a_Killer )
+{
+ cMonster::KilledBy( a_Killer );
+}
+
+
+
+
diff --git a/source/Mobs/Ocelot.h b/source/Mobs/Ocelot.h
new file mode 100644
index 000000000..87571022f
--- /dev/null
+++ b/source/Mobs/Ocelot.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "PassiveMonster.h"
+
+class cOcelot : public cPassiveMonster
+{
+public:
+ cOcelot();
+ ~cOcelot();
+
+ virtual bool IsA( const char* a_EntityType );
+
+ virtual void KilledBy( cEntity* a_Killer );
+};
diff --git a/source/Mobs/Villager.cpp b/source/Mobs/Villager.cpp
new file mode 100644
index 000000000..65b2ac5b5
--- /dev/null
+++ b/source/Mobs/Villager.cpp
@@ -0,0 +1,45 @@
+
+#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
+
+#include "Villager.h"
+
+
+
+
+
+cVillager::cVillager()
+{
+ m_MobType = 120;
+ GetMonsterConfig("Villager");
+}
+
+
+
+
+
+cVillager::~cVillager()
+{
+}
+
+
+
+
+
+bool cVillager::IsA( const char* a_EntityType )
+{
+ if( strcmp( a_EntityType, "cVillager" ) == 0 ) return true;
+ return cMonster::IsA( a_EntityType );
+}
+
+
+
+
+
+void cVillager::KilledBy( cEntity* a_Killer )
+{
+ cMonster::KilledBy( a_Killer );
+}
+
+
+
+
diff --git a/source/Mobs/Villager.h b/source/Mobs/Villager.h
new file mode 100644
index 000000000..02272378b
--- /dev/null
+++ b/source/Mobs/Villager.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "PassiveMonster.h"
+
+class cVillager : public cPassiveMonster
+{
+public:
+ cVillager();
+ ~cVillager();
+
+ virtual bool IsA( const char* a_EntityType );
+
+ virtual void KilledBy( cEntity* a_Killer );
+};