LEAP Documentation 40220
Documentation for the LEAP project
WeaponInstanceMeleeDash.h
Go to the documentation of this file.
1// Copyright Blue Isle Studios Inc 2018. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "WeaponInstanceMeleeDash.generated.h"
8
10
11UCLASS()
13{
14 GENERATED_UCLASS_BODY()
15
16 public:
17 virtual bool CanFire(EWeaponError& ErrorMessage, uint8 Mode = 0) const override;
18 virtual bool Fire(uint8 Mode = 0, float WorldTimeOverride = -1.f) override;
19 virtual void UnEquipComplete() override;
20
21protected:
22 virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction);
23 virtual void CoolDownStart(uint8 Mode) override;
24 virtual void PlayAltFireCounter();
25 virtual void PlayWeaponAltFireEffects();
26 virtual void PlayWeaponAltFireEffects1P();
27 virtual void PlayWeaponAltFireEffects3P();
28 virtual void StopWeaponMovement() override;
29
30 UFUNCTION()
31 virtual void OnHitDuringWeaponMovement(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit);
32
33 UFUNCTION()
34 virtual void OnRep_AltFireCounter();
35
36 UPROPERTY(BlueprintAssignable)
37 FDashSignature OnSwordDashAvailable;
38 UPROPERTY(BlueprintAssignable)
39 FDashSignature OnSwordDashNotAvailable;
40
41protected:
42 virtual float GetDamage(const FHitResult& HitResult,float DamageModifier, const UWeaponComponent* WeaponComponent = NULL) const override;
43 virtual TSubclassOf<UDamageType> GetDamageType() const override;
44
45 //Incremented each time this weapon has alt fired, used to help simulated proxies play alt fire effects
46 UPROPERTY(ReplicatedUsing = OnRep_AltFireCounter)
47 uint32 AltFireCounter = 0;
48
49 uint32 ClientAltFireCounter = 0;
50
51 /* How much stamina does dash cost */
52 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Melee Weapon")
53 float DashStaminaCost = -1.0f;
54 /* Does this require a target? */
55 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Melee Weapon")
56 bool bRequiresTarget = true;
57 /* How often can the sword dash be fired? */
58 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Melee Weapon")
59 float AltFireRate = 1.f;
60 /* The sword dash max distance to successfully acquire a target */
61 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Melee Weapon")
62 float AltDashDistance = 2000.0f;
63 /* The sword dash ammo consumption */
64 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Melee Weapon")
65 float AmmoConsumedPerAltFire = 50.f;
66 /* The sword dash damage */
67 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Melee Weapon")
68 float AltBaseDamage = 50.f;
69 /* The damage type to use */
70 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Melee Weapon")
71 TSubclassOf<UDamageType> AltDamageType = NULL;
72
73 UPROPERTY(EditDefaultsOnly, Category = "Melee Weapon|Animation")
74 UAnimMontage* AltFireAnimation1P = NULL;
75 UPROPERTY(EditDefaultsOnly, Category = "Melee Weapon|Animation")
76 UAnimMontage* WeaponAltFireAnimation1P = NULL;
77 UPROPERTY(EditDefaultsOnly, Category = "Melee Weapon|Animation")
78 UAnimMontage* AltFireAnimation3P = NULL;
79
80private:
81 bool bHasDashTarget = false;
82};
EWeaponError
Definition: WeaponComponent.h:15
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FDashSignature)
Definition: WeaponInstanceMeleeDash.h:13
Definition: WeaponInstanceMelee.h:41