diff options
Diffstat (limited to 'src/Mobs/Creeper.cpp')
-rw-r--r-- | src/Mobs/Creeper.cpp | 89 |
1 files changed, 3 insertions, 86 deletions
diff --git a/src/Mobs/Creeper.cpp b/src/Mobs/Creeper.cpp index 02718edf8..354910bf7 100644 --- a/src/Mobs/Creeper.cpp +++ b/src/Mobs/Creeper.cpp @@ -5,6 +5,7 @@ #include "../World.h" #include "../Entities/ProjectileEntity.h" #include "../Entities/Player.h" +#include "../Entities/Entity.h" @@ -14,7 +15,7 @@ cCreeper::cCreeper(void) : super("Creeper", mtCreeper, "mob.creeper.say", "mob.creeper.say", 0.6, 1.8), m_bIsBlowing(false), m_bIsCharged(false), - m_BurnedWithFlintAndSteel(false), + // m_BurnedWithFlintAndSteel(false), m_ExplodingTimer(0) { } @@ -23,35 +24,6 @@ cCreeper::cCreeper(void) : -void cCreeper::Tick(float a_Dt, cChunk & a_Chunk) -{ - super::Tick(a_Dt, a_Chunk); - - if (!ReachedFinalDestination() && !m_BurnedWithFlintAndSteel) - { - m_ExplodingTimer = 0; - m_bIsBlowing = false; - m_World->BroadcastEntityMetadata(*this); - } - else - { - if (m_bIsBlowing) - { - m_ExplodingTimer += 1; - } - - if (m_ExplodingTimer == 30) - { - m_World->DoExplosionAt((m_bIsCharged ? 5 : 3), GetPosX(), GetPosY(), GetPosZ(), false, esMonster, this); - Destroy(); // Just in case we aren't killed by the explosion - } - } -} - - - - - void cCreeper::GetDrops(cItems & a_Drops, cEntity * a_Killer) { if (m_ExplodingTimer == 30) @@ -76,7 +48,7 @@ void cCreeper::GetDrops(cItems & a_Drops, cEntity * a_Killer) { } - virtual bool Item(cEntity * a_Entity) override + virtual bool Item(cEntity * a_Entity) /*override*/ { if (a_Entity->IsMob() && ((cMonster *)a_Entity)->GetMobType() == mtSkeleton) { @@ -95,58 +67,3 @@ void cCreeper::GetDrops(cItems & a_Drops, cEntity * a_Killer) } } - - - - -bool cCreeper::DoTakeDamage(TakeDamageInfo & a_TDI) -{ - if (!super::DoTakeDamage(a_TDI)) - { - return false; - } - - if (a_TDI.DamageType == dtLightning) - { - m_bIsCharged = true; - } - - m_World->BroadcastEntityMetadata(*this); - return true; -} - - - - - -void cCreeper::Attack(float a_Dt) -{ - UNUSED(a_Dt); - - if (!m_bIsBlowing) - { - m_World->BroadcastSoundEffect("game.tnt.primed", GetPosX(), GetPosY(), GetPosZ(), 1.f, (float)(0.75 + ((float)((GetUniqueID() * 23) % 32)) / 64)); - m_bIsBlowing = true; - m_World->BroadcastEntityMetadata(*this); - } -} - - - - - -void cCreeper::OnRightClicked(cPlayer & a_Player) -{ - if ((a_Player.GetEquippedItem().m_ItemType == E_ITEM_FLINT_AND_STEEL)) - { - if (!a_Player.IsGameModeCreative()) - { - a_Player.UseEquippedItem(); - } - m_World->BroadcastSoundEffect("game.tnt.primed", GetPosX(), GetPosY(), GetPosZ(), 1.f, (float)(0.75 + ((float)((GetUniqueID() * 23) % 32)) / 64)); - m_bIsBlowing = true; - m_World->BroadcastEntityMetadata(*this); - m_BurnedWithFlintAndSteel = true; - } -} - |