Registry for the ECS (Entity-Component System).
System managing buff timers and applying buff effects.
void _applyBuffEffects(Address address, Registry ®istry, const Buff &buff)
Apply buff effects to entity stats.
void _applyHealthRegen(Health &health, float deltaTime, float regenRate)
Apply health regeneration.
void _applyFireRateBoost(Weapon &weapon, float multiplier)
Apply fire rate buff multiplier.
void update(Registry ®istry, float deltaTime) override
Update buff timers and apply effects.
void _applyDamageBoost(Weapon &weapon, float multiplier)
Apply damage buff multiplier.
~BuffSystem() override=default
Destructor.
void _updateBuffTimers(Buff &buff, float deltaTime)
Update buff timers and remove expired ones.
void _applySpeedBoost(Velocity &velocity, float multiplier)
Apply speed buff multiplier.
ComponentMask getComponentMask() const override
Gets the component mask for this system.
void _applyShield(Health &health, float duration)
Apply shield (invincibility)
BuffSystem()=default
Constructs a BuffSystem.
Component managing active buffs on an entity.
Component representing entity health and invincibility.
Base interface for all ECS systems.
Manages entities, their signatures and component type registrations.
Component representing movement direction and speed.
Component for entities capable of shooting projectiles.
Maximum number of distinct component types supported by the Registry.
std::uint32_t Address
Type used to represent an entity address/ID.
std::uint64_t ComponentMask
Type alias for component bitmask.