From fdd6d1a4e9191daf6c136cc1570bc69a6a9e264c Mon Sep 17 00:00:00 2001 From: Aki Date: Sun, 8 Jan 2023 01:05:29 +0100 Subject: Added naive resists --- sim/include/kurator/sim/HitPoints.h | 3 ++- sim/src/HitPoints.cpp | 4 +++- sim/src/TurretControl.cpp | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sim/include/kurator/sim/HitPoints.h b/sim/include/kurator/sim/HitPoints.h index d63620d..b9a8523 100644 --- a/sim/include/kurator/sim/HitPoints.h +++ b/sim/include/kurator/sim/HitPoints.h @@ -10,7 +10,8 @@ namespace sim struct HitPoints { double structure; - void deal(double damage); + double structure_resists = 0.7; + double deal(double damage); bool is_alive() const; double total() const; }; diff --git a/sim/src/HitPoints.cpp b/sim/src/HitPoints.cpp index bcb7e97..d83c369 100644 --- a/sim/src/HitPoints.cpp +++ b/sim/src/HitPoints.cpp @@ -7,10 +7,12 @@ namespace sim { -void +double HitPoints::deal(double damage) { + damage *= structure_resists; structure -= damage; + return damage; } diff --git a/sim/src/TurretControl.cpp b/sim/src/TurretControl.cpp index 6513f39..e2596c8 100644 --- a/sim/src/TurretControl.cpp +++ b/sim/src/TurretControl.cpp @@ -42,9 +42,9 @@ TurretControl::update(entt::registry& registry, entt::dispatcher& dispatcher, co control.rounds = def.rounds; if (control.rounds > 0 && consume(remaining_dt, control.delay)) { auto& target_points = registry.get(state.target); - const auto damage = def.effective_damage(distance); + auto damage = def.effective_damage(distance); if (damage > 0.0) { - target_points.deal(damage); + damage = target_points.deal(damage); dispatcher.trigger(Hit{damage, control.owner, state.target}); } control.delay = def.rate_of_fire; -- cgit v1.1