R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
ecs::Projectile Class Reference

Component for projectile entities (bullets, missiles, etc.). More...

#include <Projectile.hpp>

Inheritance diagram for ecs::Projectile:
Inheritance graph
Collaboration diagram for ecs::Projectile:
Collaboration graph

Public Member Functions

 Projectile (float damage, float lifetime, std::uint32_t ownerId, bool friendly)
 Constructor with projectile parameters.
 
 ~Projectile () override=default
 
float getDamage () const
 Get damage value.
 
float getLifetime () const
 Get remaining lifetime.
 
std::uint32_t getOwnerId () const
 Get owner entity ID.
 
bool isFriendly () const
 Check if projectile is friendly.
 
void setDamage (float damage)
 Set damage value.
 
void setLifetime (float lifetime)
 Set remaining lifetime.
 
void setOwnerId (std::uint32_t ownerId)
 Set owner entity ID.
 
void setFriendly (bool friendly)
 Set friendly status.
 
ComponentType getType () const override
 Get the component type ID.
 
- Public Member Functions inherited from ecs::IComponent
virtual ~IComponent ()=default
 Virtual destructor.
 

Private Attributes

float _damage
 Damage dealt on impact.
 
float _lifetime
 Remaining lifetime in seconds.
 
std::uint32_t _ownerId
 Entity ID of the shooter.
 
bool _friendly
 Team affiliation (true=friendly, false=enemy)
 

Detailed Description

Component for projectile entities (bullets, missiles, etc.).

Stores projectile-specific data including damage, lifetime duration, owner identification, and team affiliation (friendly/enemy).

Definition at line 21 of file Projectile.hpp.

Constructor & Destructor Documentation

◆ Projectile()

ecs::Projectile::Projectile ( float  damage,
float  lifetime,
std::uint32_t  ownerId,
bool  friendly 
)
inline

Constructor with projectile parameters.

Parameters
damageDamage dealt on impact
lifetimeDuration before auto-destruction (in seconds)
ownerIdEntity ID of the shooter
friendlyTrue if friendly projectile, false if enemy

Definition at line 30 of file Projectile.hpp.

◆ ~Projectile()

ecs::Projectile::~Projectile ( )
overridedefault

Member Function Documentation

◆ getDamage()

float ecs::Projectile::getDamage ( ) const
inline

Get damage value.

Returns
float Damage dealt on impact.

Definition at line 38 of file Projectile.hpp.

References _damage.

Referenced by ecs::CollisionSystem::handleProjectileCollision().

◆ getLifetime()

float ecs::Projectile::getLifetime ( ) const
inline

Get remaining lifetime.

Returns
float Seconds before auto-destruction.

Definition at line 44 of file Projectile.hpp.

References _lifetime.

◆ getOwnerId()

std::uint32_t ecs::Projectile::getOwnerId ( ) const
inline

Get owner entity ID.

Returns
std::uint32_t ID of the shooting entity.

Definition at line 50 of file Projectile.hpp.

References _ownerId.

◆ getType()

ComponentType ecs::Projectile::getType ( ) const
inlineoverridevirtual

Get the component type ID.

Returns
ComponentType Unique ID for Projectile component.

Implements ecs::IComponent.

Definition at line 86 of file Projectile.hpp.

◆ isFriendly()

bool ecs::Projectile::isFriendly ( ) const
inline

Check if projectile is friendly.

Returns
bool True if friendly, false if enemy.

Definition at line 56 of file Projectile.hpp.

References _friendly.

Referenced by Server::_serializeEntity(), ecs::CollisionSystem::handleModuleProjectileCollision(), and ecs::CollisionSystem::handleProjectileCollision().

◆ setDamage()

void ecs::Projectile::setDamage ( float  damage)
inline

Set damage value.

Parameters
damageNew damage value

Definition at line 62 of file Projectile.hpp.

References _damage.

◆ setFriendly()

void ecs::Projectile::setFriendly ( bool  friendly)
inline

Set friendly status.

Parameters
friendlyTrue for friendly, false for enemy

Definition at line 80 of file Projectile.hpp.

References _friendly.

◆ setLifetime()

void ecs::Projectile::setLifetime ( float  lifetime)
inline

Set remaining lifetime.

Parameters
lifetimeNew lifetime value in seconds

Definition at line 68 of file Projectile.hpp.

References _lifetime.

◆ setOwnerId()

void ecs::Projectile::setOwnerId ( std::uint32_t  ownerId)
inline

Set owner entity ID.

Parameters
ownerIdNew owner ID

Definition at line 74 of file Projectile.hpp.

References _ownerId.

Member Data Documentation

◆ _damage

float ecs::Projectile::_damage
private

Damage dealt on impact.

Definition at line 89 of file Projectile.hpp.

Referenced by getDamage(), and setDamage().

◆ _friendly

bool ecs::Projectile::_friendly
private

Team affiliation (true=friendly, false=enemy)

Definition at line 92 of file Projectile.hpp.

Referenced by isFriendly(), and setFriendly().

◆ _lifetime

float ecs::Projectile::_lifetime
private

Remaining lifetime in seconds.

Definition at line 90 of file Projectile.hpp.

Referenced by getLifetime(), and setLifetime().

◆ _ownerId

std::uint32_t ecs::Projectile::_ownerId
private

Entity ID of the shooter.

Definition at line 91 of file Projectile.hpp.

Referenced by getOwnerId(), and setOwnerId().


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