LEAP Documentation 40220
Documentation for the LEAP project
AProjectile Class Reference

#include <Projectile.h>

Inheritance diagram for AProjectile:
AWeaponInstanceActor IObjectPoolInterface IOwnedInterface ITeamInterface AProjectileExplosive

Public Member Functions

void Init (const int32 ID, const uint8 InShotID, class UWeaponInstanceProjectile *Weapon)
 
void AddIgnoredActor (AActor *ActorToIgnore)
 
FVector GetStartLocation () const
 
int32 GetProjectileID () const
 
bool ShouldSpawnActorOnHit () const
 
TSubclassOf< AActor > GetActorToSpawnOnHit () const
 
const TArray< FVector_NetQuantize > & GetProjectilePath () const
 
virtual int32 GetTicketUsageCount () const
 
FORCEINLINE class UDataTable * GetImpactEffectTable () const
 
void UpdateDamageModifier (float DamageModifierIn)
 
FORCEINLINE float GetDamageModifier () const
 
virtual bool Destroy (bool bNetForce=false, bool bShouldModifyLevel=true) override
 
bool IsReflectedProjectile () const
 
void SetReflectedProjectile (bool const bInReflectedProjectile)
 
- Public Member Functions inherited from AWeaponInstanceActor
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason) override
 
virtual APlayerState * GetOwnedPlayerState () const override
 
virtual void OnOwnerLeave () override
 
virtual void SetWeaponInstanceClass (TSubclassOf< UWeaponInstance > WeaponInstanceClass)
 
APlayerState * GetPlayerOwner () const
 
virtual int32 GetTeam () const override
 
virtual AProjectXCharacterGetOwningPawn (AProjectXPlayerController *const OverrideController=nullptr) const
 
virtual UWeaponComponent * GetOwningWeaponComponent () const
 
bool IsLocallyOwned () const
 
FORCEINLINE TSubclassOf< UWeaponInstanceGetOwningWeaponClass () const
 
const UWeaponInstanceGetOwningWeaponCDO () const
 
template<class T >
const T * GetOwningWeaponCDO () const
 
- Public Member Functions inherited from IOwnedInterface
template<class T >
T * GetOwnedPlayerState () const
 
virtual APlayerState * GetOwnedPlayerState () const
 
template<class T >
T * GetOwningController () const
 
virtual AController * GetOwningController () const
 
virtual void OnOwnerLeave ()
 
virtual void OnOwnerDied ()
 
- Public Member Functions inherited from ITeamInterface
virtual int32 GetTeam () const
 
virtual int32 SetTeam (int32 NewTeam)
 
- Public Member Functions inherited from IObjectPoolInterface
virtual void OnSpawnedFromObjectPool ()
 
virtual void OnReleasedToObjectPool ()
 
void K2_OnSpawnedFromObjectPool ()
 
void K2_OnReleasedToObjectPool ()
 

Public Attributes

FImpactSignature OnImpact
 
FTransform CosmeticTransform = FTransform::Identity
 

Protected Member Functions

virtual void BeginPlay () override
 
virtual void OnSpawnedFromObjectPool () override
 
virtual void OnReleasedToObjectPool () override
 
virtual void Tick (float DeltaTime) override
 
virtual void InitializeMovementComponent ()
 
virtual void OnHit (AActor *SelfActor, AActor *OtherActor, FVector NormalImpulse, const FHitResult &Hit)
 
virtual void GenerateHitRequest (AActor *OtherActor, UPrimitiveComponent *OtherComp, FVector NormalImpulse, const FHitResult &Hit, const FRotator &CustomRotator=FRotator::ZeroRotator, const TArray< AActor * > DamagedActors=TArray< AActor * >())
 
void UpdateProjectilePath ()
 
void Multicast_OnHit (AActor *SelfActor, AActor *OtherActor, const FVector &NormalImpulse, const FHitResult &Hit)
 
void OnAccelerationTowardsHomingTargetNotify (bool bIsAccelerating)
 
virtual void SpawnImpactEffect (const FHitResult &Hit, AActor *OtherActor, struct FDamageEvent const &DamageEvent, AController *EventInstigator, AActor *DamageCauser)
 
virtual void BeginPlay () override
 

Protected Attributes

float LingerTime3P = 0.2f
 
float LingerTime1P = 0.05f
 
float StartingCosmeticScaleMultiplier3P = 0.05f
 
float SmoothInterpSpeed3P = 3.0f
 
float ScaleLerpSpeed3P = 5.0f
 
float StartingCosmeticScaleMultiplier1P = 0.05f
 
float SmoothInterpSpeed1P = 1.0f
 
float ScaleLerpSpeed1P = 2.0f
 
int32 MaxBounces = 0
 
bool bSpawnedActorMatchesProjectileOrientation = false
 
bool bSpawnActorOnHit = false
 
class UMovementComponent * ProjectileMovement = NULL
 
float PathPointRate = 0.5f
 
class UDataTable * ImpactEffectTable = NULL
 
class UParticleSystem * TrailParticle = NULL
 
