From 1270500a43fe91b52a16952f9a4a875a1e0f9a10 Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Fri, 23 Oct 2015 15:05:43 +0200 Subject: [PATCH] Kraken screen shake! --- include/Game/EScreenShake.h | 6 +++--- include/Game/KrakenSystem.h | 1 + src/game/Game/KrakenSystem.cpp | 21 +++++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/include/Game/EScreenShake.h b/include/Game/EScreenShake.h index a157dce..6775217 100644 --- a/include/Game/EScreenShake.h +++ b/include/Game/EScreenShake.h @@ -15,9 +15,9 @@ namespace Events struct ScreenShake : Event { - float Time; - int Intensity; - float TimeTakenToCoolDown; + float Time = 1.f; + float Intensity = 1.f; + float TimeTakenToCoolDown = 1.f; }; } diff --git a/include/Game/KrakenSystem.h b/include/Game/KrakenSystem.h index a806fba..0933190 100644 --- a/include/Game/KrakenSystem.h +++ b/include/Game/KrakenSystem.h @@ -33,6 +33,7 @@ #include "Game/CKraken.h" #include "Game/CBall.h" #include "Game/CProjectile.h" +#include "Game/EScreenShake.h" #include "Sound/CCollisionSound.h" #include "Rendering/CAnimation.h" #include "Rendering/CSprite.h" diff --git a/src/game/Game/KrakenSystem.cpp b/src/game/Game/KrakenSystem.cpp index a07cd48..9d91ff5 100644 --- a/src/game/Game/KrakenSystem.cpp +++ b/src/game/Game/KrakenSystem.cpp @@ -261,6 +261,13 @@ bool dd::Systems::KrakenSystem::OnKrakenAppear(const dd::Events::KrakenAppear &e transform->Position = event.Position; transform->Position.y += 3.f; m_KrakenBattle = true; + + Events::ScreenShake e; + e.Intensity = 10; + e.Time = 2; + e.TimeTakenToCoolDown = 6; + EventBroker->Publish(e); + return true; } @@ -269,6 +276,13 @@ bool dd::Systems::KrakenSystem::OnKrakenAttack(const dd::Events::KrakenAttack &e if (event.ChargeUpdate >= 1) { m_ReturnToIdle = true; } + + Events::ScreenShake e; + e.Intensity = 2; + e.Time = 0.5f; + e.TimeTakenToCoolDown = 3.f; + EventBroker->Publish(e); + return true; } @@ -339,6 +353,13 @@ bool dd::Systems::KrakenSystem::OnKrakenHit(const dd::Events::KrakenHit &event) e.Hitter = event.Hitter; EventBroker->Publish(e); } + + Events::ScreenShake e; + e.Intensity = 2; + e.Time = 0.2f; + e.TimeTakenToCoolDown = 1.5f; + EventBroker->Publish(e); + return false; }