From c14f3789f7bb1ee6820c56280691a85afe341e17 Mon Sep 17 00:00:00 2001 From: verysecrethero Date: Wed, 13 Jan 2016 15:26:10 +0100 Subject: [PATCH] PlayerSystem now counts down the CoolDownTimer on both HeldItems for the player. Updated ShootEventTest to verify this --- src/Game/PlayerSystem.cpp | 9 ++++++++- src/Tests/ShootEventTest.cpp | 10 ++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Game/PlayerSystem.cpp b/src/Game/PlayerSystem.cpp index c9112b01..7bf576af 100644 --- a/src/Game/PlayerSystem.cpp +++ b/src/Game/PlayerSystem.cpp @@ -1,4 +1,5 @@ #include "PlayerSystem.h" +#include void PlayerSystem::UpdateComponent(World * world, ComponentWrapper & player, double dt) { @@ -22,6 +23,12 @@ void PlayerSystem::UpdateComponent(World * world, ComponentWrapper & player, dou (glm::vec3&)transform["Position"] += (glm::vec3)player["Velocity"]; } + //decrease CoolDownTimers for both HeldItems + ComponentWrapper& currentItem = world->GetComponent(player.EntityID, "PrimaryItem"); + ComponentWrapper& currentItem2 = world->GetComponent(player.EntityID, "SecondaryItem"); + currentItem["CoolDownTimer"] = std::max(0.0, (double)currentItem["CoolDownTimer"] - dt); + currentItem2["CoolDownTimer"] = std::max(0.0, (double)currentItem2["CoolDownTimer"] - dt); + //do shootEvent: if left mouse was released, and ammo/weaponcooldown/playeralive/shootingcooldown are ok if (leftMouseWasReleased) { leftMouseWasReleased = false; @@ -44,7 +51,7 @@ void PlayerSystem::UpdateComponent(World * world, ComponentWrapper & player, dou //decrease ammo count //TODO: temp, set the cooldowntimer - probably done in some other system (itemSystem?) later currentItem["Ammo"] = (int)currentItem["Ammo"] - 1; - currentItem["CoolDownTimer"] = 2.0;//change later! + currentItem["CoolDownTimer"] = 2.0;//change later! probably to maxCoolDownTimer //create and publish the shoot event Events::Shoot eShoot; eShoot.currentAimingPoint = aimingCoordinates; diff --git a/src/Tests/ShootEventTest.cpp b/src/Tests/ShootEventTest.cpp index f24bfed8..3af66b88 100644 --- a/src/Tests/ShootEventTest.cpp +++ b/src/Tests/ShootEventTest.cpp @@ -180,7 +180,7 @@ void ShootEventTest::TestSetup4(ComponentWrapper &player, ComponentWrapper &pIte player["EquippedItem"] = 1; //set ammo set cooldown pItem["Ammo"] = 100; - pItem["CoolDownTimer"] = 5.0; + pItem["CoolDownTimer"] = 99999999.0;//very long coolDownTimer //TestSucceeded will be set to false if ammo changes during the 100 loops TestSucceeded = true; } @@ -225,10 +225,12 @@ void ShootEventTest::Tick() { glfwPollEvents(); - double currentTime = glfwGetTime(); - double dt = currentTime - m_LastTime; - m_LastTime = currentTime; + //double currentTime = glfwGetTime(); + //double dt = currentTime - m_LastTime; + //m_LastTime = currentTime; + //just set dt to 1.0 + double dt = 0.34567; // Iterate through systems and update world! m_SystemPipeline->Update(m_World, dt);