From a2035ffe2fac8b09a06f381032fd015026788ba6 Mon Sep 17 00:00:00 2001 From: Marcel Hara Date: Wed, 4 Oct 2023 15:45:43 +0100 Subject: [PATCH] Cleaned up & added Weapon kick shake (non-universal) --- .../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 ++-- .../Blueprints/BaseWeapons/BP_BaseWeapon.uasset | 4 ++-- .../BaseWeapons/BP_GunCameraShake.uasset | 3 +++ .../Pistols/BP_BasePistolWeapon.uasset | 4 ++-- .../0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset | 2 +- .../WeaponSystem/BaseWeaponClass.cpp | 16 ++++++++++++++-- .../WeaponSystem/BaseWeaponClass.h | 15 ++++++++------- .../EndlessVendetta/WeaponSystem/PistolClass.cpp | 6 ++++++ .../EndlessVendetta/WeaponSystem/PistolClass.h | 2 ++ 9 files changed, 40 insertions(+), 16 deletions(-) create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset index 998ce21b..d62958e4 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:6c3599c78d84a6895d06de8ce3697a6aefd517ac0105d041cab6f5124090bb3b -size 35834 +oid sha256:fc4caf67df37627a19c4b9f2c464d84cb293574db45f018458c0d59e0a15ba1a +size 37750 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset index f09d81f5..e4f50596 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:694f084a31b369305b9cf0e066786a624f73721bf819d3823177703341f0b98c -size 28902 +oid sha256:77b4872fd2fde68620f3fb539222718cbe2c66160a956c6373d3650c58a9bf88 +size 29117 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset new file mode 100644 index 00000000..a24df98a --- /dev/null +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b5bc4f06eaeb74c61b627c02ff6e49dedeebfe047bc79fbfa8941b25c4674ef +size 7209 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset index a1f00f47..1a6ea0df 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:69e0dd14f07413220251048a5a7bb322eebd9e2d9362dc29bab3d3de096a9a82 -size 29337 +oid sha256:668c94fe648e9fde608e3a07b193f42087fddc44d0e76ec3e4705be642f78679 +size 29493 diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset index b70bdb74..3f91ee89 100644 --- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset +++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:51fdff374c4c25c321646b9315bc5286b1ddc89511a597538bf96bea96222e02 +oid sha256:f9dd9531bbf28069122709420605ec7c6478ddea44b642b28f016b2349a05597 size 5061 diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index 5bcf7c6a..0c3cafba 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -2,7 +2,11 @@ #include "BaseWeaponClass.h" + +#include "AIHelpers.h" +#include "GeneratedCodeHelpers.h" #include "EndlessVendetta/EndlessVendettaCharacter.h" +#include "Kismet/KismetMathLibrary.h" #include "Components/CapsuleComponent.h" #include "Kismet/GameplayStatics.h" @@ -28,6 +32,11 @@ void ABaseWeaponClass::BeginPlay() GunStartArrow = Cast(actorComp); break; } + + if (!playerControllerRef) + { + playerControllerRef = UGameplayStatics::GetPlayerController(GetWorld(), 0); + } } @@ -35,6 +44,7 @@ void ABaseWeaponClass::BeginPlay() void ABaseWeaponClass::Tick(float DeltaTime) { Super::Tick(DeltaTime); + } void ABaseWeaponClass::ClickDetectionTimer() @@ -47,6 +57,7 @@ void ABaseWeaponClass::CancelFire() GetWorldTimerManager().ClearTimer(timerHandle); } + void ABaseWeaponClass::Fire() { FHitResult outHit; @@ -63,11 +74,12 @@ void ABaseWeaponClass::Fire() } GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams); //Debug line to see where the trace hit - DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, true, 500.0f, 0U, 5.f); + DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, false, 5.0f, 0U, 2.5f); + playerControllerRef->PlayerCameraManager->StartCameraShake(CameraShakeClass, 1); ClickDetectionTimer(); if (outHit.bBlockingHit) { UE_LOG(LogTemp, Display, TEXT("hit item: %s"), *outHit.GetActor()->GetName()); } } - + diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 67be17fc..a32c90bc 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -5,6 +5,7 @@ #include "CoreMinimal.h" #include "WeaponItemClass.h" #include "Components/ArrowComponent.h" +#include "Kismet/KismetMathLibrary.h" #include "BaseWeaponClass.generated.h" class AEndlessVendettaCharacter; @@ -43,7 +44,7 @@ public: UTexture2D* WeaponImage; UFUNCTION(BlueprintCallable, Category = "Weapons") - void Fire(); + virtual void Fire(); UFUNCTION(BlueprintCallable, Category = "Weapons") void ClickDetectionTimer(); @@ -53,10 +54,16 @@ public: UPROPERTY(VisibleAnywhere) ACharacter* player; + UPROPERTY() + APlayerController* playerControllerRef; + FTimerHandle timerHandle; bool bFirstBulletShot = false; + UPROPERTY(EditAnywhere) + TSubclassOf CameraShakeClass; + private: UArrowComponent* GunStartArrow; @@ -64,10 +71,4 @@ private: UPROPERTY(EditAnywhere) float BulletDistance; - - //Add HoldFire functionality after pistol is complete for holding fire for pistol and make it start spraying innacuratly. - - // UFUNCTION(BlueprintCallable, Category = "Weapons") - // void HoldFire(); - }; diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.cpp index c40b9fdc..2b7dc95a 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.cpp @@ -24,3 +24,9 @@ void APistolClass::Tick(float DeltaTime) Super::Tick(DeltaTime); } +void APistolClass::Fire() +{ + Super::Fire(); + UE_LOG(LogTemp, Display, TEXT("Testing overrides: Pistol has been fired")); +} + diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.h index 4ad676b2..ca85b67e 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.h @@ -22,4 +22,6 @@ protected: public: // Called every frame virtual void Tick(float DeltaTime) override; + + virtual void Fire() override; };