#pragma once

#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "UObject/NoExportTypes.h"
#include "BlastMineKickSensor.generated.h"

class AKiller;
class UChargeableComponent;
class AGenerator;

UCLASS(Blueprintable, meta=(BlueprintSpawnableComponent))
class UBlastMineKickSensor : public UActorComponent
{
	GENERATED_BODY()

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FFloatRange _kickChargeTriggerRange;

private:
	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	AKiller* _kickingKiller;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, Instanced, meta=(AllowPrivateAccess=true))
	UChargeableComponent* _kickGeneratorChargeable;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	AGenerator* _generator;

private:
	UFUNCTION(BlueprintCallable)
	void Authority_OnKickChargeablePercentChanged(UChargeableComponent* chargeableComponent, float percentCompletionChange, float totalPercentComplete);

public:
	UBlastMineKickSensor();
};

FORCEINLINE uint32 GetTypeHash(const UBlastMineKickSensor) { return 0; }
