Air-Trap 1.0.0
A multiplayer R-Type clone game engine built with C++23 and ECS architecture
Loading...
Searching...
No Matches
rtp::server::EnemyShootSystem Class Reference

Spawns bullets for enemies on the server. More...

#include <EnemyShootSystem.hpp>

Inheritance diagram for rtp::server::EnemyShootSystem:
Collaboration diagram for rtp::server::EnemyShootSystem:

Public Member Functions

 EnemyShootSystem (ecs::Registry &registry, RoomSystem &roomSystem, NetworkSyncSystem &networkSync)
 Constructor for EnemyShootSystem.
 
void update (float dt) override
 Update enemy shooting system logic for one frame.
 
- Public Member Functions inherited from rtp::ecs::ISystem
virtual ~ISystem () noexcept=default
 

Private Member Functions

void spawnBullet (const ecs::components::Transform &tf, const ecs::components::RoomId &roomId, bool isBoomerang=false, uint32_t shooterIndex=0)
 Spawn a bullet entity at the given transform and room.
 

Private Attributes

ecs::Registry_registry
 Reference to the entity registry.
 
RoomSystem_roomSystem
 Reference to the RoomSystem.
 
NetworkSyncSystem_networkSync
 Reference to the NetworkSyncSystem.
 
float _bulletSpeed = -350.0f
 Speed of the spawned bullets.
 
float _spawnOffsetX = -10.0f
 X offset for bullet spawn position.
 

Detailed Description

Spawns bullets for enemies on the server.

Definition at line 31 of file EnemyShootSystem.hpp.

Constructor & Destructor Documentation

◆ EnemyShootSystem()

rtp::server::EnemyShootSystem::EnemyShootSystem ( ecs::Registry registry,
RoomSystem roomSystem,
NetworkSyncSystem networkSync 
)

Constructor for EnemyShootSystem.

Parameters
registryReference to the entity registry
roomSystemReference to the RoomSystem
networkSyncReference to the NetworkSyncSystem

Definition at line 20 of file EnemyShootSystem.cpp.

Member Function Documentation

◆ spawnBullet()

void rtp::server::EnemyShootSystem::spawnBullet ( const ecs::components::Transform tf,
const ecs::components::RoomId roomId,
bool  isBoomerang = false,
uint32_t  shooterIndex = 0 
)
private

◆ update()

void rtp::server::EnemyShootSystem::update ( float  dt)
overridevirtual

Update enemy shooting system logic for one frame.

Parameters
dtTime elapsed since last update in seconds

Implements rtp::ecs::ISystem.

Definition at line 27 of file EnemyShootSystem.cpp.

References _registry, rtp::net::Boss, rtp::net::Boss2, rtp::net::BossShield, rtp::ecs::components::SimpleWeapon::lastShotTime, rtp::net::Scout, spawnBullet(), rtp::net::Tank, and rtp::ecs::Registry::zipView().

Member Data Documentation

◆ _bulletSpeed

float rtp::server::EnemyShootSystem::_bulletSpeed = -350.0f
private

Speed of the spawned bullets.

Definition at line 67 of file EnemyShootSystem.hpp.

Referenced by spawnBullet().

◆ _networkSync

NetworkSyncSystem& rtp::server::EnemyShootSystem::_networkSync
private

Reference to the NetworkSyncSystem.

Definition at line 65 of file EnemyShootSystem.hpp.

Referenced by spawnBullet().

◆ _registry

ecs::Registry& rtp::server::EnemyShootSystem::_registry
private

Reference to the entity registry.

Definition at line 63 of file EnemyShootSystem.hpp.

Referenced by spawnBullet(), and update().

◆ _roomSystem

RoomSystem& rtp::server::EnemyShootSystem::_roomSystem
private

Reference to the RoomSystem.

Definition at line 64 of file EnemyShootSystem.hpp.

Referenced by spawnBullet().

◆ _spawnOffsetX

float rtp::server::EnemyShootSystem::_spawnOffsetX = -10.0f
private

X offset for bullet spawn position.

Definition at line 68 of file EnemyShootSystem.hpp.

Referenced by spawnBullet().


The documentation for this class was generated from the following files: