diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Mobs/Blaze.cpp | 56 | ||||
-rw-r--r-- | src/Mobs/Blaze.h | 11 | ||||
-rw-r--r-- | src/Mobs/Monster.h | 6 |
3 files changed, 39 insertions, 34 deletions
diff --git a/src/Mobs/Blaze.cpp b/src/Mobs/Blaze.cpp index a48bfa886..29bff561a 100644 --- a/src/Mobs/Blaze.cpp +++ b/src/Mobs/Blaze.cpp @@ -9,10 +9,10 @@ cBlaze::cBlaze(void) : - super("Blaze", mtBlaze, "entity.blaze.hurt", "entity.blaze.death", 0.6, 1.8) + super("Blaze", mtBlaze, "entity.blaze.hurt", "entity.blaze.death", 0.6, 1.8) { - SetGravity(-8.0f); - SetAirDrag(0.05f); + SetGravity(-8.0f); + SetAirDrag(0.05f); } @@ -21,36 +21,36 @@ cBlaze::cBlaze(void) : void cBlaze::GetDrops(cItems & a_Drops, cEntity * a_Killer) { - if ((a_Killer != nullptr) && (a_Killer->IsPlayer() || a_Killer->IsA("cWolf"))) - { - unsigned int LootingLevel = a_Killer->GetEquippedWeapon().m_Enchantments.GetLevel(cEnchantments::enchLooting); - AddRandomDropItem(a_Drops, 0, 1 + LootingLevel, E_ITEM_BLAZE_ROD); - } + if ((a_Killer != nullptr) && (a_Killer->IsPlayer() || a_Killer->IsA("cWolf"))) + { + unsigned int LootingLevel = a_Killer->GetEquippedWeapon().m_Enchantments.GetLevel(cEnchantments::enchLooting); + AddRandomDropItem(a_Drops, 0, 1 + LootingLevel, E_ITEM_BLAZE_ROD); + } } - +// mobTODO bool cBlaze::Attack(std::chrono::milliseconds a_Dt) { - if ((GetTarget() != nullptr) && (m_AttackCoolDownTicksLeft == 0)) - { - // Setting this higher gives us more wiggle room for attackrate - Vector3d Speed = GetLookVector() * 20; - Speed.y = Speed.y + 1; - - auto FireCharge = cpp14::make_unique<cFireChargeEntity>(this, GetPosX(), GetPosY() + 1, GetPosZ(), Speed); - auto FireChargePtr = FireCharge.get(); - if (!FireChargePtr->Initialize(std::move(FireCharge), *m_World)) - { - return false; - } - - ResetAttackCooldown(); - // ToDo: Shoot 3 fireballs instead of 1. - - return true; - } - return false; + if ((GetTarget() != nullptr) && (m_AttackCoolDownTicksLeft == 0)) + { + // Setting this higher gives us more wiggle room for attackrate + Vector3d Speed = GetLookVector() * 20; + Speed.y = Speed.y + 1; + + auto FireCharge = cpp14::make_unique<cFireChargeEntity>(this, GetPosX(), GetPosY() + 1, GetPosZ(), Speed); + auto FireChargePtr = FireCharge.get(); + if (!FireChargePtr->Initialize(std::move(FireCharge), *m_World)) + { + return false; + } + + ResetAttackCooldown(); + // ToDo: Shoot 3 fireballs instead of 1. + + return true; + } + return false; } diff --git a/src/Mobs/Blaze.h b/src/Mobs/Blaze.h index ca755b626..7e389fa6c 100644 --- a/src/Mobs/Blaze.h +++ b/src/Mobs/Blaze.h @@ -8,15 +8,14 @@ class cBlaze : - public cAggressiveMonster + public cAggressiveMonster { - typedef cAggressiveMonster super; + typedef cAggressiveMonster super; public: - cBlaze(void); + cBlaze(void); - CLASS_PROTODEF(cBlaze) + CLASS_PROTODEF(cBlaze) - virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = nullptr) override; - virtual bool Attack(std::chrono::milliseconds a_Dt) override; + virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = nullptr) override; } ; diff --git a/src/Mobs/Monster.h b/src/Mobs/Monster.h index 3bb34974b..616c5d184 100644 --- a/src/Mobs/Monster.h +++ b/src/Mobs/Monster.h @@ -10,6 +10,12 @@ class cItem; class cClientHandle; +//Behavior fwds +class cBehaviorAggressive; +class cBehaviorBreeder; +class cBehaviorChaser; +class cBehaviorStriker; +class cBehaviorWanderer; // tolua_begin class cMonster : |