diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-11-23 18:12:34 +0100 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-11-23 18:12:34 +0100 |
commit | 79e5b823547a2a51d9f4e504fc24ec539e11ac34 (patch) | |
tree | 672b77f1c9a4741437b30f3289fc258d7917a2eb /src/Mobs | |
parent | Compilation fixes (diff) | |
parent | Merge pull request #1612 from p-mcgowan/pigsIntoZombiePigmenOnLightning (diff) | |
download | cuberite-79e5b823547a2a51d9f4e504fc24ec539e11ac34.tar cuberite-79e5b823547a2a51d9f4e504fc24ec539e11ac34.tar.gz cuberite-79e5b823547a2a51d9f4e504fc24ec539e11ac34.tar.bz2 cuberite-79e5b823547a2a51d9f4e504fc24ec539e11ac34.tar.lz cuberite-79e5b823547a2a51d9f4e504fc24ec539e11ac34.tar.xz cuberite-79e5b823547a2a51d9f4e504fc24ec539e11ac34.tar.zst cuberite-79e5b823547a2a51d9f4e504fc24ec539e11ac34.zip |
Diffstat (limited to 'src/Mobs')
-rw-r--r-- | src/Mobs/Pig.cpp | 20 | ||||
-rw-r--r-- | src/Mobs/Pig.h | 3 | ||||
-rw-r--r-- | src/Mobs/Villager.cpp | 7 |
3 files changed, 30 insertions, 0 deletions
diff --git a/src/Mobs/Pig.cpp b/src/Mobs/Pig.cpp index 55a4412ca..50b69e44f 100644 --- a/src/Mobs/Pig.cpp +++ b/src/Mobs/Pig.cpp @@ -98,3 +98,23 @@ void cPig::Tick(float a_Dt, cChunk & a_Chunk) + +bool cPig::DoTakeDamage(TakeDamageInfo & a_TDI) +{ + if (!super::DoTakeDamage(a_TDI)) + { + return false; + } + + if (a_TDI.DamageType == dtLightning) + { + Destroy(); + m_World->SpawnMob(GetPosX(), GetPosY(), GetPosZ(), mtZombiePigman); + return true; + } + return true; +} + + + + diff --git a/src/Mobs/Pig.h b/src/Mobs/Pig.h index 953850b3a..0e026933a 100644 --- a/src/Mobs/Pig.h +++ b/src/Mobs/Pig.h @@ -17,6 +17,9 @@ public: CLASS_PROTODEF(cPig) + // cEntity overrides + virtual bool DoTakeDamage(TakeDamageInfo & a_TDI) override; + virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = nullptr) override; virtual void OnRightClicked(cPlayer & a_Player) override; virtual void Tick(float a_Dt, cChunk & a_Chunk) override; diff --git a/src/Mobs/Villager.cpp b/src/Mobs/Villager.cpp index 5c9999a59..963595347 100644 --- a/src/Mobs/Villager.cpp +++ b/src/Mobs/Villager.cpp @@ -37,6 +37,13 @@ bool cVillager::DoTakeDamage(TakeDamageInfo & a_TDI) m_World->BroadcastEntityStatus(*this, esVillagerAngry); } } + + if (a_TDI.DamageType == dtLightning) + { + Destroy(); + m_World->SpawnMob(GetPosX(), GetPosY(), GetPosZ(), mtWitch); + return true; + } return true; } |