75 lines
1.9 KiB
C++
75 lines
1.9 KiB
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Characters/ExoCharacterBase.h"
|
|
#include "Components/CapsuleComponent.h"
|
|
#include "ExoPlayerCharacter.generated.h"
|
|
|
|
class UInteractionComponent;
|
|
class UShootingComponent;
|
|
|
|
UCLASS()
|
|
class EXO_API AExoPlayerCharacter : public AExoCharacterBase
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AExoPlayerCharacter();
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Combat")
|
|
TObjectPtr<USkeletalMeshComponent> Weapon;
|
|
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
|
|
TObjectPtr<UInteractionComponent> InteractionComponent;
|
|
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
|
|
TObjectPtr<UShootingComponent> ShootingComponent;
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Dodge Properties")
|
|
float DodgeForce = 5000.f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Dodge Properties")
|
|
float DodgeCooldown = 2.f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Slide Properties")
|
|
float SlideCooldown = 0.35f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Movement Properties")
|
|
float WalkSpeed = 600.0f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Movement Properties")
|
|
float SprintSpeed = 1500.0f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Movement Properties")
|
|
float SlideSpeed = 2500.f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Movement Properties")
|
|
float CrouchSpeed = 300.f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Aiming")
|
|
float bIsAimingMode = false;
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Health")
|
|
float CurrentHealth = 50.0f;
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "UI")
|
|
TSubclassOf<UUserWidget> PlayerHudClass;
|
|
|
|
UFUNCTION()
|
|
void OnActorBeginOverlap(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp,
|
|
int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult
|
|
);
|
|
|
|
UFUNCTION()
|
|
void AddHealthPoints(float addValue);
|
|
|
|
protected:
|
|
virtual void BeginPlay() override;
|
|
|
|
float MaxHealth = 100.0f;
|
|
|
|
UUserWidget* PlayerHud;
|
|
};
|