diff options
Diffstat (limited to 'source/Mobs')
-rw-r--r-- | source/Mobs/Skeleton.cpp | 11 | ||||
-rw-r--r-- | source/Mobs/Zombie.cpp | 13 |
2 files changed, 14 insertions, 10 deletions
diff --git a/source/Mobs/Skeleton.cpp b/source/Mobs/Skeleton.cpp index bec912afa..ad4037db9 100644 --- a/source/Mobs/Skeleton.cpp +++ b/source/Mobs/Skeleton.cpp @@ -21,12 +21,13 @@ void cSkeleton::Tick(float a_Dt, cChunk & a_Chunk) { cMonster::Tick(a_Dt, a_Chunk); - // TODO Outsource - // TODO should do SkyLight check, mobs in the dark donīt burn - if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire()) + if ((GetWorld()->GetBlockSkyLight(GetPosX(), GetPosY(), GetPosZ()) == 15) && (GetWorld()->GetBlock(GetPosX(), GetPosY(), GetPosZ()) != E_BLOCK_SOULSAND)) { - // Burn for 10 ticks, then decide again - StartBurning(10); + if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire()) + { + // Burn for 100 ticks, then decide again + StartBurning(100); + } } } diff --git a/source/Mobs/Zombie.cpp b/source/Mobs/Zombie.cpp index a6e39d6df..f3adf1283 100644 --- a/source/Mobs/Zombie.cpp +++ b/source/Mobs/Zombie.cpp @@ -3,10 +3,12 @@ #include "Zombie.h" #include "../World.h" +#include "../LineBlockTracer.h" +// They're eating your brains! cZombie::cZombie(void) : super("Zombie", 54, "mob.zombie.hurt", "mob.zombie.death", 0.6, 1.8) @@ -20,12 +22,13 @@ cZombie::cZombie(void) : void cZombie::Tick(float a_Dt, cChunk & a_Chunk) { super::Tick(a_Dt, a_Chunk); - - // TODO Same as in cSkeleton :D - if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire()) + if ((GetWorld()->GetBlockSkyLight(GetPosX(), GetPosY(), GetPosZ()) == 15) && (GetWorld()->GetBlock(GetPosX(), GetPosY(), GetPosZ()) != E_BLOCK_SOULSAND)) { - // Burn for 10 ticks, then decide again - StartBurning(10); + if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire()) + { + // Burn for 100 ticks, then decide again + StartBurning(100); + } } } |