FRotator TrailRotation = FRotator::ZeroRotator
 
FVector TrailLocation = FVector::ZeroVector
 
TSubclassOf< AActor > ActorClassToSpawn
 
TArray< TWeakObjectPtr< AActor > > IgnoredActors
 
TWeakObjectPtr< AActor > HomingTarget = nullptr
 
TWeakObjectPtr< AActor > AimTarget = nullptr
 
float AimTargetFalloff = 1.0f
 
bool bLocallyOwnedProjectile = false
 
int32 CurrentBounces = 0
 
float LingerTime = 0.0f
 
bool bDestroyOnHit = false
 
bool bReflectedProjectile = false
 
float DamageModifier = 1.0f
 
FVector StartLocation = FVector(0)
 
TArray< FVector_NetQuantize > ProjectilePath = TArray<FVector_NetQuantize>()
 
FTimerHandle PathCollectionTimer
 
int32 ProjectileID = INDEX_NONE
 
uint8 ShotID
 
float InitialSpeed = 0.0f
 
class UParticleSystemComponent * TrailParticleSystem = NULL
 
class TArray< TWeakObjectPtr< UMeshComponent > > MeshComponents
 
UPXProjectileMovementComponentMovementComponent = nullptr
 
class ULightComponent * LightComponent = NULL
 
- Protected Attributes inherited from AWeaponInstanceActor
APlayerState * PlayerOwner = NULL
 
TSubclassOf< UWeaponInstanceOwningWeaponClass = NULL
 

Friends

class UTurretComponent
 

Additional Inherited Members

- Static Public Member Functions inherited from ITeamInterface
static bool IsValidTeam (const ITeamInterface *const TeamInferface)
 

Member Function Documentation

◆ AddIgnoredActor()

void AProjectile::AddIgnoredActor ( AActor *  ActorToIgnore)

◆ BeginPlay()

void AProjectile::BeginPlay ( )
overrideprotectedvirtual

Reimplemented from AWeaponInstanceActor.

◆ Destroy()

bool AProjectile::Destroy ( bool  bNetForce = false,
bool  bShouldModifyLevel = true 
)
overridevirtual

◆ GenerateHitRequest()

void AProjectile::GenerateHitRequest ( AActor *  OtherActor,
UPrimitiveComponent *  OtherComp,
FVector  NormalImpulse,
const FHitResult &  Hit,
const FRotator &  CustomRotator = FRotator::ZeroRotator,
const TArray< AActor * >  DamagedActors = TArray<AActor*>() 
)
protectedvirtual

Reimplemented in AProjectileExplosive.

◆ GetActorToSpawnOnHit()

TSubclassOf< AActor > AProjectile::GetActorToSpawnOnHit ( ) const
inline

◆ GetDamageModifier()

FORCEINLINE float AProjectile::GetDamageModifier ( ) const
inline

◆ GetImpactEffectTable()

FORCEINLINE class UDataTable * AProjectile::GetImpactEffectTable ( ) const
inline

◆ GetProjectileID()

int32 AProjectile::GetProjectileID ( ) const
inline

◆ GetProjectilePath()

const TArray< FVector_NetQuantize > & AProjectile::GetProjectilePath ( ) const
inline

◆ GetStartLocation()

FVector AProjectile::GetStartLocation ( ) const
inline

◆ GetTicketUsageCount()

int32 AProjectile::GetTicketUsageCount ( ) const
virtual

Reimplemented in AProjectileExplosive.

◆ Init()

void AProjectile::Init ( const int32  ID,
const uint8  InShotID,
class UWeaponInstanceProjectile Weapon 
)

◆ InitializeMovementComponent()

void AProjectile::InitializeMovementComponent ( )
protectedvirtual

◆ IsReflectedProjectile()

bool AProjectile::IsReflectedProjectile ( ) const
inline

◆ Multicast_OnHit()

void AProjectile::Multicast_OnHit ( AActor *  SelfActor,
AActor *  OtherActor,
const FVector &  NormalImpulse,
const FHitResult &  Hit 
)
protected

◆ OnAccelerationTowardsHomingTargetNotify()

void AProjectile::OnAccelerationTowardsHomingTargetNotify ( bool  bIsAccelerating)
protected

◆ OnHit()

void AProjectile::OnHit ( AActor *  SelfActor,
AActor *  OtherActor,
FVector  NormalImpulse,
const FHitResult &  Hit 
)
protectedvirtual

Reimplemented in AProjectileExplosive.

◆ OnReleasedToObjectPool()

void AProjectile::OnReleasedToObjectPool ( )
overrideprotectedvirtual

Reimplemented from IObjectPoolInterface.

Reimplemented in AProjectileExplosive.

◆ OnSpawnedFromObjectPool()

void AProjectile::OnSpawnedFromObjectPool ( )
overrideprotectedvirtual

Reimplemented from IObjectPoolInterface.

Reimplemented in AProjectileExplosive.

◆ SetReflectedProjectile()

void AProjectile::SetReflectedProjectile ( bool const  bInReflectedProjectile)

