#pragma once #include "CoreMinimal.h" #include "Engine/EngineTypes.h" #include "AmmoDrivenWeapon.h" #include "BasicPistol.generated.h" class UDamageComponent; class UFSDPhysicalMaterial; class UHealthComponentBase; class UPrimitiveComponent; UCLASS(Blueprintable) class ABasicPistol : public AAmmoDrivenWeapon { GENERATED_BODY() public: protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true)) UDamageComponent* DamageComponent; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float BurstArmorDamageMultiplier; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float ConsecutiveHitsDamageBonus; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float ConsecutiveHitsMaxBonus; public: ABasicPistol(); protected: UFUNCTION(BlueprintCallable) void OnTargetDamaged(UHealthComponentBase* Health, float Amount, UPrimitiveComponent* HitComponent, UFSDPhysicalMaterial* PhysicalMaterial); UFUNCTION(BlueprintCallable) void OnHit(const FHitResult& HitResult, bool isAlwaysPenetrated); };