diff options
Diffstat (limited to 'source/Mobs/Zombiepigman.cpp')
-rw-r--r-- | source/Mobs/Zombiepigman.cpp | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/source/Mobs/Zombiepigman.cpp b/source/Mobs/Zombiepigman.cpp index a33d78efa..9d3106829 100644 --- a/source/Mobs/Zombiepigman.cpp +++ b/source/Mobs/Zombiepigman.cpp @@ -17,18 +17,9 @@ cZombiepigman::cZombiepigman() -cZombiepigman::~cZombiepigman() +bool cZombiepigman::IsA(const char * a_EntityType) { -} - - - - - -bool cZombiepigman::IsA( const char* a_EntityType ) -{ - if( strcmp( a_EntityType, "cZombiepigman" ) == 0 ) return true; - return cMonster::IsA( a_EntityType ); + return ((strcmp(a_EntityType, "cZombiepigman") == 0) || super::IsA(a_EntityType)); } @@ -37,7 +28,7 @@ bool cZombiepigman::IsA( const char* a_EntityType ) void cZombiepigman::Tick(float a_Dt) { - cMonster::Tick(a_Dt); + super::Tick(a_Dt); // 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)) && (GetMetaData() != BURNING)) @@ -50,17 +41,27 @@ void cZombiepigman::Tick(float a_Dt) -void cZombiepigman::KilledBy(cEntity * a_Killer) +void cZombiepigman::GetDrops(cItems & a_Drops, cPawn * a_Killer) { - cItems Drops; - AddRandomDropItem(Drops, 0, 1, E_ITEM_ROTTEN_FLESH); - AddRandomDropItem(Drops, 0, 1, E_ITEM_GOLD_NUGGET); + AddRandomDropItem(a_Drops, 0, 1, E_ITEM_ROTTEN_FLESH); + AddRandomDropItem(a_Drops, 0, 1, E_ITEM_GOLD_NUGGET); // TODO: Rare drops - - m_World->SpawnItemPickups(Drops, m_Pos.x, m_Pos.y, m_Pos.z); +} - cMonster::KilledBy( a_Killer ); + + + + +void cZombiepigman::KilledBy(cPawn * a_Killer) +{ + super::KilledBy(a_Killer); + + if ((a_Killer != NULL) && (a_Killer->GetEntityType() == eEntityType_Player)) + { + // 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? + } } |