From f427b07bb9e28b1bd58c4f94c504ffeba4abd799 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Mon, 9 Oct 2023 14:51:50 +0100 Subject: [PATCH] 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);