Player Character
Player Character
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "PlayerCharacter.generated.h"
UCLASS()
class AUREISTAR_API APlayerCharacter : public ACharacter
{
GENERATED_BODY()
//Components
public:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) class UEnergyComponent*
EnergyComp;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) class UHealthComponent*
HealthComp;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) class UGetCloseEnemies*
getCloseComp;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) class
UCameraTargetFixComponent* cameraTargetFixComp;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Movement)
UAureiCharacterMovementComponent* AureiCharacterMovementComponent;
protected:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) class UShootingComponent*
ShootingComp;
private:
//Spring Arm Component para que la c�mara persiga detras al player
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = Camera,
meta=(AllowPrivateAccess = "true")) class USpringArmComponent* CameraBoom;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = Camera, meta =
(AllowPrivateAccess = "true")) class UCameraComponent* FollowCamera;
public:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Input) float
TurnRateGamepad;
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) bool allowCrouch = false;
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) bool allowFly = false;
public:
bool bPressedAureiJump;
bool bPressedSprintBtn;
public:
APlayerCharacter(const FObjectInitializer& ObjectInitializer);
//Input
protected:
UPROPERTY(VisibleAnywhere, BlueprintReadWrite) bool bIsGravityEnabled;
bool bCanGoUp;
private:
//Llamado para adelante/atras inputs
void MoveForward(float InputAxis);
//Z target
void FixateEnemy();
//Vuela
void Fly();
void Dashing();
void GroundPound();
void ShootPressed();
void InteractPressed();
//APawn interface
protected:
// Called to bind functionality to input
virtual void SetupPlayerInputComponent(class UInputComponent*
PlayerInputComponent) override;
public:
FORCEINLINE USpringArmComponent* GetCameraBoom() const { return CameraBoom; }
FORCEINLINE UCameraComponent* GetFollowCamera() const { return
FollowCamera; }
UFUNCTION(BlueprintPure) FORCEINLINE UAureiCharacterMovementComponent*
GetAureiCharacterMovement() const { return AureiCharacterMovementComponent; }
public:
UPROPERTY(EditAnyWhere, Category = "PlayerCharacter Properties",
BlueprintReadWrite)
float MaxSpeedRun;
UFUNCTION()
void EnergyToZeroCallback();
protected:
//Le pone los valores al personaje de velocidad a los de correr
void BeginSprint();
//Se agacha
void BeginCrouch();
//Se para
void EndCrouch();
UFUNCTION()
void WhenWREnds();
UFUNCTION()
void OnMontageEnded(UAnimMontage* Montage, bool bInterrupted);
};