Space Plunder
Loading...
Searching...
No Matches
FWeaponStats_T Struct Reference

Represents statistics for a weapon. More...

#include <WeaponStructs.h>

Inheritance diagram for FWeaponStats_T:

Public Member Functions

bool operator== (const FWeaponStats_T &Other) const
 
bool operator!= (const FWeaponStats_T &Other) const
 
 FWeaponStats_T ()
 
bool GetIsAttachmentCompatible (const FString &AttachmentID, const EAttachmentType AttachmentType) const
 
FWeaponStats_T AddModifiers (const TArray< FWeaponModifiers > &Modifiers)
 
bool IsValid () const
 

Static Public Member Functions

static FWeaponStats_T Empty ()
 

Public Attributes

FString WeaponID = "DefaultWeapon"
 
FString WeaponDisplayName = "Default Weapon"
 
EWeaponType WeaponType = EWeaponType::HitScan
 
EWeaponOverlay WeaponOverlay = EWeaponOverlay::PistolOneHanded
 
bool bNonLethal = false
 
bool bSilenced = false
 
bool bMeleeWeapon = false
 
FName MeleeNotifyName = "Default"
 
FName FlashLightSocketName = "LightSource"
 
float FOV = 90.0f
 
int32 MaxAttachmentsAvailable = 1
 
FWeaponAttachmentsCompatibility AttachmentsCompatibility
 
int32 MaxAmmo = 128
 
int32 ClipSize = 32
 
FRecoilAnimData RecoilAnimData
 
float RecoilAnimRate = 650.0f
 
int32 RecoilBursts = 0
 
float Recoil = 1.0f
 
UCurveVector * RecoilCurve = nullptr
 
float BulletSpread = 2000.0f
 
float GunRange = 200000.0f
 
float WeaponRangeMin = 500.0f
 
float WeaponRangeMax = 3500.0f
 
float MaxDamageMultiplier = 5.0f
 
float MinDamageMultiplier = 0.5f
 
float ReloadTime = 1.0f
 
float DefaultDamage = 20.0f
 
TSubclassOf< class UDamageType > DamageType = UDamageType::StaticClass()
 
bool bHasAutoMode = false
 
bool bHasBurstMode = false
 
int32 BurstRounds = 3
 
float BurstCooldown = 0.2f
 
float FireRate = 100.0f
 
bool bMultiFire = false
 
int32 MultiFireRounds = 3
 
FVector WeaponOffset = FVector::ZeroVector
 
FRotator RotationOffset = FRotator::ZeroRotator
 
bool bIsLeftHand = false
 
FVector MuzzleOffset = FVector::ZeroVector
 
FRotator MuzzleRotation = FRotator::ZeroRotator
 
FVector MuzzleFlashOffset = FVector::ZeroVector
 
FVector RecoilOffset = FVector::ZeroVector
 
FRotator RecoilRotation = FRotator::ZeroRotator
 
class UTexture2D * WeaponThumbnail = nullptr
 
FCrosshairData Crosshair
 
class USkeletalMesh * MeshForPickup = nullptr
 
FWeaponSpawnDetails SpawnDetails = FWeaponSpawnDetails()
 
FWeaponProjectileStats_T WeaponProjectileStats = FWeaponProjectileStats_T::Empty()
 
FRotator ProjectileRotationOffset = FRotator::ZeroRotator
 
FString WeaponEffectsID = "DefaultEffects"
 

Detailed Description

Represents statistics for a weapon.

Constructor & Destructor Documentation

◆ FWeaponStats_T()

FWeaponStats_T::FWeaponStats_T ( )
inline
762 {
763
764 }

Member Function Documentation

◆ AddModifiers()

