mirror of
https://github.com/zoriya/Bomberman.git
synced 2026-06-07 11:34:46 +00:00
Add healthSystem
The component doesn't disable the entity anymore, the system does it by checking the component of the entity Co-Authored-By: Benjamin HENRY <44569175+EternalRat@users.noreply.github.com>
This commit is contained in:
@@ -32,8 +32,7 @@ namespace BBM
|
||||
{
|
||||
if (damage >= this->_healthPoint) {
|
||||
this->_healthPoint = 0;
|
||||
this->die();
|
||||
} else
|
||||
} else
|
||||
this->_healthPoint -= damage;
|
||||
}
|
||||
|
||||
|
||||
@@ -45,5 +45,7 @@ namespace BBM
|
||||
|
||||
//! @brief A component can't be assigned
|
||||
HealthComponent &operator=(const HealthComponent &) = delete;
|
||||
|
||||
friend class HealthSystem;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// Created by Tom Augier on 2021-05-20.
|
||||
// Edited by Benjamin Henry on 2021-05-20.
|
||||
//
|
||||
|
||||
#include "HealthSystem.hpp"
|
||||
#include "sources/Component/Health/HealthComponent.hpp"
|
||||
#include "sources/Component/Controllable/ControllableComponent.hpp"
|
||||
#include "lib/wal/sources/Entity/Entity.hpp"
|
||||
|
||||
namespace BBM
|
||||
{
|
||||
const std::type_info &HealthSystem::getComponent() const
|
||||
{
|
||||
return typeid(HealthComponent);
|
||||
}
|
||||
|
||||
void HealthSystem::onFixedUpdate(WAL::Entity &entity)
|
||||
{
|
||||
auto &health = entity.getComponent<HealthComponent>();
|
||||
|
||||
if (health._healthPoint == 0);
|
||||
health.die();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
//
|
||||
// Created by Tom Augier on 2021-05-20.
|
||||
// Edited by Benjamin Henry on 2021-05-20.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "lib/wal/sources/System/System.hpp"
|
||||
|
||||
namespace BBM
|
||||
{
|
||||
//! @brief A system to handle Health entities.
|
||||
class HealthSystem : public WAL::System
|
||||
{
|
||||
public:
|
||||
//! @inherit
|
||||
const std::type_info &getComponent() const override;
|
||||
//! @inherit
|
||||
void onFixedUpdate(WAL::Entity &entity) override;
|
||||
|
||||
//! @brief A default constructor
|
||||
HealthSystem() = default;
|
||||
//! @brief A Health system is copy constructable
|
||||
HealthSystem(const HealthSystem &) = default;
|
||||
//! @brief A default destructor
|
||||
~HealthSystem() override = default;
|
||||
//! @brief A Health system is assignable.
|
||||
HealthSystem &operator=(const HealthSystem &) = default;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user