Added FOV when sprinting and finished Sprinting System

This commit is contained in:
MH261677 2023-11-30 14:02:02 +00:00
parent 7f2cc14922
commit 39bd245f57
2 changed files with 31 additions and 12 deletions

View File

@ -71,12 +71,12 @@ void AEndlessVendettaCharacter::BeginPlay()
InventoryComponent = Cast<UInventoryComponent>(GetWorld()->GetFirstPlayerController()->GetComponentByClass(UInventoryComponent::StaticClass()));
WalkSpeed = CharacterMovement->MaxWalkSpeed;
OriginalWalkSpeed = CharacterMovement->MaxWalkSpeed;
CurrentStamina = MaxStamina;
}
void AEndlessVendettaCharacter::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
WeaponPickUpSystem();
MoveGroundSpeed = Cast<UMovementComponent>(GetComponentByClass(UMovementComponent::StaticClass()))->Velocity.Size();
@ -89,6 +89,27 @@ void AEndlessVendettaCharacter::Tick(float DeltaTime)
{
bIsPlayerMoving = false;
}
//PLAYER STAMINA HANDLING
if (bIsPlayerSprinting)
{
CurrentStamina -= FMath::Clamp(StaminaDecreaseRate, 0.0f, 100.0f);
if (CurrentStamina <= 0.0f)
{
bIsPlayerSprinting = false;
this->GetFirstPersonCameraComponent()->SetFieldOfView(90);
CurrentStamina = 0.0f;
CharacterMovement->MaxWalkSpeed = OriginalWalkSpeed;
}
}
if (!bIsPlayerSprinting)
{
if(CurrentStamina >= 100.0f)
{
CurrentStamina = 100.0f;
return;
}
CurrentStamina += FMath::Clamp(StaminaRegenRate, 0.0f, 100.0f);
}
}
void AEndlessVendettaCharacter::RegenHealth()
@ -521,13 +542,7 @@ void AEndlessVendettaCharacter::Sprint()
if (bIsPlayerSprinting)
{
CharacterMovement->MaxWalkSpeed = SprintSpeed;
MaxStamina -= StaminaDecreaseRate;
UE_LOG(LogTemp, Display, TEXT("Walk Speed: %f"), WalkSpeed);
if (MaxStamina <= 0)
{
CharacterMovement->MaxWalkSpeed = OriginalWalkSpeed;
bIsPlayerSprinting = false;
}
this->GetFirstPersonCameraComponent()->SetFieldOfView(100);
}
}
@ -538,7 +553,7 @@ void AEndlessVendettaCharacter::StopSprint()
{
UE_LOG(LogTemp, Display, TEXT("Player stopped sprinting"));
CharacterMovement->MaxWalkSpeed = OriginalWalkSpeed;
MaxStamina++;
this->GetFirstPersonCameraComponent()->SetFieldOfView(90);
}
}

View File

@ -88,11 +88,15 @@ public:
//STAMINA AND SPRINT SPEED
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats")
float MaxStamina = 100.0f;
float MaxStamina = 100;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats")
float StaminaDecreaseRate = 10.0f;
float CurrentStamina;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats")
float SprintSpeed = 1200;
float StaminaDecreaseRate = 0.2;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats")
float StaminaRegenRate = 0.05;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats")
float SprintSpeed = 900;
//Getting the charMovementComp
UCharacterMovementComponent* CharacterMovement = GetCharacterMovement();