Further work on the Pickup fix
This commit is contained in:
@@ -78,7 +78,7 @@ bool AmmoPickupSystem::OnTriggerTouch(Events::TriggerTouch& e)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool AmmoPickupSystem::OnTriggerLeave(Events::TriggerLeave& e) {
|
bool AmmoPickupSystem::OnTriggerLeave(Events::TriggerLeave& e) {
|
||||||
//triggerleave erases possible AmmoPickupAtMaxHealthAmmo
|
//triggerleave erases possible m_PickupAtMaximum
|
||||||
for (auto& it = m_PickupAtMaximum.begin(); it != m_PickupAtMaximum.end(); ++it) {
|
for (auto& it = m_PickupAtMaximum.begin(); it != m_PickupAtMaximum.end(); ++it) {
|
||||||
if (it->pickup.ID == e.Trigger.ID && it->player.ID == e.Entity.ID) {
|
if (it->pickup.ID == e.Trigger.ID && it->player.ID == e.Entity.ID) {
|
||||||
m_PickupAtMaximum.erase(it);
|
m_PickupAtMaximum.erase(it);
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ void HealthPickupSystem::Update(double dt)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
if ((int)it->player["Health"]["Health"] < (int)it->player["Health"]["MaxHealth"]) {
|
if ((double)it->player["Health"]["Health"] < (double)it->player["Health"]["MaxHealth"]) {
|
||||||
DoPickup(it->player, it->pickup);
|
DoPickup(it->player, it->pickup);
|
||||||
m_PickupAtMaximum.erase(it);
|
m_PickupAtMaximum.erase(it);
|
||||||
break;
|
break;
|
||||||
@@ -53,7 +53,6 @@ void HealthPickupSystem::Update(double dt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool HealthPickupSystem::OnTriggerTouch(Events::TriggerTouch& e)
|
bool HealthPickupSystem::OnTriggerTouch(Events::TriggerTouch& e)
|
||||||
{
|
{
|
||||||
if (!e.Trigger.HasComponent("HealthPickup")) {
|
if (!e.Trigger.HasComponent("HealthPickup")) {
|
||||||
@@ -69,7 +68,7 @@ bool HealthPickupSystem::OnTriggerTouch(Events::TriggerTouch& e)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool HealthPickupSystem::OnTriggerLeave(Events::TriggerLeave& e) {
|
bool HealthPickupSystem::OnTriggerLeave(Events::TriggerLeave& e) {
|
||||||
//triggerleave erases possible AmmoPickupAtMaxHealthAmmo
|
//triggerleave erases possible m_PickupAtMaximum
|
||||||
for (auto& it = m_PickupAtMaximum.begin(); it != m_PickupAtMaximum.end(); ++it) {
|
for (auto& it = m_PickupAtMaximum.begin(); it != m_PickupAtMaximum.end(); ++it) {
|
||||||
if (it->pickup.ID == e.Trigger.ID && it->player.ID == e.Entity.ID) {
|
if (it->pickup.ID == e.Trigger.ID && it->player.ID == e.Entity.ID) {
|
||||||
m_PickupAtMaximum.erase(it);
|
m_PickupAtMaximum.erase(it);
|
||||||
@@ -78,6 +77,7 @@ bool HealthPickupSystem::OnTriggerLeave(Events::TriggerLeave& e) {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void HealthPickupSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger) {
|
void HealthPickupSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger) {
|
||||||
double healthGiven = 0.01*(double)trigger["HealthPickup"]["HealthGain"] * (double)player["Health"]["MaxHealth"];
|
double healthGiven = 0.01*(double)trigger["HealthPickup"]["HealthGain"] * (double)player["Health"]["MaxHealth"];
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
using boost::unit_test_framework::test_suite;
|
using boost::unit_test_framework::test_suite;
|
||||||
using boost::unit_test_framework::test_case;
|
using boost::unit_test_framework::test_case;
|
||||||
|
|
||||||
#include "PickupSpawnTest.h"
|
#include "HealthPickupTest.h"
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE(PickupSpawnTestSuite)
|
BOOST_AUTO_TEST_SUITE(PickupSpawnTestSuite)
|
||||||
|
|
||||||
Reference in New Issue
Block a user