change repair_tool application and add beams for salvager and repair_tool
This commit is contained in:
@@ -1,17 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "BeamFiredEvent.h"
|
||||
#include "Tick.h"
|
||||
|
||||
#include "entt/entity/entity.hpp"
|
||||
|
||||
class EntityAdmin;
|
||||
|
||||
// World-mutation system for repair modules: validates each tool's target (set by
|
||||
// RepairExecutor), falls back to the nearest damaged friendly in range, and
|
||||
// applies healing. Runs every tick, independent of behavior selection.
|
||||
// World-mutation system for repair modules: each tool runs a cycle on its own
|
||||
// cooldown. When a cycle starts it picks a target (the RepairExecutor-set target,
|
||||
// else the nearest damaged friendly in range), emits a repair beam, and schedules
|
||||
// the heal for mid-beam (kBeamImpactDelayTicks later) — mirroring weapon firing.
|
||||
// Runs every tick, independent of behavior selection.
|
||||
class RepairSystem
|
||||
{
|
||||
public:
|
||||
explicit RepairSystem(EntityAdmin& admin);
|
||||
|
||||
void tick();
|
||||
void tick(Tick currentTick, std::vector<BeamFiredEvent>& outBeamFiredEvents);
|
||||
|
||||
private:
|
||||
EntityAdmin& m_admin;
|
||||
struct PendingHeal
|
||||
{
|
||||
entt::entity target;
|
||||
float amountHp;
|
||||
Tick appliesAt;
|
||||
};
|
||||
|
||||
void applyPendingHeals(Tick currentTick);
|
||||
|
||||
EntityAdmin& m_admin;
|
||||
std::vector<PendingHeal> m_pendingHeals;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user