From d9763b3bf275d5b0dfad117740fcc9da3019204a Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 30 Nov 2023 11:55:28 +0000 Subject: [PATCH 01/10] Added Stamina Bar to player --- .../Content/FirstPerson/Blueprints/WBP_Crosshair.uasset | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset index 939e70d9..ffee6be9 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:13ff21aa89e2ded711aff8ee6617abc2d565d222c39ce3878969fdfe44d5a81f -size 75992 +oid sha256:0908a7f0cb894de06719e8a5629d195998cdc4598cac022f8dd3eb0a3b889d2e +size 89225 From b9a8bf4f85d08807d0e3febbff9d68a893344602 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 30 Nov 2023 11:55:40 +0000 Subject: [PATCH 02/10] Added Stamina and SprintSpeed values to player header --- .../Source/EndlessVendetta/EndlessVendettaCharacter.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index 9a14b875..f893d625 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -83,6 +83,13 @@ public: UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats") float DefaultHealth = 100.0f; + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats") + float MaxStamina = 100.0f; + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats") + float StaminaDecreaseRate = 10.0f; + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats") + int SprintSpeed = 50; + AActor* PrimaryWeaponActor; AActor* SecondaryWeaponActor; bool bIsPrimaryWeaponCreated = false; From 08e7fcecba30a4053197f366f9df5da6cda403ba Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 30 Nov 2023 12:19:43 +0000 Subject: [PATCH 03/10] Added Sprint Basic Function and Binds To Shift Key --- .../Blueprints/BP_FirstPersonCharacter.uasset | 4 ++-- .../FirstPerson/Input/Actions/IA_Sprint.uasset | 3 +++ .../Content/FirstPerson/Input/IMC_Default.uasset | 4 ++-- .../EndlessVendetta/EndlessVendettaCharacter.cpp | 12 ++++++++++++ .../EndlessVendetta/EndlessVendettaCharacter.h | 7 +++++++ 5 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Sprint.uasset diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset index 68f6e73f..9916b65d 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b0a493fd95d8b0b43306329298c058cfa2f164ec071457bc575a8eafee95f1b1 -size 53936 +oid sha256:b286c36bff935d0bb4a21224449c4dbd84f2dd72c29fb14da3e97822f0a9c9d0 +size 54078 diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Sprint.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Sprint.uasset new file mode 100644 index 00000000..68e93308 --- /dev/null +++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Sprint.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:467d285447b71f9b4417bde598153ef906f87de4d2244f0b3cbaac1b712d693b +size 1360 diff --git a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset index 6f199667..c5bb3d48 100644 --- a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset +++ b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:750ab013f24a45539806fd40e9cd2a328ff31b40c5d3edcce0676fb3bf6935ee -size 18664 +oid sha256:4b09c7676dc66a56a9f2dd750aa646db53db086cb9604fed17e025259b4821db +size 19248 diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index 04a8f415..7187b03a 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -134,6 +134,7 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent* //Moving EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Move); + EnhancedInputComponent->BindAction(SprintAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Sprint); //Looking EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Look); @@ -430,6 +431,17 @@ void AEndlessVendettaCharacter::StopFire() } } +void AEndlessVendettaCharacter::Sprint() +{ + MoveGroundSpeed *= 2; + // bIsPlayerSprinting = true; + // if (bIsPlayerSprinting) + // { + // MoveGroundSpeed *= 2; + // bIsPlayerSprinting = false; + // } +} + void AEndlessVendettaCharacter::GunRightClick() { if (IsValid(PrimaryWeapon) && !bIsScoped) diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index f893d625..5ba68440 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -73,6 +73,9 @@ class AEndlessVendettaCharacter : public ACharacter UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, meta = (AllowPrivateAccess = "true")) UInputAction* InteractAction; + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, meta = (AllowPrivateAccess = "true")) + UInputAction* SprintAction; + public: AEndlessVendettaCharacter(); @@ -114,6 +117,8 @@ public: bool bIsPlayerMoving = false; + bool bIsPlayerSprinting = false; + double MoveGroundSpeed; /** Look Input Action */ @@ -156,6 +161,8 @@ public: UFUNCTION(BlueprintCallable, Category = "Weapons") void StopFire(); + void Sprint(); + UArrowComponent* ScopedLocationArrow; UPROPERTY(EditAnywhere, Category = "Dont Touch") From 92ab1c3d6b1cd7ba5042c4c8ed45ff9ce0c8b707 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 30 Nov 2023 13:01:23 +0000 Subject: [PATCH 04/10] Populated Sprint and UnSprint Functions --- .../Blueprints/BP_FirstPersonCharacter.uasset | 4 +- .../EndlessVendettaCharacter.cpp | 43 +++++++++++++------ .../EndlessVendettaCharacter.h | 10 ++++- 3 files changed, 42 insertions(+), 15 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset index 9916b65d..51f16bdb 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b286c36bff935d0bb4a21224449c4dbd84f2dd72c29fb14da3e97822f0a9c9d0 -size 54078 +oid sha256:017155c3e85841098dd90809087103d777592a4dc37f146560ab46b4910a522c +size 54599 diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index 7187b03a..dd877626 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -69,6 +69,8 @@ void AEndlessVendettaCharacter::BeginPlay() } InventoryComponent = Cast(GetWorld()->GetFirstPlayerController()->GetComponentByClass(UInventoryComponent::StaticClass())); + WalkSpeed = CharacterMovement->MaxWalkSpeed; + OriginalWalkSpeed = CharacterMovement->MaxWalkSpeed; } void AEndlessVendettaCharacter::Tick(float DeltaTime) @@ -134,7 +136,8 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent* //Moving EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Move); - EnhancedInputComponent->BindAction(SprintAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Sprint); + EnhancedInputComponent->BindAction(SprintAction, ETriggerEvent::Started, this, &AEndlessVendettaCharacter::Sprint); + EnhancedInputComponent->BindAction(SprintAction, ETriggerEvent::Completed, this, &AEndlessVendettaCharacter::StopSprint); //Looking EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Look); @@ -431,17 +434,6 @@ void AEndlessVendettaCharacter::StopFire() } } -void AEndlessVendettaCharacter::Sprint() -{ - MoveGroundSpeed *= 2; - // bIsPlayerSprinting = true; - // if (bIsPlayerSprinting) - // { - // MoveGroundSpeed *= 2; - // bIsPlayerSprinting = false; - // } -} - void AEndlessVendettaCharacter::GunRightClick() { if (IsValid(PrimaryWeapon) && !bIsScoped) @@ -523,6 +515,33 @@ void AEndlessVendettaCharacter::Move(const FInputActionValue& Value) } } +void AEndlessVendettaCharacter::Sprint() +{ + bIsPlayerSprinting = true; + if (bIsPlayerSprinting) + { + CharacterMovement->MaxWalkSpeed = SprintSpeed; + MaxStamina -= StaminaDecreaseRate; + UE_LOG(LogTemp, Display, TEXT("Walk Speed: %f"), WalkSpeed); + if (MaxStamina <= 0) + { + CharacterMovement->MaxWalkSpeed = OriginalWalkSpeed; + bIsPlayerSprinting = false; + } + } +} + +void AEndlessVendettaCharacter::StopSprint() +{ + bIsPlayerSprinting = false; + if (!bIsPlayerSprinting) + { + UE_LOG(LogTemp, Display, TEXT("Player stopped sprinting")); + CharacterMovement->MaxWalkSpeed = OriginalWalkSpeed; + MaxStamina++; + } +} + void AEndlessVendettaCharacter::Look(const FInputActionValue& Value) { // input is a Vector2D diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index 5ba68440..8a7ff928 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -86,12 +86,18 @@ public: UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats") float DefaultHealth = 100.0f; + //STAMINA AND SPRINT SPEED UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats") float MaxStamina = 100.0f; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats") float StaminaDecreaseRate = 10.0f; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stats") - int SprintSpeed = 50; + float SprintSpeed = 1200; + + //Getting the charMovementComp + UCharacterMovementComponent* CharacterMovement = GetCharacterMovement(); + float WalkSpeed; + float OriginalWalkSpeed; AActor* PrimaryWeaponActor; AActor* SecondaryWeaponActor; @@ -117,6 +123,7 @@ public: bool bIsPlayerMoving = false; + UPROPERTY(VisibleAnywhere) bool bIsPlayerSprinting = false; double MoveGroundSpeed; @@ -162,6 +169,7 @@ public: void StopFire(); void Sprint(); + void StopSprint(); UArrowComponent* ScopedLocationArrow; From 0f07c0197b9e9f02e814dd48cc46bf66b37758ae Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 30 Nov 2023 14:01:26 +0000 Subject: [PATCH 05/10] Fixed Sprinting Action Buttons --- .../Content/FirstPerson/Input/Actions/IA_Sprint.uasset | 2 +- EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Sprint.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Sprint.uasset index 68e93308..1a2ea734 100644 --- a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Sprint.uasset +++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Sprint.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:467d285447b71f9b4417bde598153ef906f87de4d2244f0b3cbaac1b712d693b +oid sha256:6e25b72a06c43ac63140b164e9ee5e2a8222f021ac5bd045149a27c2d8f073a1 size 1360 diff --git a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset index c5bb3d48..4764655f 100644 --- a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset +++ b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b09c7676dc66a56a9f2dd750aa646db53db086cb9604fed17e025259b4821db +oid sha256:8576231cc54d32ecfa8c00c7570ec51bb9d741dabc85bc0b4ef684bbc8209d04 size 19248 From 7f2cc14922a6224a84e7df44206a129768c20aa4 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 30 Nov 2023 14:01:43 +0000 Subject: [PATCH 06/10] Added Stamina Consume System & Finalised Sprinting Values --- .../FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset | 4 ++-- .../Content/FirstPerson/Blueprints/WBP_Crosshair.uasset | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset index 51f16bdb..76991298 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:017155c3e85841098dd90809087103d777592a4dc37f146560ab46b4910a522c -size 54599 +oid sha256:76a05bba142f49ac64cd4ccb3c1ba1998bb54ba39510c42f8204dd22d3c1fcd2 +size 54132 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset index ffee6be9..29ebde67 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0908a7f0cb894de06719e8a5629d195998cdc4598cac022f8dd3eb0a3b889d2e -size 89225 +oid sha256:8ac7733948c885fda46dd009dd75dfe5c79abf1262e9aadcf17c401bb8f64ecf +size 93512 From 39bd245f57a2d4be080bb71f48e301967fa38cde Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 30 Nov 2023 14:02:02 +0000 Subject: [PATCH 07/10] Added FOV when sprinting and finished Sprinting System --- .../EndlessVendettaCharacter.cpp | 33 ++++++++++++++----- .../EndlessVendettaCharacter.h | 10 ++++-- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index dd877626..53a1e62e 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -71,12 +71,12 @@ void AEndlessVendettaCharacter::BeginPlay() InventoryComponent = Cast(GetWorld()->GetFirstPlayerController()->GetComponentByClass(UInventoryComponent::StaticClass())); WalkSpeed = CharacterMovement->MaxWalkSpeed; OriginalWalkSpeed = CharacterMovement->MaxWalkSpeed; + CurrentStamina = MaxStamina; } void AEndlessVendettaCharacter::Tick(float DeltaTime) { Super::Tick(DeltaTime); - WeaponPickUpSystem(); MoveGroundSpeed = Cast(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); } } diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index 8a7ff928..ca2e5a99 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -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(); From 91f9003ff0de7c7045560c0bbcbeec262f6f4a03 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 30 Nov 2023 14:52:50 +0000 Subject: [PATCH 08/10] Tweaked Movement and Jumping Values to feel better --- .../Blueprints/BP_FirstPersonCharacter.uasset | 4 ++-- .../EndlessVendettaCharacter.cpp | 21 ++++++++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset index 76991298..af1aeccc 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:76a05bba142f49ac64cd4ccb3c1ba1998bb54ba39510c42f8204dd22d3c1fcd2 -size 54132 +oid sha256:29a9b2fccbf432819ea9a64b75f802f6b121dd5e7a2c34ada69ecf08057f1ace +size 54773 diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index 53a1e62e..6e3adfb6 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -89,6 +89,15 @@ void AEndlessVendettaCharacter::Tick(float DeltaTime) { bIsPlayerMoving = false; } + if (bPressedJump) + { + UE_LOG(LogTemp, Display, TEXT("Player Jumped")); + if(CurrentStamina <= 0.0f) + { + CurrentStamina -= 20.0f; + UE_LOG(LogTemp, Display, TEXT("Current Stam: %f"), CurrentStamina); + } + } //PLAYER STAMINA HANDLING if (bIsPlayerSprinting) { @@ -110,6 +119,16 @@ void AEndlessVendettaCharacter::Tick(float DeltaTime) } CurrentStamina += FMath::Clamp(StaminaRegenRate, 0.0f, 100.0f); } + //make your own jump and call the default character jump + // if (bPressedJump) + // { + // UE_LOG(LogTemp, Display, TEXT("Player Jumped")); + // if(CurrentStamina <= 0.0f) + // { + // CurrentStamina -= 20.0f; + // UE_LOG(LogTemp, Display, TEXT("Current Stam: %f"), CurrentStamina); + // } + // } } void AEndlessVendettaCharacter::RegenHealth() @@ -154,7 +173,7 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent* //Jumping EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Triggered, this, &ACharacter::Jump); EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Completed, this, &ACharacter::StopJumping); - + //Moving EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Move); EnhancedInputComponent->BindAction(SprintAction, ETriggerEvent::Started, this, &AEndlessVendettaCharacter::Sprint); From c9acf07ccdce77e68607ac780a19975e493f74b3 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 30 Nov 2023 15:26:20 +0000 Subject: [PATCH 09/10] Added Stamina Consume To Jumping & Fixed Jumping Bugs --- .../Blueprints/BP_FirstPersonCharacter.uasset | 2 +- .../EndlessVendettaCharacter.cpp | 41 ++++++++++++------- .../EndlessVendettaCharacter.h | 4 ++ 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset index af1aeccc..ea9b685a 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29a9b2fccbf432819ea9a64b75f802f6b121dd5e7a2c34ada69ecf08057f1ace +oid sha256:58139ccad1a63dd9fa03404f0fb0b7af3f742d844b0ed7da0e081b96319600b9 size 54773 diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index 6e3adfb6..1fb28751 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -78,7 +78,6 @@ void AEndlessVendettaCharacter::Tick(float DeltaTime) { Super::Tick(DeltaTime); WeaponPickUpSystem(); - MoveGroundSpeed = Cast(GetComponentByClass(UMovementComponent::StaticClass()))->Velocity.Size(); if (MoveGroundSpeed > 0) @@ -91,11 +90,9 @@ void AEndlessVendettaCharacter::Tick(float DeltaTime) } if (bPressedJump) { - UE_LOG(LogTemp, Display, TEXT("Player Jumped")); if(CurrentStamina <= 0.0f) { CurrentStamina -= 20.0f; - UE_LOG(LogTemp, Display, TEXT("Current Stam: %f"), CurrentStamina); } } //PLAYER STAMINA HANDLING @@ -119,16 +116,6 @@ void AEndlessVendettaCharacter::Tick(float DeltaTime) } CurrentStamina += FMath::Clamp(StaminaRegenRate, 0.0f, 100.0f); } - //make your own jump and call the default character jump - // if (bPressedJump) - // { - // UE_LOG(LogTemp, Display, TEXT("Player Jumped")); - // if(CurrentStamina <= 0.0f) - // { - // CurrentStamina -= 20.0f; - // UE_LOG(LogTemp, Display, TEXT("Current Stam: %f"), CurrentStamina); - // } - // } } void AEndlessVendettaCharacter::RegenHealth() @@ -171,8 +158,8 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent* if (UEnhancedInputComponent* EnhancedInputComponent = CastChecked(PlayerInputComponent)) { //Jumping - EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Triggered, this, &ACharacter::Jump); - EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Completed, this, &ACharacter::StopJumping); + EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Started, this, &AEndlessVendettaCharacter::Jumping); + EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Completed, this, &AEndlessVendettaCharacter::StopJump); //Moving EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Move); @@ -576,6 +563,30 @@ void AEndlessVendettaCharacter::StopSprint() } } +void AEndlessVendettaCharacter::Jumping() +{ + if (CurrentStamina > 20.0f) + { + bHasPlayerJumped = true; + if (bHasPlayerJumped) + { + Super::Jump(); + if (!CharacterMovement->IsFalling()) + { + CurrentStamina -= 20.0f; + } + bHasPlayerJumped = false; + } + } +} + +void AEndlessVendettaCharacter::StopJump() +{ + Super::StopJumping(); + UE_LOG(LogTemp, Display, TEXT("Player has stopped jumping")); + bHasPlayerJumped = false; +} + void AEndlessVendettaCharacter::Look(const FInputActionValue& Value) { // input is a Vector2D diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index ca2e5a99..8bfa7c05 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -175,6 +175,10 @@ public: void Sprint(); void StopSprint(); + void Jumping(); + void StopJump(); + bool bHasPlayerJumped = false; + UArrowComponent* ScopedLocationArrow; UPROPERTY(EditAnywhere, Category = "Dont Touch") From b3b2dac792bf7e6e9b74cdc3d21c41b7de43aff4 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 30 Nov 2023 15:38:16 +0000 Subject: [PATCH 10/10] Added FOV Fixes to sprint bar --- .../EndlessVendettaCharacter.cpp | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index 1fb28751..438d89e8 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -86,6 +86,7 @@ void AEndlessVendettaCharacter::Tick(float DeltaTime) } else if (MoveGroundSpeed <= 0) { + this->GetFirstPersonCameraComponent()->SetFieldOfView(90); bIsPlayerMoving = false; } if (bPressedJump) @@ -96,15 +97,18 @@ void AEndlessVendettaCharacter::Tick(float DeltaTime) } } //PLAYER STAMINA HANDLING - if (bIsPlayerSprinting) + if (MoveGroundSpeed > 0) { - CurrentStamina -= FMath::Clamp(StaminaDecreaseRate, 0.0f, 100.0f); - if (CurrentStamina <= 0.0f) + if (bIsPlayerSprinting) { - bIsPlayerSprinting = false; - this->GetFirstPersonCameraComponent()->SetFieldOfView(90); - CurrentStamina = 0.0f; - CharacterMovement->MaxWalkSpeed = OriginalWalkSpeed; + 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) @@ -547,8 +551,11 @@ void AEndlessVendettaCharacter::Sprint() bIsPlayerSprinting = true; if (bIsPlayerSprinting) { - CharacterMovement->MaxWalkSpeed = SprintSpeed; - this->GetFirstPersonCameraComponent()->SetFieldOfView(100); + if (MoveGroundSpeed > 0) + { + CharacterMovement->MaxWalkSpeed = SprintSpeed; + this->GetFirstPersonCameraComponent()->SetFieldOfView(100); + } } } @@ -565,7 +572,7 @@ void AEndlessVendettaCharacter::StopSprint() void AEndlessVendettaCharacter::Jumping() { - if (CurrentStamina > 20.0f) + if (CurrentStamina > 10.0f) { bHasPlayerJumped = true; if (bHasPlayerJumped) @@ -573,7 +580,7 @@ void AEndlessVendettaCharacter::Jumping() Super::Jump(); if (!CharacterMovement->IsFalling()) { - CurrentStamina -= 20.0f; + CurrentStamina -= 10.0f; } bHasPlayerJumped = false; }