From 783e7bd136540d3b0ee1ad457a9f973e1e9afb3b Mon Sep 17 00:00:00 2001 From: Marcel Hara Date: Mon, 6 Nov 2023 17:21:34 +0000 Subject: [PATCH] Added Full Weapon Damage Drop Off To All Guns --- .../BaseWeapons/WBP_AmmoCount.uasset | 4 ++-- .../BaseWeapons/WBP_WeaponStatsPrompt.uasset | 4 ++-- .../WeaponSystem/BaseWeaponClass.cpp | 10 +++++++++- .../WeaponSystem/BaseWeaponClass.h | 1 + .../WeaponSystem/ShotgunClass.cpp | 19 +++++++++---------- .../WeaponSystem/SniperClass.cpp | 11 +++++++++-- 6 files changed, 32 insertions(+), 17 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset index 8506b4d5..8cd31cc0 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:12a2bf04dd00e6b7507070952dc3382734b02f049bd6a73a24f066b802071ca6 -size 64438 +oid sha256:04af06327094d9d5557376fbe5a7886c7d7776759de2af4a93d52cdfacf59e9a +size 64443 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset index 3c992595..dde4061d 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b4ab6367925f65273a78ac37e31eea98096d127474edeb245b8ec54d07e5dbb3 -size 186618 +oid sha256:ead2d32698cc8f6f60af3405fa3b9f5f1452791c2c759e631744a26cebf6749e +size 185820 diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index 81c1597e..f743b5ef 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -183,8 +183,16 @@ void ABaseWeaponClass::Fire() bStopShooting = false; if (outHit.bBlockingHit) { + if (outHit.Distance >= FMath::Floor(BulletDistance/2)) + { + tempWeaponDamage = WeaponDamage / 2; + } + else + { + tempWeaponDamage = WeaponDamage; + } if (!Cast(outHit.GetActor())) return; - Cast(outHit.GetActor())->TakeDamage(WeaponDamage, FPointDamageEvent(), GetWorld()->GetFirstPlayerController(), this); + Cast(outHit.GetActor())->TakeDamage(tempWeaponDamage, FPointDamageEvent(), GetWorld()->GetFirstPlayerController(), this); } } else if(currentAmmoCount <= 0) diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 6442a8f3..2637e31f 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -180,6 +180,7 @@ protected: UArrowComponent* GunStartArrow; bool bStopShooting = false; + UPROPERTY(VisibleAnywhere) int tempWeaponDamage; float originalMagnitude; diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/ShotgunClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/ShotgunClass.cpp index 37c26400..8be88ccc 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/ShotgunClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/ShotgunClass.cpp @@ -27,15 +27,6 @@ void AShotgunClass::Fire() { FVector newStartTrace = UKismetMathLibrary::RandomPointInBoundingBox(traceStart, ShotgunBulletSpread); traceEnd = newStartTrace + (GunStartArrow->GetForwardVector() * BulletDistance); - if (outHit.Distance >= FMath::Floor(BulletDistance/1.5)) - { - tempWeaponDamage /= 2; - GLog->Log("Bullet distance reached a quarter"); - } - else - { - tempWeaponDamage = WeaponDamage; - } GetWorld()->LineTraceSingleByChannel(outHit, newStartTrace, traceEnd, ECC_Visibility, collisionParams); DrawDebugLine(this->GetWorld(), newStartTrace, traceEnd, FColor::Red , false, 100.f, 0U, 1.f); currentAmmoCount --; @@ -47,8 +38,16 @@ void AShotgunClass::Fire() bStopShooting = false; if (outHit.bBlockingHit) { + if (outHit.Distance >= FMath::Floor(BulletDistance/2)) + { + tempWeaponDamage = WeaponDamage / 2; + } + else + { + tempWeaponDamage = WeaponDamage; + } if (!Cast(outHit.GetActor())) return; - Cast(outHit.GetActor())->TakeDamage(WeaponDamage, FPointDamageEvent(), GetWorld()->GetFirstPlayerController(), this); + Cast(outHit.GetActor())->TakeDamage(tempWeaponDamage, FPointDamageEvent(), GetWorld()->GetFirstPlayerController(), this); } } else if(currentAmmoCount <= 0) diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/SniperClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/SniperClass.cpp index 9ace82f6..43f17bc9 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/SniperClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/SniperClass.cpp @@ -58,9 +58,16 @@ void ASniperClass::Fire() this->GetWorld()->GetTimerManager().SetTimer(SniperTimerHandle, this, &ASniperClass::StopFire, FireRate, false); if (outHit.bBlockingHit) { - UE_LOG(LogTemp, Display, TEXT("Hit: %s"), *outHit.GetActor()->GetName()); + if (outHit.Distance >= FMath::Floor(BulletDistance/2)) + { + tempWeaponDamage = WeaponDamage / 2; + } + else + { + tempWeaponDamage = WeaponDamage; + } if (!Cast(outHit.GetActor())) return; - Cast(outHit.GetActor())->TakeDamage(WeaponDamage, FPointDamageEvent(), GetWorld()->GetFirstPlayerController(), this); + Cast(outHit.GetActor())->TakeDamage(tempWeaponDamage, FPointDamageEvent(), GetWorld()->GetFirstPlayerController(), this); } } else if(currentAmmoCount <= 0)