5#include "CoreMinimal.h"
7#include "WeaponInstanceGroundPound.generated.h"
10class UAfflictionInstance;
15 GENERATED_UCLASS_BODY()
18 virtual bool Fire(uint8
Mode,
float WorldTimeOverride = -1.f)
override;
19 virtual void TickComponent(
float DeltaTime,
enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction)
override;
20 virtual FVector GetWeaponMovementDirection()
const override;
21 virtual float GetDamage(
const FHitResult& HitResult,
float DamageModifer = 1.0f,
const UWeaponComponent* WeaponComponent = NULL)
const override {
return MaxDamage; }
23 virtual void DamageActor(
const FHitResult& HitResult)
override;
25 virtual
void LandedOnGround(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult&
Hit);
26 UFUNCTION(Client, Reliable)
27 void Client_LandedOnGround(const FHitResult&
Hit);
28 UFUNCTION(NetMulticast, Reliable)
29 void Multicast_PlayLandingEffects(const FHitResult&
Hit);
30 UFUNCTION(NetMulticast, Unreliable)
31 void Multicast_PlayAttackEffect();
32 virtual
void ToggleDesignatorMarker(
bool bEnable) override;
33 virtual
bool CanEquip() const override;
34 virtual
bool CanUnEquip(
bool bTestOnly = false) const;
36 virtual
bool UnEquip(
bool bForce = false) override;
37 virtual
void OnWeaponDown() override;
38 virtual
void FireComplete(uint8
Mode) override;
39 virtual
bool GetTargetTransform(FTransform& Transform) const override;
40 virtual
bool CanFire(
EWeaponError& ErrorMessage, uint8
Mode = 0) const override;
41 virtual
void OnChargeValueUpdated_Implementation(
float Charge) override;
43 UFUNCTION(BlueprintPure)
44 bool IsMinimumHeightReached() const;
45 UFUNCTION(BlueprintPure)
46 float GetCurrentHeight() const;
49 UFUNCTION(BlueprintImplementableEvent)
50 void OnLandedGround(const FHitResult&
Hit);
54 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
55 UAnimMontage* DashCompleteAnimation1P = NULL;
57 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
58 UAnimMontage* DashCompleteAnimation3P = NULL;
60 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
61 UAnimMontage* DashStartAnimation1P = NULL;
63 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
64 UAnimMontage* DashStartAnimation3P = NULL;
66 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
67 TSubclassOf<class UAfflictionInstance> GroundPoundAfflictionClass = NULL;
69 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
70 TSubclassOf<class UAfflictionInstance> FlagAfflictionToRemove = NULL;
73 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Ground Pound")
74 float MinimumHeight = 1.f;
76 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Ground Pound")
77 float MaximumHeight = 1.f;
79 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
80 float MaximumAngle = 100.0f;
82 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
83 float MaxDuration = 0.0f;
85 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
86 float LandingDuration = 0.0f;
88 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Ground Pound")
89 float MaxDistanceForDamageMultiplication = 10000;
91 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Ground Pound")
92 UCurveFloat* DistanceBasedDamageMultiplierCurve =
nullptr;
94 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
95 float MinDamage = 50.0f;
97 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
98 float MaxDamage = 200.0f;
100 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
101 float MaxDamageRadius = 200.f;
103 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
104 float DamageRadius = 800.f;
106 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
107 float DamageFallOff = 0.8f;
109 UPROPERTY(EditDefaultsOnly, Category = "Ground Pound")
110 float ImpactDepenetrationAmount = 50.f;
112 FTimerHandle MaxDurationTimerHandle;
115 float DistanceReached = 0.f;
116 FVector DesignatorSelectedLocation = FVector::ZeroVector;
EWeaponError
Definition: WeaponComponent.h:15
Definition: WeaponInstanceGroundPound.h:14
virtual float GetDamage(const FHitResult &HitResult, float DamageModifer=1.0f, const UWeaponComponent *WeaponComponent=NULL) const override
Definition: WeaponInstanceGroundPound.h:21
Definition: WeaponInstanceMelee.h:41