PlayerSystem now counts down the CoolDownTimer on both HeldItems for the player. Updated ShootEventTest to verify this

This commit is contained in:
verysecrethero
2016-01-13 15:26:10 +01:00
parent a20ca49d53
commit c14f3789f7
2 changed files with 14 additions and 5 deletions
+8 -1
View File
@@ -1,4 +1,5 @@
#include "PlayerSystem.h"
#include <algorithm>
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;
+6 -4
View File
@@ -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);