summaryrefslogtreecommitdiff
path: root/battles/src/BaseBattle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'battles/src/BaseBattle.cpp')
-rw-r--r--battles/src/BaseBattle.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/battles/src/BaseBattle.cpp b/battles/src/BaseBattle.cpp
index e7d70c2..4088936 100644
--- a/battles/src/BaseBattle.cpp
+++ b/battles/src/BaseBattle.cpp
@@ -1,8 +1,10 @@
#include "BaseBattle.h"
#include <entt/entity/registry.hpp>
+#include <entt/signal/dispatcher.hpp>
#include <kurator/battles/components.h>
+#include <kurator/battles/events.h>
#include <kurator/battles/Scenario.h>
#include <kurator/universe.h>
@@ -37,6 +39,13 @@ BaseBattle::registry()
}
+entt::dispatcher&
+BaseBattle::dispatcher()
+{
+ return _dispatcher;
+}
+
+
void
BaseBattle::update(const float dt)
{
@@ -108,8 +117,10 @@ BaseBattle::turrets(const float dt)
auto& target_points = _registry.get<HitPoints>(state.target);
const auto& target = _registry.get<Transform>(state.target);
const auto distance = transform.position - target.position;
- if (def.range > distance.magnitude())
+ if (def.range > distance.magnitude()) {
target_points.health -= def.base_damage;
+ _dispatcher.trigger(Hit{def.base_damage, entity, state.target});
+ }
control.reload = def.rate_of_fire;
}
}