FWeaponStats_T FWeaponStats_T::AddModifiers ( const TArray< FWeaponModifiers > & Modifiers)
inline
794 {
795 for(const auto Modifier: Modifiers)
796 {
797 if(Modifier.bSilencer)
798 {
799 bSilenced = true;
800 }
801 if(Modifier.bDamageTypeModifier)
802 {
803 DamageType = Modifier.DamageType;
804 }
805 if(Modifier.bAddAutoMode)
806 {
807 bHasAutoMode = true;
808 }
809 if(Modifier.bAddBurstMode)
810 {
811 bHasBurstMode = true;
812 }
813 if(Modifier.bModifyAmmo)
814 {
815 MaxAmmo += Modifier.MaxAmmo;
816 ClipSize += Modifier.ClipSize;
817 }
818 if(Modifier.bModifySpread)
819 {
820 BulletSpread += Modifier.BulletSpread;
821 GunRange += Modifier.GunRange;
822 WeaponRangeMin += Modifier.WeaponRangeMin;
823 WeaponRangeMax += Modifier.WeaponRangeMax;
824 Recoil += Modifier.Recoil;
825 }
826 if(Modifier.bModifyFireRate)
827 {
828 ReloadTime += Modifier.ReloadTime;
829 BurstCooldown += Modifier.BurstCooldown;
830 FireRate += Modifier.FireRate;
831 }
832 if(Modifier.bModifyDamage)
833 {
834 DefaultDamage += Modifier.DefaultDamage;
835 MaxDamageMultiplier += Modifier.MaxDamageMultiplier;
836 MinDamageMultiplier += Modifier.MinDamageMultiplier;
837 }
838 }
839 return *this;
840 }
float DefaultDamage
Definition WeaponStructs.h:695
float FireRate
Definition WeaponStructs.h:710
float Recoil
Definition WeaponStructs.h:667
float MaxDamageMultiplier
Definition WeaponStructs.h:685
bool bSilenced
Definition WeaponStructs.h:637
bool bHasAutoMode
Definition WeaponStructs.h:700
int32 ClipSize
Definition WeaponStructs.h:656
float WeaponRangeMax
Definition WeaponStructs.h:682
float BurstCooldown
Definition WeaponStructs.h:707
float BulletSpread
Definition WeaponStructs.h:673
float MinDamageMultiplier
Definition WeaponStructs.h:688
TSubclassOf< class UDamageType > DamageType
Definition WeaponStructs.h:697
int32 MaxAmmo
Definition WeaponStructs.h:654
float GunRange
Definition WeaponStructs.h:676
bool bHasBurstMode
Definition WeaponStructs.h:703
float WeaponRangeMin
Definition WeaponStructs.h:679
float ReloadTime
Definition WeaponStructs.h:692

◆ Empty()

static FWeaponStats_T FWeaponStats_T::Empty ( )
inlinestatic
767 {
768 FWeaponStats_T EmptyWeaponStats;
769 return EmptyWeaponStats;
770 }
Represents statistics for a weapon.
Definition WeaponStructs.h:622

◆ GetIsAttachmentCompatible()

bool FWeaponStats_T::GetIsAttachmentCompatible ( const FString & AttachmentID,
const EAttachmentType AttachmentType ) const
inline
773 {
774 //- Check Blacklist //
775 for(const auto& ID : AttachmentsCompatibility.IDBlackList)
776 {
777 if(ID == AttachmentID)
778 {
779 return false;
780 }
781 }
782 //- Check available types //
783 for(const auto& AvailableType : AttachmentsCompatibility.AvailableAttachmentTypes)
784 {
785 if(AttachmentType == AvailableType)
786 {
787 return true;
788 }
789 }
790 return false;
791 }
FWeaponAttachmentsCompatibility AttachmentsCompatibility
Definition WeaponStructs.h:651

◆ IsValid()

bool FWeaponStats_T::IsValid ( ) const
inline
843 {
844 if(MeshForPickup == nullptr){return false;}
845 if(WeaponID == "DefaultWeapon"){return false;}
846 return true;
847 }
FString WeaponID
Definition WeaponStructs.h:627
class USkeletalMesh * MeshForPickup
Definition WeaponStructs.h:740

◆ operator!=()

bool FWeaponStats_T::operator!= ( const FWeaponStats_T & Other) const
inline
757 {
758 return WeaponID != Other.WeaponID;
759 }

◆ operator==()

bool FWeaponStats_T::operator== ( const FWeaponStats_T & Other) const
inline
753 {
754 return WeaponID == Other.WeaponID;
755 }

Member Data Documentation

◆ AttachmentsCompatibility

FWeaponAttachmentsCompatibility FWeaponStats_T::AttachmentsCompatibility

◆ bHasAutoMode

bool FWeaponStats_T::bHasAutoMode = false

◆ bHasBurstMode

bool FWeaponStats_T::bHasBurstMode = false

◆ bIsLeftHand

bool FWeaponStats_T::bIsLeftHand = false

◆ bMeleeWeapon

bool FWeaponStats_T::bMeleeWeapon = false

◆ bMultiFire

bool FWeaponStats_T::bMultiFire = false

◆ bNonLethal

bool FWeaponStats_T::bNonLethal = false

◆ bSilenced

