Mortar Pro Plugin  Version 2
Modular Turret Plugin
All Classes Namespaces Functions Variables Enumerations Enumerator Pages
UMortarProBurstAimingComponent Class Reference

#include <MortarProBurstAimingComponent.h>

+ Inheritance diagram for UMortarProBurstAimingComponent:
+ Collaboration diagram for UMortarProBurstAimingComponent:

Public Member Functions

void BPWeaponFullyRecoveredFromHeating ()
 
float GetCoolDownPercentage () const
 
void GetGunBurstProperties (FMortarProGunBurstProperties &Properties) const
 
void IncreaseBurstFiringRate (const int32 &NewBurstFireRate)
 
bool IsWeaponFullyHeated () const
 
void ReduceCoolDownDuration (const float &NewCoolDownDuration)
 
void ResetAimingRunTimeParameters () override
 
void SetGunBurstProperties (const FMortarProGunBurstProperties &NewProperties)
 
void StopComponent () override
 
 UMortarProBurstAimingComponent ()
 
- Public Member Functions inherited from UMortarProAimingComponent
void FireAt (const FVector &AimLocation, AActor *TargetActor, TArray< AActor * > SecondaryTargetsRef)
 
void GetAllFiringSocketsName (TArray< FName > &SocketsName) const
 
EMortarProFiringState GetCurrentState () const
 
float GetDirectionThresholdComparision () const
 
void GetFiringCountForAllSockets (TMap< FName, int32 > &PerSocketFireCount) const
 
int32 GetFiringCountForSocket (const FName &SocketName) const
 
float GetInitialIdleEventDelay () const
 
void GetProjectile (TMap< FName, FMortarProGunSocketProperties > &OutProjectiles) const
 
float GetShotsSpreadDegree () const
 
bool HasAmmo () const
 
bool HasUnlimitedAmmo () const
 
void InitializeAiming (class UMortarProTurretMeshComponent *TurretToSet, class UMortarProBarrelMeshComponent *BarrelToSet, AActor *Owner)
 
bool IsGunGravityEnabled () const
 
bool IsPredictTargetPositionEnabled () const
 
virtual void ResetAimingRunTimeParameters ()
 
void SetDirectionThresholdComparision (const float &Threshold)
 
void SetFiringLeftForAllSockets (const TMap< FName, int32 > &PerSocketFireCount)
 
void SetFiringLeftForSocket (const FName &SocketName, const int32 &InFiringLeft)
 
void SetGunGravity (const bool &bGunGravity)
 
void SetIdle ()
 
void SetInitialIdleEventDelay (const float &Delay)
 
void SetPredictTargetPosition (const bool &bEnable)
 
void SetProjectile (const TMap< FName, FMortarProGunSocketProperties > &ProjectileToSet)
 
void SetShotsSpreadDegree (const float &ShotsSpread)
 
void SetUnlimitedAmmo (const bool &bUnlimited)
 
virtual void StopComponent ()
 
 UMortarProAimingComponent ()
 

Public Attributes

FMortarProBeginBurstFiring BeginBurstFiring
 
FMortarProBeginWarmup BeginBurstFiringWarmup
 
FMortarProBeginCoolDown BeginCoolDown
 
FMortarProEndBurstFiring EndBurstFiring
 
FMortarProEndWarmup EndBurstFiringWarmup
 
FMortarProEndCoolDown EndCoolDown
 
- Public Attributes inherited from UMortarProAimingComponent
FMortarProBeginAimingMovement BeginAimingMovementTowardsTarget
 
FMortarProBeginFire BeginFire
 
FMortarProBeginIdleState BeginIdleState
 
FMortarProEndAimingMovement EndAimingMovementTowardsTarget
 
FMortarProEndFiring EndFiring
 
FMortarProEndIdleState EndIdleState
 

Protected Member Functions

void BeginPlay () override
 
void Fire () override
 
void FireProjectile () override
 
void SetBarrelState () override
 
void StopCoolDown ()
 
void StopFiring () override
 
