From 1beb873efc3cfb160f42772705a6f560c4f771ce Mon Sep 17 00:00:00 2001 From: PlatinumSkink Date: Fri, 23 Oct 2015 16:46:45 +0200 Subject: [PATCH] Fixed so ink does not damage boss, because that breaks current boss battle. --- include/Game/EKrakenHit.h | 2 ++ src/game/Game/KrakenSystem.cpp | 29 +++++++++++++++++------------ src/game/Game/LevelSystem.cpp | 13 +++++++++---- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/include/Game/EKrakenHit.h b/include/Game/EKrakenHit.h index 7982e72..c35341c 100644 --- a/include/Game/EKrakenHit.h +++ b/include/Game/EKrakenHit.h @@ -6,6 +6,7 @@ #define DAYDREAM_EKRAKENHIT_H #include "Core/EventBroker.h" +#include "Core/CTransform.h" namespace dd { @@ -17,6 +18,7 @@ struct KrakenHit : Event { EntityID Kraken; EntityID Hitter; + glm::vec3 PlaceHit; int MaxHealth; int CurrentHealth; int NewHealth; diff --git a/src/game/Game/KrakenSystem.cpp b/src/game/Game/KrakenSystem.cpp index 1c2a014..45ca047 100644 --- a/src/game/Game/KrakenSystem.cpp +++ b/src/game/Game/KrakenSystem.cpp @@ -247,16 +247,20 @@ bool dd::Systems::KrakenSystem::OnContact(const dd::Events::Contact &event) auto projectile = m_World->GetComponent(otherEntitiy); if (projectile != nullptr) { - Events::ScoreEvent es; - es.Score = 23; - EventBroker->Publish(es); - Events::KrakenHit e; - e.Kraken = krakenEntity; - e.Hitter = otherEntitiy; - e.MaxHealth = kraken->MaxHealth; - e.CurrentHealth = kraken->Health; - e.NewHealth = kraken->Health - 1; - EventBroker->Publish(e); + if (m_RandomKraken) { + Events::ScoreEvent es; + es.Score = 23; + EventBroker->Publish(es); + Events::KrakenHit e; + e.Kraken = krakenEntity; + e.Hitter = otherEntitiy; + auto transform = m_World->GetComponent(otherEntitiy); + e.PlaceHit = transform->Position; + e.MaxHealth = kraken->MaxHealth; + e.CurrentHealth = kraken->Health; + e.NewHealth = kraken->Health - 1; + EventBroker->Publish(e); + } m_World->RemoveEntity(otherEntitiy); return true; } @@ -273,6 +277,8 @@ bool dd::Systems::KrakenSystem::OnContact(const dd::Events::Contact &event) Events::KrakenHit e; e.Kraken = krakenEntity; e.Hitter = otherEntitiy; + auto transform = m_World->GetComponent(otherEntitiy); + e.PlaceHit = transform->Position; e.MaxHealth = kraken->MaxHealth; e.CurrentHealth = kraken->Health; e.NewHealth = kraken->Health - 1; @@ -317,7 +323,6 @@ bool dd::Systems::KrakenSystem::OnKrakenAttack(const dd::Events::KrakenAttack &e bool dd::Systems::KrakenSystem::OnKrakenHit(const dd::Events::KrakenHit &event) { auto kraken = m_World->GetComponent(event.Kraken); - auto transform = m_World->GetComponent(event.Hitter); kraken->Health--; kraken->CurrentAction = 3; //kraken->Health -= 15; @@ -362,7 +367,7 @@ bool dd::Systems::KrakenSystem::OnKrakenHit(const dd::Events::KrakenHit &event) poof.NumberOfTicks = 1; poof.ParticleLifeTime = 1.5f; poof.ParticlesPerTick = 2; - poof.Position = transform->Position; + poof.Position = event.PlaceHit; poof.ScaleValues.clear(); poof.ScaleValues.push_back(glm::vec3(0.5f)); poof.ScaleValues.push_back(glm::vec3(2.f, 2.f, 0.2f)); diff --git a/src/game/Game/LevelSystem.cpp b/src/game/Game/LevelSystem.cpp index 700f1fc..b9c118a 100755 --- a/src/game/Game/LevelSystem.cpp +++ b/src/game/Game/LevelSystem.cpp @@ -733,7 +733,7 @@ void dd::Systems::LevelSystem::GetBrickSet(int set, int setCluster) // These are 0, 0, 0, 0, 0, 0, 0, 6, 0, 1, 0, 1, 0, 6, 0, 1, 1, 1, 1, 1, 0, - 0, 0, 4, 1, 1, 0, 0, + 0, 0, 5, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; color = {b, b, b, b, b, b, b, @@ -856,7 +856,7 @@ void dd::Systems::LevelSystem::GetBrickSet(int set, int setCluster) // These are 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 3, 6, 1, 0, 1, 6, 1, - 1, 1, 1, 0, 1, 1, 1 }; + 1, 1, 1, 0, 1, 1, 5 }; color = {g, g, g, g, g, g, g, g, g, g, g, g, g, g, @@ -1023,8 +1023,13 @@ void dd::Systems::LevelSystem::BrickHit(EntityID entityHitter, EntityID entityBr if (kraken != nullptr) { Events::KrakenAttack e; e.ChargeUpdate = 0; - e.KrakenStrength = 0.1; - e.PlayerStrength = 0.05; + if (m_KrakenBattle) { + e.KrakenStrength = 0.1; + e.PlayerStrength = 0.12; + } else { + e.KrakenStrength = 0.1; + e.PlayerStrength = 0.05; + } EventBroker->Publish(e); } else {