◆ ShouldSpawnActorOnHit()

bool AProjectile::ShouldSpawnActorOnHit ( ) const
inline

◆ SpawnImpactEffect()

void AProjectile::SpawnImpactEffect ( const FHitResult &  Hit,
AActor *  OtherActor,
struct FDamageEvent const &  DamageEvent,
AController *  EventInstigator,
AActor *  DamageCauser 
)
protectedvirtual

◆ Tick()

void AProjectile::Tick ( float  DeltaTime)
overrideprotectedvirtual

◆ UpdateDamageModifier()

void AProjectile::UpdateDamageModifier ( float  DamageModifierIn)
inline

◆ UpdateProjectilePath()

void AProjectile::UpdateProjectilePath ( )
protected

Friends And Related Function Documentation

◆ UTurretComponent

friend class UTurretComponent
friend

Member Data Documentation

◆ ActorClassToSpawn

TSubclassOf<AActor> AProjectile::ActorClassToSpawn
protected

◆ AimTarget

TWeakObjectPtr<AActor> AProjectile::AimTarget = nullptr
protected

◆ AimTargetFalloff

float AProjectile::AimTargetFalloff = 1.0f
protected

◆ bDestroyOnHit

bool AProjectile::bDestroyOnHit = false
protected

◆ bLocallyOwnedProjectile

bool AProjectile::bLocallyOwnedProjectile = false
protected

◆ bReflectedProjectile

bool AProjectile::bReflectedProjectile = false
protected

◆ bSpawnActorOnHit

bool AProjectile::bSpawnActorOnHit = false
protected

◆ bSpawnedActorMatchesProjectileOrientation

bool AProjectile::bSpawnedActorMatchesProjectileOrientation = false
protected

◆ CosmeticTransform

FTransform AProjectile::CosmeticTransform = FTransform::Identity

◆ CurrentBounces

int32 AProjectile::CurrentBounces = 0
protected

◆ DamageModifier

float AProjectile::DamageModifier = 1.0f
protected

◆ HomingTarget

TWeakObjectPtr<AActor> AProjectile::HomingTarget = nullptr
protected

◆ IgnoredActors

TArray<TWeakObjectPtr<AActor> > AProjectile::IgnoredActors
protected

◆ ImpactEffectTable

class UDataTable* AProjectile::ImpactEffectTable = NULL
protected

◆ InitialSpeed

float AProjectile::InitialSpeed = 0.0f
protected

◆ LightComponent

class ULightComponent* AProjectile::LightComponent = NULL
protected

◆ LingerTime

float AProjectile::LingerTime = 0.0f
protected

◆ LingerTime1P

float AProjectile::LingerTime1P = 0.05f
protected

◆ LingerTime3P

float AProjectile::LingerTime3P = 0.2f
protected

◆ MaxBounces

int32 AProjectile::MaxBounces = 0
protected

◆ MeshComponents

class TArray< TWeakObjectPtr< UMeshComponent > > AProjectile::MeshComponents
protected

◆ MovementComponent

UPXProjectileMovementComponent* AProjectile::MovementComponent = nullptr
protected

◆ OnImpact

FImpactSignature AProjectile::OnImpact

◆ PathCollectionTimer

FTimerHandle AProjectile::PathCollectionTimer
protected

◆ PathPointRate

float AProjectile::PathPointRate = 0.5f
protected

◆ ProjectileID

int32 AProjectile::ProjectileID = INDEX_NONE
protected

◆ ProjectileMovement

class UMovementComponent* AProjectile::ProjectileMovement = NULL
protected

◆ ProjectilePath

TArray<FVector_NetQuantize> AProjectile::ProjectilePath = TArray<FVector_NetQuantize>()
protected

◆ ScaleLerpSpeed1P

float AProjectile::ScaleLerpSpeed1P = 2.0f
protected

◆ ScaleLerpSpeed3P

float AProjectile::ScaleLerpSpeed3P = 5.0f
protected

◆ ShotID

uint8 AProjectile::ShotID
protected

◆ SmoothInterpSpeed1P

float AProjectile::SmoothInterpSpeed1P = 1.0f
protected

◆ SmoothInterpSpeed3P

float AProjectile::SmoothInterpSpeed3P = 3.0f
protected

◆ StartingCosmeticScaleMultiplier1P

float AProjectile::StartingCosmeticScaleMultiplier1P = 0.05f
protected

◆ StartingCosmeticScaleMultiplier3P

float AProjectile::StartingCosmeticScaleMultiplier3P = 0.05f
protected

◆ StartLocation

FVector AProjectile::StartLocation = FVector(0)
protected

◆ TrailLocation

FVector AProjectile::TrailLocation = FVector::ZeroVector
protected

◆ TrailParticle

class UParticleSystem* AProjectile::TrailParticle = NULL
protected

◆ TrailParticleSystem

class UParticleSystemComponent* AProjectile::TrailParticleSystem = NULL
protected

◆ TrailRotation

FRotator AProjectile::TrailRotation = FRotator::ZeroRotator
protected

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