1
0
cuberite-2a/source/Mobs/Skeleton.cpp
madmaxoft@gmail.com 4cebaa99f8 Refactored the world time.
Now it is stored in two values - WorldAge (only incremented, plugins cannot change) and TimeOfDay (plugins can change). Since sub-tick precision is needed in Tick(), we store it both as number of seconds (double) and number of ticks (Int64) is calculated off of that.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1022 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-11-01 21:38:20 +00:00

67 lines
939 B
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
#include "Skeleton.h"
cSkeleton::cSkeleton()
{
m_MobType = 51;
GetMonsterConfig("Skeleton");
}
cSkeleton::~cSkeleton()
{
}
bool cSkeleton::IsA( const char* a_EntityType )
{
if( strcmp( a_EntityType, "cSkeleton" ) == 0 ) return true;
return cMonster::IsA( a_EntityType );
}
void cSkeleton::Tick(float a_Dt)
{
cMonster::Tick(a_Dt);
// TODO Outsource
// TODO should do SkyLight check, mobs in the dark don´t burn
if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && (GetMetaData() != BURNING))
{
SetMetaData(BURNING); // BURN, BABY, BURN! >:D
}
}
void cSkeleton::KilledBy( cEntity* a_Killer )
{
cItems Drops;
AddRandomDropItem(Drops, 0, 2, E_ITEM_ARROW);
AddRandomDropItem(Drops, 0, 2, E_ITEM_BONE);
m_World->SpawnItemPickups(Drops, m_Pos.x, m_Pos.y, m_Pos.z);
cMonster::KilledBy( a_Killer );
}