216 lines
7.9 KiB
C++
Executable file
216 lines
7.9 KiB
C++
Executable file
#pragma once
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/NoExportTypes.h"
|
|
#include "Engine/EngineTypes.h"
|
|
#include "Engine/NetSerialization.h"
|
|
#include "DoubleDrillDamageItem.h"
|
|
#include "DualAnimatedItem.h"
|
|
#include "EDoubleDrillState.h"
|
|
#include "RejoinListener.h"
|
|
#include "Upgradable.h"
|
|
#include "UpgradableGear.h"
|
|
#include "DoubleDrillItem.generated.h"
|
|
|
|
class AActor;
|
|
class UAnimMontage;
|
|
class UDamageClass;
|
|
class UDamageComponent;
|
|
class UDialogDataAsset;
|
|
class UDoubleDrillAggregator;
|
|
class UFSDAudioComponent;
|
|
class UFSDPhysicalMaterial;
|
|
class UFirstPersonParticleSystemComponent;
|
|
class UForceFeedbackEffect;
|
|
class UParticleSystem;
|
|
|
|
UCLASS(Blueprintable)
|
|
class ADoubleDrillItem : public ADualAnimatedItem, public IUpgradable, public IUpgradableGear, public IRejoinListener {
|
|
GENERATED_BODY()
|
|
public:
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
|
|
UFirstPersonParticleSystemComponent* FP_Left_DrillParticles;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
|
|
UFirstPersonParticleSystemComponent* FP_Right_DrillParticles;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
|
|
UDamageComponent* DamageComponent;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
|
|
UFSDAudioComponent* AudioComponent;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
|
|
UDoubleDrillAggregator* Aggregator;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UAnimMontage* FPMineMontage;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UAnimMontage* TPMineMontage;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UAnimMontage* FPOverheat;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UAnimMontage* TPOverheat;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UAnimMontage* FPGunsling;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UAnimMontage* TPGunsling;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
FName MiningSpeedAudioParamterName;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UParticleSystem* DrillParticles;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UForceFeedbackEffect* DrillRumble;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float BlockParticlesScaleFP;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float BlockParticlesScaleTP;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
EDoubleDrillState State;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float MovementPenalty;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float MiningRate;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float HeatReductionPerKill;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
FVector CarveSize;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float CarveNoise;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float CarverRayCastLength;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float CarveTerrainDistanceCheck;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
float TimeToNextMine;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
float CurrentDrillSpeed;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float DamageDistance;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float DamageRadius;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float FriendlyDamageRadius;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float DamageRate;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float Damage;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float armorDamageMultiplier;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UDamageClass* DamageClass;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float FriendlyFireModifier;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float MaxFuel;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
float Fuel;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float FuelUsePerDig;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float FuelUsePerMelee;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float SupplyStatusWeight;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UDialogDataAsset* ShoutOutOfFuel;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
TArray<FHitResult> HitCache;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
TArray<FDoubleDrillDamageItem> DamageCache;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float DrillParticlesDuration;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, ReplicatedUsing=OnRep_SimulatingMining, meta=(AllowPrivateAccess=true))
|
|
bool IsMining;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, ReplicatedUsing=OnRep_IsGunslinging, meta=(AllowPrivateAccess=true))
|
|
bool IsGunslinging;
|
|
|
|
ADoubleDrillItem();
|
|
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
|
|
|
|
UFUNCTION(BlueprintCallable, Reliable, Server)
|
|
void Server_StopMining();
|
|
|
|
UFUNCTION(BlueprintCallable, Reliable, Server)
|
|
void Server_StartMining();
|
|
|
|
UFUNCTION(BlueprintCallable, Reliable, Server)
|
|
void Server_DoDamage(const TArray<FDoubleDrillDamageItem>& Targets);
|
|
|
|
UFUNCTION(BlueprintCallable, Reliable, Server)
|
|
void Server_DigBlock(FVector_NetQuantize Start, FVector_NetQuantize End);
|
|
|
|
UFUNCTION(BlueprintCallable)
|
|
void OnTargetKilled(AActor* Target, UFSDPhysicalMaterial* PhysMat, bool wasDirectHit);
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
|
|
void OnStopDrilling();
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
|
|
void OnStartDrilling();
|
|
|
|
UFUNCTION(BlueprintCallable)
|
|
void OnRep_SimulatingMining();
|
|
|
|
UFUNCTION(BlueprintCallable)
|
|
void OnRep_IsGunslinging();
|
|
|
|
UFUNCTION(BlueprintCallable)
|
|
void OnDrillParticlesTimerElapsed();
|
|
|
|
UFUNCTION(BlueprintCallable, Client, Reliable)
|
|
void Client_Resupply(float percentage);
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
|
|
void BP_OnDrillDamage();
|
|
|
|
UFUNCTION(BlueprintCallable, NetMulticast, Unreliable)
|
|
void All_SimulateDigDebris(FVector_NetQuantize Position, int32 DebrisIndex);
|
|
|
|
UFUNCTION(BlueprintCallable, NetMulticast, Unreliable)
|
|
void All_SimulateDigBlock(FVector_NetQuantize Position, bool SpawnParticles, int32 Material);
|
|
|
|
UFUNCTION(BlueprintCallable, NetMulticast, Unreliable)
|
|
void All_SimulateDamage(const TArray<FDoubleDrillDamageItem>& Targets);
|
|
|
|
|
|
// Fix for true pure virtual functions not being implemented
|
|
};
|
|
|