bool FWeaponStats_T::bSilenced = false

◆ BulletSpread

float FWeaponStats_T::BulletSpread = 2000.0f

◆ BurstCooldown

float FWeaponStats_T::BurstCooldown = 0.2f

◆ BurstRounds

int32 FWeaponStats_T::BurstRounds = 3

◆ ClipSize

int32 FWeaponStats_T::ClipSize = 32

◆ Crosshair

FCrosshairData FWeaponStats_T::Crosshair

◆ DamageType

TSubclassOf<class UDamageType> FWeaponStats_T::DamageType = UDamageType::StaticClass()

◆ DefaultDamage

float FWeaponStats_T::DefaultDamage = 20.0f

◆ FireRate

float FWeaponStats_T::FireRate = 100.0f

◆ FlashLightSocketName

FName FWeaponStats_T::FlashLightSocketName = "LightSource"

◆ FOV

float FWeaponStats_T::FOV = 90.0f

◆ GunRange

float FWeaponStats_T::GunRange = 200000.0f

◆ MaxAmmo

int32 FWeaponStats_T::MaxAmmo = 128

◆ MaxAttachmentsAvailable

int32 FWeaponStats_T::MaxAttachmentsAvailable = 1

◆ MaxDamageMultiplier

float FWeaponStats_T::MaxDamageMultiplier = 5.0f

◆ MeleeNotifyName

FName FWeaponStats_T::MeleeNotifyName = "Default"

◆ MeshForPickup

class USkeletalMesh* FWeaponStats_T::MeshForPickup = nullptr

◆ MinDamageMultiplier

float FWeaponStats_T::MinDamageMultiplier = 0.5f

◆ MultiFireRounds

int32 FWeaponStats_T::MultiFireRounds = 3

◆ MuzzleFlashOffset

FVector FWeaponStats_T::MuzzleFlashOffset = FVector::ZeroVector

◆ MuzzleOffset

FVector FWeaponStats_T::MuzzleOffset = FVector::ZeroVector

◆ MuzzleRotation

FRotator FWeaponStats_T::MuzzleRotation = FRotator::ZeroRotator

◆ ProjectileRotationOffset

FRotator FWeaponStats_T::ProjectileRotationOffset = FRotator::ZeroRotator

◆ Recoil

float FWeaponStats_T::Recoil = 1.0f

◆ RecoilAnimData

FRecoilAnimData FWeaponStats_T::RecoilAnimData

◆ RecoilAnimRate

float FWeaponStats_T::RecoilAnimRate = 650.0f

◆ RecoilBursts

int32 FWeaponStats_T::RecoilBursts = 0

◆ RecoilCurve

UCurveVector* FWeaponStats_T::RecoilCurve = nullptr

◆ RecoilOffset

FVector FWeaponStats_T::RecoilOffset = FVector::ZeroVector

◆ RecoilRotation

FRotator FWeaponStats_T::RecoilRotation = FRotator::ZeroRotator

◆ ReloadTime

float FWeaponStats_T::ReloadTime = 1.0f

◆ RotationOffset

FRotator FWeaponStats_T::RotationOffset = FRotator::ZeroRotator

◆ SpawnDetails

FWeaponSpawnDetails FWeaponStats_T::SpawnDetails = FWeaponSpawnDetails()

◆ WeaponDisplayName

FString FWeaponStats_T::WeaponDisplayName = "Default Weapon"

◆ WeaponEffectsID

FString FWeaponStats_T::WeaponEffectsID = "DefaultEffects"

◆ WeaponID

FString FWeaponStats_T::WeaponID = "DefaultWeapon"

◆ WeaponOffset

FVector FWeaponStats_T::WeaponOffset = FVector::ZeroVector

◆ WeaponOverlay

EWeaponOverlay FWeaponStats_T::WeaponOverlay = EWeaponOverlay::PistolOneHanded

◆ WeaponProjectileStats

FWeaponProjectileStats_T FWeaponStats_T::WeaponProjectileStats = FWeaponProjectileStats_T::Empty()

◆ WeaponRangeMax

float FWeaponStats_T::WeaponRangeMax = 3500.0f

◆ WeaponRangeMin

float FWeaponStats_T::WeaponRangeMin = 500.0f

◆ WeaponThumbnail

class UTexture2D* FWeaponStats_T::WeaponThumbnail = nullptr

◆ WeaponType

EWeaponType FWeaponStats_T::WeaponType = EWeaponType::HitScan

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