void TickComponent (float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override
 
- Protected Member Functions inherited from UMortarProAimingComponent
virtual void BeginPlay () override
 
virtual void Fire ()
 
virtual void FireProjectile ()
 
class UMortarProPoolSubsystemGetValidSubSystem ()
 
bool IsMoving (const FVector &HitLocation)
 
virtual void SetBarrelState ()
 
virtual void StopFiring ()
 
virtual void TickComponent (float DeltaTime, ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override
 

Private Member Functions

void CoolDown ()
 
bool PreFire ()
 
void StartBurstFiring ()
 
void StartCoolDown ()
 

Private Attributes

uint32 bIsWeaponHeated: 1
 
uint32 bOnEndBurstFiringWarmupEvent: 1
 
FMortarProGunBurstProperties BurstProperties
 
FTimerHandle CoolDownProjectileTimer
 
FTimerHandle FireProjectileTimer
 
FMortarProGunBurstProperties OriginalBurstProperties
 
int32 TotalFireCountAllowedBeforeHeating = 0
 
int32 TotalTimesBurstTimerToBeCalled = 1
 
int32 TotalTimesCoolDownTimerToBeCalled = 1
 

Additional Inherited Members

- Protected Attributes inherited from UMortarProAimingComponent
uint32 bAmmoLeft: 1
 
class UMortarProBarrelMeshComponentBarrel = nullptr
 
uint32 bEnableGunGravity: 1
 
uint32 bEnablePredictTargetPosition: 1
 
uint32 bUnlimitedAmmo: 1
 
FVector CurrentAimDirection
 
EMortarProFiringState CurrentFiringState
 
FVector CurrentHitTargetLocation
 
FVector DefaultAimLocation
 
FName DefaultSocketName
 
class USoundBase * FireSound
 
float InitialIdleEventDelay = 4.f
 
float LastFireTime = 0
 
class AActor * OwnerActor
 
FString OwnerName
 
TMap< FName, FMortarProGunSocketPropertiesProjectileSpawnSockets
 
float ShotsSpreadDegree = 2.f
 
TWeakObjectPtr< AActor > TargetActor
 
class UMortarProTurretMeshComponentTurret = nullptr
 

Detailed Description

This class is responible for implementing Burst Behavior of gun Derives from MortarProAimingComponent. To use this component class of aimingcomponent in blueprit has to be changed to burst aiming. This class provides functionality like burst firing,weapon getting hot while firing

Constructor & Destructor Documentation

◆ UMortarProBurstAimingComponent()

UMortarProBurstAimingComponent::UMortarProBurstAimingComponent ( )

Member Function Documentation

◆ BeginPlay()

void UMortarProBurstAimingComponent::BeginPlay ( )
overrideprotectedvirtual

Function called on play.

Reimplemented from UMortarProAimingComponent.

◆ BPWeaponFullyRecoveredFromHeating()

void UMortarProBurstAimingComponent::BPWeaponFullyRecoveredFromHeating ( )

Event Called When Gun is fully recovered and is ready to fire

◆ CoolDown()

void UMortarProBurstAimingComponent::CoolDown ( )
private

CoolDown to happen after firing for round has been completed

◆ Fire()

void UMortarProBurstAimingComponent::Fire ( )
overrideprotectedvirtual

This method is called to fire a projectile from AI

Reimplemented from UMortarProAimingComponent.

◆ FireProjectile()

void UMortarProBurstAimingComponent::FireProjectile ( )
overrideprotectedvirtual

This Function is responsible for firing a projectile

Reimplemented from UMortarProAimingComponent.

◆ GetCoolDownPercentage()

float UMortarProBurstAimingComponent::GetCoolDownPercentage ( ) const

Gets Cooldown Percentage. 100 percentage means it is fully cooldown 0 means fully heated

Returns
Float Percentage

◆ GetGunBurstProperties()

void UMortarProBurstAimingComponent::GetGunBurstProperties ( FMortarProGunBurstProperties Properties) const

Gets Gun Burst Properties

Parameters
[out]PropertiesProperties of Burst Firing

◆ IncreaseBurstFiringRate()

void UMortarProBurstAimingComponent::IncreaseBurstFiringRate ( const int32 &  NewBurstFireRate)

Increases BurstFiring Rate

Parameters
[in]NewBurstFireRateBurst Rate at which Burst Firing timer will be called

◆ IsWeaponFullyHeated()

bool UMortarProBurstAimingComponent::IsWeaponFullyHeated ( ) const

Tells whether a weapon is fully heated

Returns
Bool true if weapon is heated and unable to fire false otherwise

◆ PreFire()

bool UMortarProBurstAimingComponent::PreFire ( )
private

Operations or Checks to perform before Firing

Returns
bool if firing can be done or not

◆ ReduceCoolDownDuration()

void UMortarProBurstAimingComponent::ReduceCoolDownDuration ( const float &  NewCoolDownDuration)

Reduces Cooldown Duration

Parameters
[in]NewCoolDownDurationTime in seconds for which the cooldown will happen

◆ ResetAimingRunTimeParameters()

void UMortarProBurstAimingComponent::ResetAimingRunTimeParameters ( )
overridevirtual

Resets all Shooting runtime Parameters for Burst Shooting Modes. It will also stop firing and resets cooldown period

Reimplemented from UMortarProAimingComponent.

◆ SetBarrelState()

void UMortarProBurstAimingComponent::SetBarrelState ( )
overrideprotectedvirtual

Sets Barrel State like whether there is any ammo left,or gun is moving etc.

Reimplemented from UMortarProAimingComponent.

◆ SetGunBurstProperties()

void UMortarProBurstAimingComponent::SetGunBurstProperties ( const FMortarProGunBurstProperties NewProperties)

Sets Gun Burst Shooting Parameters

Parameters
[in]NewPropertiesProperties to set for Burst firing mode

◆ StartBurstFiring()

void UMortarProBurstAimingComponent::StartBurstFiring ( )
private

Starts Burst Firing in a timer

◆ StartCoolDown()

void UMortarProBurstAimingComponent::StartCoolDown ( )
private

Starts CoolDown in a timer

◆ StopComponent()

void UMortarProBurstAimingComponent::StopComponent ( )
overridevirtual

Stops Gun Firing and CoolDown

Reimplemented from UMortarProAimingComponent.

◆ StopCoolDown()

void UMortarProBurstAimingComponent::StopCoolDown ( )
protected

Stops Call Down immediately

◆ StopFiring()

void UMortarProBurstAimingComponent::StopFiring ( )
overrideprotectedvirtual

Stops Burst Firing immediately

Reimplemented from UMortarProAimingComponent.

◆ TickComponent()

void UMortarProBurstAimingComponent::TickComponent ( float  DeltaTime,
enum ELevelTick  TickType,
FActorComponentTickFunction *  ThisTickFunction 
)
overrideprotectedvirtual

Function Called on Every Tick

Reimplemented from UMortarProAimingComponent.

Member Data Documentation

◆ BeginBurstFiring

FMortarProBeginBurstFiring UMortarProBurstAimingComponent::BeginBurstFiring

This is a blueprint event called when Gun is about to start a burst fire after warmup

◆ BeginBurstFiringWarmup

FMortarProBeginWarmup UMortarProBurstAimingComponent::BeginBurstFiringWarmup

This is a blueprint event called when Gun is in warmup phase before firing a burst round

◆ BeginCoolDown

FMortarProBeginCoolDown UMortarProBurstAimingComponent::BeginCoolDown

This is a blueprint event that is called as soon as cooldown starts which happens after burst firing has caused weapon heatings

◆ bIsWeaponHeated

uint32 UMortarProBurstAimingComponent::bIsWeaponHeated
private

Flag telling if weapon has been heated

◆ bOnEndBurstFiringWarmupEvent

uint32 UMortarProBurstAimingComponent::bOnEndBurstFiringWarmupEvent
private

Flag tells if Burst Firing Warmup event has been called

◆ BurstProperties

FMortarProGunBurstProperties UMortarProBurstAimingComponent::BurstProperties
private

This represents the properties that can be set for Burst gun firing

◆ CoolDownProjectileTimer

FTimerHandle UMortarProBurstAimingComponent::CoolDownProjectileTimer
private

Timer handle for Cooldown

◆ EndBurstFiring

FMortarProEndBurstFiring UMortarProBurstAimingComponent::EndBurstFiring

This is a blueprint event called when Gun is ending a burst round

◆ EndBurstFiringWarmup

FMortarProEndWarmup UMortarProBurstAimingComponent::EndBurstFiringWarmup

This is a blueprint event called when Gun is in warmup phase before firing a burst round

◆ EndCoolDown

FMortarProEndCoolDown UMortarProBurstAimingComponent::EndCoolDown

This is a blueprint event that is called as soon as cooldown ends. This can happen in two cases when weapon is fully recovered or if it is ready to go for shooting (this happens when weapon is not fully heated)

◆ FireProjectileTimer

FTimerHandle UMortarProBurstAimingComponent::FireProjectileTimer
private

Timer handle for Firing a projectile

◆ OriginalBurstProperties

FMortarProGunBurstProperties UMortarProBurstAimingComponent::OriginalBurstProperties
private

This stores the original Burst Properties. This is set in the constructor only once

◆ TotalFireCountAllowedBeforeHeating

int32 UMortarProBurstAimingComponent::TotalFireCountAllowedBeforeHeating = 0
private

Stores Copy if Total Fire COunt before weapon will be heated

◆ TotalTimesBurstTimerToBeCalled

int32 UMortarProBurstAimingComponent::TotalTimesBurstTimerToBeCalled = 1
private

Total Times CoolDown Timer has to be called

◆ TotalTimesCoolDownTimerToBeCalled

int32 UMortarProBurstAimingComponent::TotalTimesCoolDownTimerToBeCalled = 1
private

Total Times CoolDown Timer has to be called


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