From f427b07bb9e28b1bd58c4f94c504ffeba4abd799 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Mon, 9 Oct 2023 14:51:50 +0100 Subject: [PATCH 1/8] Attempted Change to Recoil Timing for Weapons --- .../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 ++-- .../WeaponSystem/BaseWeaponClass.cpp | 13 +++++++------ .../EndlessVendetta/WeaponSystem/BaseWeaponClass.h | 2 ++ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset index 7a6aaf5e..b5a6daba 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:687cf147ebf43e160b9c018f570186e7fd789493317c6c28e6bba9c92095f005 -size 37868 +oid sha256:b6a0ba4e4f4c638a319c76ccdd1a71c53a5f6a04822a0f6a18861e5f44d2eb51 +size 37876 diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index caa70988..96a6656e 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -23,6 +23,9 @@ ABaseWeaponClass::ABaseWeaponClass() void ABaseWeaponClass::BeginPlay() { Super::BeginPlay(); + + collisionParams.AddIgnoredActor(playerInWorld); + collisionParams.AddIgnoredActor(this); // Attempt to find the player character APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0); @@ -88,8 +91,9 @@ void ABaseWeaponClass::ApplyRecoil(float DeltaTime) float amplitude = RecoilCurve->GetFloatValue(recoilTime); //get current value of curve in time recoilTime += DeltaTime; if (bulletCountShoot <= 3) playerInWorld->AddControllerPitchInput(GetRecoilPitch(amplitude, recoilTime)); - traceEnd = traceStart + (UKismetMathLibrary::GetForwardVector(playerInWorld->GetControlRotation() * GetRecoilPitch(amplitude, recoilTime))); - //UE_LOG(LogTemp, Warning, TEXT("Controller pitch: Pitch: %f Yaw: %f, Roll: %f"), playerInWorld->GetControlRotation().Pitch, playerInWorld->GetControlRotation().Yaw, playerInWorld->GetControlRotation().Roll); + newTraceEnd = traceStart + (UKismetMathLibrary::GetForwardVector(playerInWorld->GetControlRotation() * GetRecoilPitch(amplitude, recoilTime))); + GetWorld()->LineTraceSingleByChannel(outHit, traceStart, newTraceEnd, ECC_Visibility, collisionParams); + UE_LOG(LogTemp, Warning, TEXT("traceEnd: %s"), *traceEnd.ToString()); playerInWorld->AddControllerYawInput(GetRecoilYaw(amplitude, recoilTime)); //UE_LOG(LogTemp, Warning, TEXT("recoilTime: %f"), recoilTime); UpdateSamples(amplitude, recoilTime); @@ -150,15 +154,12 @@ void ABaseWeaponClass::Fire() //do damage fallof based off distance traceStart = GunStartArrow->GetComponentLocation(); traceEnd = traceStart + (GunStartArrow->GetForwardVector() * BulletDistance); - FCollisionQueryParams collisionParams; - collisionParams.AddIgnoredActor(playerInWorld); - collisionParams.AddIgnoredActor(this); /*RecoilVerticalLimit(outHit);*/ if (GetWorldTimerManager().IsTimerActive(timerHandle)) { return; } - GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams); + if (bulletCountShoot <= 3) GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams); //Debug line to see where the trace hit DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, false, 5.0f, 0U, 2.5f); playerControllerRef->PlayerCameraManager->StartCameraShake(CameraShakeClass, 1); diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 0edef8f6..933b5a2c 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -116,6 +116,8 @@ public: FHitResult outHit; FVector traceStart; FVector traceEnd; + FVector newTraceEnd; + FCollisionQueryParams collisionParams; //UFUNCTION(BlueprintCallable, Category = "Weapons") //void RecoilVerticalLimit(FHitResult Outhit); From cd38898a589a93dea79f31c9be3cd036598508c7 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Mon, 9 Oct 2023 23:52:08 +0100 Subject: [PATCH 2/8] Updated Weapon Recoil to KeepFiring but Remove Pitch --- .../.idea.EndlessVendetta.dir/.idea/vcs.xml | 6 ++++++ .../Blueprints/BP_FirstPersonCharacter.uasset | 4 ++-- .../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 ++-- .../WeaonRecoil/AssaultRecoilPattern.uasset | 2 +- .../Blueprints/WBP_Crosshair.uasset | 4 ++-- .../WeaponSystem/BaseWeaponClass.cpp | 20 ++++++++++--------- .../WeaponSystem/BaseWeaponClass.h | 2 ++ 7 files changed, 26 insertions(+), 16 deletions(-) create mode 100644 EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml diff --git a/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml b/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml new file mode 100644 index 00000000..6c0b8635 --- /dev/null +++ b/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset index e7dcb857..cc246418 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:65d9f1286e3e2a0afeb00fd61e2a4ad5d105f8c4ea61cf146761901c810ea4bb -size 42451 +oid sha256:946f8f62bbea4cb4f5d279e9da49d29291bacb30f803de7fd8503ed608295287 +size 42585 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset index b5a6daba..4e3a7b0b 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b6a0ba4e4f4c638a319c76ccdd1a71c53a5f6a04822a0f6a18861e5f44d2eb51 -size 37876 +oid sha256:3194a5d00e86f1294c85008ba95e40c7d09358e3df2d8360945f78a20dc0a78d +size 37917 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset index 423c7283..e0afe7ed 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b63c754fc78a67f950a91e30dd31a6778bac31a485191b9cc14560515d5012a5 +oid sha256:136afa1f1b4d7d302c0824edcbaeff1061de8ca41532af1ff390294a8baeda7a size 2033 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset index bdd28701..b36651a3 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:a3c0a70c5b68ec66372ae8e29abcb76deb385319f24202e43395c9061b3d0f8a -size 24854 +oid sha256:f29a879021fde175da0f45dcffaa1e4b4765574bb429977dc552cd51b2ad899a +size 24819 diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index 96a6656e..a8f66c9c 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -91,9 +91,8 @@ void ABaseWeaponClass::ApplyRecoil(float DeltaTime) float amplitude = RecoilCurve->GetFloatValue(recoilTime); //get current value of curve in time recoilTime += DeltaTime; if (bulletCountShoot <= 3) playerInWorld->AddControllerPitchInput(GetRecoilPitch(amplitude, recoilTime)); - newTraceEnd = traceStart + (UKismetMathLibrary::GetForwardVector(playerInWorld->GetControlRotation() * GetRecoilPitch(amplitude, recoilTime))); - GetWorld()->LineTraceSingleByChannel(outHit, traceStart, newTraceEnd, ECC_Visibility, collisionParams); - UE_LOG(LogTemp, Warning, TEXT("traceEnd: %s"), *traceEnd.ToString()); + GunStartArrow->AddRelativeRotation(FRotator(-GetRecoilPitch(amplitude, recoilTime), 0, 0)); + //traceEnd = GunStartArrow->GetComponentLocation() + (GunStartArrow->GetComponentRotation().Pitch * GetRecoilPitch(amplitude, recoilTime)); playerInWorld->AddControllerYawInput(GetRecoilYaw(amplitude, recoilTime)); //UE_LOG(LogTemp, Warning, TEXT("recoilTime: %f"), recoilTime); UpdateSamples(amplitude, recoilTime); @@ -145,6 +144,8 @@ void ABaseWeaponClass::CancelFire() GetWorldTimerManager().ClearTimer(timerHandle); UE_LOG(LogTemp, Display, TEXT("FireCancelled")); bulletCountShoot = 0; + GunStartArrow->SetRelativeRotation(FRotator(0,0,0)); + playerControllerRef->SetControlRotation(ogPlayerRotation); } void ABaseWeaponClass::Fire() @@ -155,12 +156,8 @@ void ABaseWeaponClass::Fire() traceStart = GunStartArrow->GetComponentLocation(); traceEnd = traceStart + (GunStartArrow->GetForwardVector() * BulletDistance); /*RecoilVerticalLimit(outHit);*/ - if (GetWorldTimerManager().IsTimerActive(timerHandle)) - { - return; - } - if (bulletCountShoot <= 3) GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams); - //Debug line to see where the trace hit + if (GetWorldTimerManager().IsTimerActive(timerHandle)) return; + GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams); DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, false, 5.0f, 0U, 2.5f); playerControllerRef->PlayerCameraManager->StartCameraShake(CameraShakeClass, 1); currentAmmoCount -= 1; @@ -168,6 +165,11 @@ void ABaseWeaponClass::Fire() GenerateRecoilVector(); ClickDetectionTimer(); bulletCountShoot += 1; + if (bulletCountShoot <= 1) + { + ogPlayerRotation = FRotator(playerControllerRef->GetControlRotation()); + UE_LOG(LogTemp, Display, TEXT("FIRST BULLET FIRED: %s"), *ogPlayerRotation.ToString()); + } if (outHit.bBlockingHit) { UE_LOG(LogTemp, Display, TEXT("Ammo Count: %s"), *outHit.GetActor()->GetName()); diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 933b5a2c..19175cef 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -119,6 +119,8 @@ public: FVector newTraceEnd; FCollisionQueryParams collisionParams; + FRotator ogPlayerRotation; + //UFUNCTION(BlueprintCallable, Category = "Weapons") //void RecoilVerticalLimit(FHitResult Outhit); From 13d96ad67c5fec10c34c7bf012e6df933c223e47 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Tue, 10 Oct 2023 12:58:45 +0100 Subject: [PATCH 3/8] Tweaked AR Recoil Vals and Added Moving Error to all weapons --- .../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 ++-- .../BaseWeapons/BP_BaseWeapon.uasset | 4 ++-- .../BaseWeapons/BP_GunCameraShake.uasset | 2 +- .../WeaponSystem/BaseWeaponClass.cpp | 22 +++++++++---------- .../WeaponSystem/BaseWeaponClass.h | 22 ++++++++++++++++--- 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset index 4e3a7b0b..2e239e7c 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3194a5d00e86f1294c85008ba95e40c7d09358e3df2d8360945f78a20dc0a78d -size 37917 +oid sha256:d4914d01f2581bf5c3edc200811e9990ccc825755171a4fc83bfb0ef12bcb145 +size 38083 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset index dc2d119d..47d586c9 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af36276c4e513a207e06ec1eaa8f5c4273ab5634330a999db47ac9128e7d02ec -size 29776 +oid sha256:4febec5729a36774fbc7932a6fec983a74cc9cfac901f131fcbdafe3da17205c +size 29846 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset index a24df98a..cc04228d 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5b5bc4f06eaeb74c61b627c02ff6e49dedeebfe047bc79fbfa8941b25c4674ef +oid sha256:4358c8520e164b973fae2ae1a18307f0eb691ecfd94b433cbda1052b8b2751fa size 7209 diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index a8f66c9c..8e61ac7b 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -75,7 +75,11 @@ void ABaseWeaponClass::GenerateRecoilVector() recoilResultYaw = FMath::Sin(FMath::DegreesToRadians(angle)); recoilResultPitch = FMath::Cos(FMath::DegreesToRadians(angle)); - + + if (bulletCountShoot >= howMnyShotsTillRclStop) + { + recoilResultPitch = 0; + } //scaling direction to magnitude recoilResultPitch *= -tempMag; recoilResultYaw *= tempMag; @@ -92,9 +96,7 @@ void ABaseWeaponClass::ApplyRecoil(float DeltaTime) recoilTime += DeltaTime; if (bulletCountShoot <= 3) playerInWorld->AddControllerPitchInput(GetRecoilPitch(amplitude, recoilTime)); GunStartArrow->AddRelativeRotation(FRotator(-GetRecoilPitch(amplitude, recoilTime), 0, 0)); - //traceEnd = GunStartArrow->GetComponentLocation() + (GunStartArrow->GetComponentRotation().Pitch * GetRecoilPitch(amplitude, recoilTime)); playerInWorld->AddControllerYawInput(GetRecoilYaw(amplitude, recoilTime)); - //UE_LOG(LogTemp, Warning, TEXT("recoilTime: %f"), recoilTime); UpdateSamples(amplitude, recoilTime); } } @@ -155,24 +157,20 @@ void ABaseWeaponClass::Fire() //do damage fallof based off distance traceStart = GunStartArrow->GetComponentLocation(); traceEnd = traceStart + (GunStartArrow->GetForwardVector() * BulletDistance); - /*RecoilVerticalLimit(outHit);*/ if (GetWorldTimerManager().IsTimerActive(timerHandle)) return; GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams); - DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, false, 5.0f, 0U, 2.5f); + DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, false, 5.0f, 0U, 1.5f); playerControllerRef->PlayerCameraManager->StartCameraShake(CameraShakeClass, 1); currentAmmoCount -= 1; - UE_LOG(LogTemp, Display, TEXT("Ammo Count: %d"), currentAmmoCount); GenerateRecoilVector(); ClickDetectionTimer(); bulletCountShoot += 1; if (bulletCountShoot <= 1) { ogPlayerRotation = FRotator(playerControllerRef->GetControlRotation()); - UE_LOG(LogTemp, Display, TEXT("FIRST BULLET FIRED: %s"), *ogPlayerRotation.ToString()); } if (outHit.bBlockingHit) { - UE_LOG(LogTemp, Display, TEXT("Ammo Count: %s"), *outHit.GetActor()->GetName()); if (!Cast(outHit.GetActor())) return; Cast(outHit.GetActor())->TakeDamage(WeaponDamage, FPointDamageEvent(), GetWorld()->GetFirstPlayerController(), this); } @@ -188,10 +186,10 @@ void ABaseWeaponClass::WeaponScopedFire() { if (endlessVendettaChar->bIsScoped) { - recoilMagnitude -= 0.2f; - recoilMaxAngleLeft /= 2.f; - recoilMaxAngleRight /= 2.f; - recoilMinMultiplier -= 0.2f; + recoilMagnitude = scopedRecoilMag; + recoilMaxAngleLeft = scopedMaxAngleLeft; + recoilMaxAngleRight = scopedMaxAngleRight; + recoilMinMultiplier = scopedMinMultiplier; } else diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 19175cef..4deb8c6c 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -24,9 +24,9 @@ protected: // Called when the game starts or when spawned virtual void BeginPlay() override; - void GenerateRecoilVector(); - void ApplyRecoil(float DeltaTime); + + void GenerateRecoilVector(); void nullSamples(); @@ -44,7 +44,7 @@ protected: public: // Called every frame virtual void Tick(float DeltaTime) override; - + UPROPERTY(EditAnywhere) FName WeaponName; @@ -57,9 +57,25 @@ public: UPROPERTY(EditAnywhere) int MagazineSize; + //how many bullets until the recoil stops going up + UPROPERTY(EditAnywhere) + int howMnyShotsTillRclStop; + UPROPERTY(EditAnywhere) UTexture2D* WeaponImage; + UPROPERTY(EditAnywhere, Category = "ScopedFire") + float scopedRecoilMag; + + UPROPERTY(EditAnywhere, Category = "ScopedFire") + float scopedMaxAngleLeft; + + UPROPERTY(EditAnywhere, Category = "ScopedFire") + float scopedMaxAngleRight; + + UPROPERTY(EditAnywhere, Category = "ScopedFire") + float scopedMinMultiplier; + UFUNCTION(BlueprintCallable, Category = "Weapons") virtual void Fire(); From caf7254f106fa5c0d243f275df492eaf92a2b507 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Tue, 10 Oct 2023 13:13:53 +0100 Subject: [PATCH 4/8] Updated FireRate for Base Pistol Weapon --- .../Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset index ea240160..2ec11a0f 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:71b1463641785fe268bbea7f26c1e1d12cb0703f47b2ec1c50afd19ed3f061ed -size 30046 +oid sha256:b3bf71e2c6645280bb24b5e8ed7e526df8cb074b7daedabb10fc36e49c04a6dd +size 29979 From 79ef9a3de1e40739632377f1508e064bd12fcea1 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Tue, 10 Oct 2023 13:14:09 +0100 Subject: [PATCH 5/8] Fixed Crosshair Not returning to proper Position --- .../Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp | 6 +----- .../Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h | 2 -- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index 8e61ac7b..271d8234 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -147,7 +147,7 @@ void ABaseWeaponClass::CancelFire() UE_LOG(LogTemp, Display, TEXT("FireCancelled")); bulletCountShoot = 0; GunStartArrow->SetRelativeRotation(FRotator(0,0,0)); - playerControllerRef->SetControlRotation(ogPlayerRotation); + playerControllerRef->SetControlRotation(FRotator(0,0,0)); } void ABaseWeaponClass::Fire() @@ -165,10 +165,6 @@ void ABaseWeaponClass::Fire() GenerateRecoilVector(); ClickDetectionTimer(); bulletCountShoot += 1; - if (bulletCountShoot <= 1) - { - ogPlayerRotation = FRotator(playerControllerRef->GetControlRotation()); - } if (outHit.bBlockingHit) { if (!Cast(outHit.GetActor())) return; diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 4deb8c6c..98557014 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -135,8 +135,6 @@ public: FVector newTraceEnd; FCollisionQueryParams collisionParams; - FRotator ogPlayerRotation; - //UFUNCTION(BlueprintCallable, Category = "Weapons") //void RecoilVerticalLimit(FHitResult Outhit); From 9e09c569db58f4e3fbc239dcec4293dc930e5436 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Tue, 10 Oct 2023 14:23:03 +0100 Subject: [PATCH 6/8] Fixed camera returning to correct position --- .../WeaponSystem/BaseWeaponClass.cpp | 21 ++++++++++++++++--- .../WeaponSystem/BaseWeaponClass.h | 4 +++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index 271d8234..e348490a 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -63,6 +63,13 @@ void ABaseWeaponClass::Tick(float DeltaTime) { ApplyRecoil(DeltaTime); } + UE_LOG(LogTemp, Display, TEXT("currnt pitch: %f"), currentPitch); + if (currentPitch < 0 && bStopShooting) + { + float increment = currentPitch * DeltaTime * 8; + currentPitch -= increment; + playerInWorld->AddControllerPitchInput(-increment); + } } @@ -94,7 +101,11 @@ void ABaseWeaponClass::ApplyRecoil(float DeltaTime) { float amplitude = RecoilCurve->GetFloatValue(recoilTime); //get current value of curve in time recoilTime += DeltaTime; - if (bulletCountShoot <= 3) playerInWorld->AddControllerPitchInput(GetRecoilPitch(amplitude, recoilTime)); + if (bulletCountShoot <= 3) + { + playerInWorld->AddControllerPitchInput(GetRecoilPitch(amplitude, recoilTime)); + currentPitch += GetRecoilPitch(amplitude,recoilTime); + } GunStartArrow->AddRelativeRotation(FRotator(-GetRecoilPitch(amplitude, recoilTime), 0, 0)); playerInWorld->AddControllerYawInput(GetRecoilYaw(amplitude, recoilTime)); UpdateSamples(amplitude, recoilTime); @@ -144,10 +155,13 @@ void ABaseWeaponClass::ClickDetectionTimer() void ABaseWeaponClass::CancelFire() { GetWorldTimerManager().ClearTimer(timerHandle); + if (bulletCountShoot <= 0) return; UE_LOG(LogTemp, Display, TEXT("FireCancelled")); bulletCountShoot = 0; - GunStartArrow->SetRelativeRotation(FRotator(0,0,0)); - playerControllerRef->SetControlRotation(FRotator(0,0,0)); + GunStartArrow->SetRelativeRotation(FRotator(0)); + //playerInWorld->GetController()->SetControlRotation(FRotator(0, playerInWorld->GetActorRotation().Yaw, playerInWorld->GetActorRotation().Roll)); + bStopShooting = true; + nullSamples(); } void ABaseWeaponClass::Fire() @@ -165,6 +179,7 @@ void ABaseWeaponClass::Fire() GenerateRecoilVector(); ClickDetectionTimer(); bulletCountShoot += 1; + bStopShooting = false; if (outHit.bBlockingHit) { if (!Cast(outHit.GetActor())) return; diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 98557014..6647f0d6 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -154,5 +154,7 @@ private: float originalMinMultiplier; int currentAmmoCount; - + + float currentPitch; + bool bStopShooting = false; }; From 4be68e91a51b290f938a77ac49a59ce27c0e8b76 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Wed, 11 Oct 2023 18:53:57 +0100 Subject: [PATCH 7/8] Started adding basic UI on weapons --- .../Blueprints/BaseWeapons/BP_BaseWeapon.uasset | 4 ++-- .../Blueprints/BaseWeapons/WBP_AmmoCount.uasset | 3 +++ .../EndlessVendetta/WeaponSystem/BaseWeaponClass.h | 9 +++++---- 3 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset index 47d586c9..fd641fe7 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4febec5729a36774fbc7932a6fec983a74cc9cfac901f131fcbdafe3da17205c -size 29846 +oid sha256:a0da36d309ab31edb443cdd04c208688f52f31579e51532a942a226e3a043a41 +size 31530 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset new file mode 100644 index 00000000..ffa789a6 --- /dev/null +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40e8a310391b4641f53daf2e8608e0597638df604749d0db465d4917b0cba8f3 +size 50441 diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 6647f0d6..2ea5b812 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -54,14 +54,17 @@ public: UPROPERTY(EditAnywhere) float FireRate; - UPROPERTY(EditAnywhere) + UPROPERTY(EditAnywhere, BlueprintReadWrite) int MagazineSize; //how many bullets until the recoil stops going up UPROPERTY(EditAnywhere) int howMnyShotsTillRclStop; - UPROPERTY(EditAnywhere) + UPROPERTY(BlueprintReadWrite) + int currentAmmoCount; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) UTexture2D* WeaponImage; UPROPERTY(EditAnywhere, Category = "ScopedFire") @@ -153,8 +156,6 @@ private: float originalMaxAngleRight; float originalMinMultiplier; - int currentAmmoCount; - float currentPitch; bool bStopShooting = false; }; From 73fa607cfb2cd667df11bcf93b02a93b13c556bf Mon Sep 17 00:00:00 2001 From: MH261677 Date: Sat, 14 Oct 2023 15:48:59 +0100 Subject: [PATCH 8/8] Fixed and Added Ammo UI for Both Pistol and AR --- .../FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset | 4 ++-- .../BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset | 4 ++-- .../FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset | 4 ++-- .../Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset | 4 ++-- .../FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset index cc246418..802959cb 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:946f8f62bbea4cb4f5d279e9da49d29291bacb30f803de7fd8503ed608295287 -size 42585 +oid sha256:dd6b7d124efa1086acb80f4b16e1d8a0db25e05e081f914d61cfce0bbb4191e9 +size 42329 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset index 2e239e7c..534c1e9e 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d4914d01f2581bf5c3edc200811e9990ccc825755171a4fc83bfb0ef12bcb145 -size 38083 +oid sha256:215d949e3ea1df83d937e0387115975c9c3e14077a879a6f834831241c154f18 +size 39178 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset index fd641fe7..e3885a88 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0da36d309ab31edb443cdd04c208688f52f31579e51532a942a226e3a043a41 -size 31530 +oid sha256:1de9565906296c664bb7dd6b3f700d135fa5244e1f625f9f792eba15a9880ae8 +size 48226 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset index 2ec11a0f..75a10fe3 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b3bf71e2c6645280bb24b5e8ed7e526df8cb074b7daedabb10fc36e49c04a6dd -size 29979 +oid sha256:246a8220f9708873776922ca6683ec085b4447eecd1efd89fd0572c94b9d5956 +size 49471 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset index ffa789a6..42f932a9 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:40e8a310391b4641f53daf2e8608e0597638df604749d0db465d4917b0cba8f3 -size 50441 +oid sha256:652402df45503ab3169e329879f397101d9b5bf17551404301cca7b5b292eb68 +size 62076