diff options
Diffstat (limited to 'source/Mobs')
-rw-r--r-- | source/Mobs/Bat.cpp | 45 | ||||
-rw-r--r-- | source/Mobs/Bat.h | 14 | ||||
-rw-r--r-- | source/Mobs/Witch.cpp | 55 | ||||
-rw-r--r-- | source/Mobs/Witch.h | 14 |
4 files changed, 128 insertions, 0 deletions
diff --git a/source/Mobs/Bat.cpp b/source/Mobs/Bat.cpp new file mode 100644 index 000000000..4cc74ec2b --- /dev/null +++ b/source/Mobs/Bat.cpp @@ -0,0 +1,45 @@ +
+#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
+
+#include "Bat.h"
+
+
+
+
+
+cBat::cBat()
+{
+ m_MobType = 65;
+ GetMonsterConfig("Bat");
+}
+
+
+
+
+
+cBat::~cBat()
+{
+}
+
+
+
+
+
+bool cBat::IsA( const char* a_EntityType )
+{
+ if( strcmp( a_EntityType, "cBat" ) == 0 ) return true;
+ return cMonster::IsA( a_EntityType );
+}
+
+
+
+
+
+void cBat::KilledBy( cEntity* a_Killer )
+{
+ cMonster::KilledBy( a_Killer );
+}
+
+
+
+
diff --git a/source/Mobs/Bat.h b/source/Mobs/Bat.h new file mode 100644 index 000000000..94ae595d0 --- /dev/null +++ b/source/Mobs/Bat.h @@ -0,0 +1,14 @@ +#pragma once
+
+#include "PassiveMonster.h"
+
+class cBat : public cPassiveMonster
+{
+public:
+ cBat();
+ ~cBat();
+
+ virtual bool IsA( const char* a_EntityType );
+
+ virtual void KilledBy( cEntity* a_Killer );
+};
diff --git a/source/Mobs/Witch.cpp b/source/Mobs/Witch.cpp new file mode 100644 index 000000000..02d1de4fe --- /dev/null +++ b/source/Mobs/Witch.cpp @@ -0,0 +1,55 @@ +
+#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
+
+#include "Witch.h"
+
+
+
+
+
+cWitch::cWitch()
+{
+ m_MobType = 66;
+ GetMonsterConfig("Witch");
+}
+
+
+
+
+
+cWitch::~cWitch()
+{
+}
+
+
+
+
+
+bool cWitch::IsA( const char* a_EntityType )
+{
+ if( strcmp( a_EntityType, "cWitch" ) == 0 ) return true;
+ return cMonster::IsA( a_EntityType );
+}
+
+
+
+
+
+void cWitch::KilledBy( cEntity* a_Killer )
+{
+ cItems Drops;
+ AddRandomDropItem(Drops, 0, 6, E_ITEM_GLASS_BOTTLE);
+ AddRandomDropItem(Drops, 0, 6, E_ITEM_GLOWSTONE_DUST);
+ AddRandomDropItem(Drops, 0, 6, E_ITEM_GUNPOWDER);
+ AddRandomDropItem(Drops, 0, 6, E_ITEM_REDSTONE_DUST);
+ AddRandomDropItem(Drops, 0, 6, E_ITEM_SPIDER_EYE);
+ AddRandomDropItem(Drops, 0, 6, E_ITEM_STICK);
+ AddRandomDropItem(Drops, 0, 6, E_ITEM_SUGAR);
+ m_World->SpawnItemPickups(Drops, m_Pos.x, m_Pos.y, m_Pos.z);
+
+ cMonster::KilledBy( a_Killer );
+}
+
+
+
+
diff --git a/source/Mobs/Witch.h b/source/Mobs/Witch.h new file mode 100644 index 000000000..303aa7595 --- /dev/null +++ b/source/Mobs/Witch.h @@ -0,0 +1,14 @@ +#pragma once
+
+#include "AggressiveMonster.h"
+
+class cWitch : public cAggressiveMonster
+{
+public:
+ cWitch();
+ ~cWitch();
+
+ virtual bool IsA( const char* a_EntityType );
+
+ virtual void KilledBy( cEntity* a_Killer );
+};
|