ExoWest/Source/Exo/Public/Characters/ExoPlayerCharacter.h

83 lines
2.2 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Camera/CameraComponent.h"
#include "Characters/ExoCharacterBase.h"
#include "Components/CapsuleComponent.h"
#include "ExoPlayerCharacter.generated.h"
class UInteractionComponent;
class UShootingComponent;
class UWBP_PlayerUI;
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(VisibleAnywhere, BlueprintReadOnly, Category="Camera")
TObjectPtr<UCameraComponent> CameraComponent;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Camera")
float StandingEyeHeight;
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;
UWBP_PlayerUI* PlayerHud;
};