From 7cfcfc5f398f133f339a4dd8c87b5e02d8043fd3 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 4 Nov 2013 21:46:56 +0100 Subject: Skeleton, Ghast and Blaze's projectile code is now in their respective class. --- source/Mobs/Monster.cpp | 70 +++++-------------------------------------------- 1 file changed, 6 insertions(+), 64 deletions(-) (limited to 'source/Mobs/Monster.cpp') diff --git a/source/Mobs/Monster.cpp b/source/Mobs/Monster.cpp index 0b91df90b..9d2be1e29 100644 --- a/source/Mobs/Monster.cpp +++ b/source/Mobs/Monster.cpp @@ -440,70 +440,12 @@ void cMonster::InStateEscaping(float a_Dt) void cMonster::Attack(float a_Dt) { m_AttackInterval += a_Dt * m_AttackRate; - if ((m_Target != NULL) && (m_AttackInterval > 3.0)) - // Setting this higher gives us more wiggle room for attackrate - { - switch (GetMobType()) - { - case mtSkeleton: - { - Vector3d Speed = GetLookVector() * 20; - Speed.y = Speed.y + 1; - cArrowEntity * Arrow = new cArrowEntity(this, GetPosX(), GetPosY() + 1, GetPosZ(), Speed); - if (Arrow == NULL) - { - return; - } - if (!Arrow->Initialize(m_World)) - { - delete Arrow; - return; - } - m_World->BroadcastSpawnEntity(*Arrow); - break; - } - case mtGhast: - { - Vector3d Speed = GetLookVector() * 20; - Speed.y = Speed.y + 1; - cGhastFireballEntity * GhastBall = new cGhastFireballEntity(this, GetPosX(), GetPosY() + 1, GetPosZ(), Speed); - if (GhastBall == NULL) - { - return; - } - if (!GhastBall->Initialize(m_World)) - { - delete GhastBall; - return; - } - m_World->BroadcastSpawnEntity(*GhastBall); - break; - } - case mtBlaze: - { - Vector3d Speed = GetLookVector() * 20; - Speed.y = Speed.y + 1; - cFireChargeEntity * FireCharge = new cFireChargeEntity(this, GetPosX(), GetPosY() + 1, GetPosZ(), Speed); - if (FireCharge == NULL) - { - return; - } - if (!FireCharge->Initialize(m_World)) - { - delete FireCharge; - return; - } - m_World->BroadcastSpawnEntity(*FireCharge); - break; - // ToDo: Shoot 3 fireballs instead of 1. - } - default: - { - ((cPawn *)m_Target)->TakeDamage(*this); - } - } - m_AttackInterval = 0.0; - } + if ((m_Target != NULL) && (m_AttackInterval > 3.0)) + { + // Setting this higher gives us more wiggle room for attackrate + m_AttackInterval = 0.0; + ((cPawn *)m_Target)->TakeDamage(*this); + } } -- cgit v1.2.3