From 8b903255028fe4e08f4b547cff67675f3594c303 Mon Sep 17 00:00:00 2001 From: Rafal Swierczek <34179rs@gmail.com> Date: Sat, 7 Oct 2023 16:40:58 +0100 Subject: [PATCH] Implemented Overload Modules UI --- .../OverloadModule/CG_OverloadModule.uasset | 4 ++-- .../OverloadModule/WBP_OM_ScreenWidget.uasset | 4 ++-- .../Content/Levels/GadgetSystemTestLevel.umap | 4 ++-- .../Blueprints/Blueprint_CeilingLight.uasset | 4 ++-- .../Particles/P_Ambient_Dust.uasset | 4 ++-- .../Combat/OverloadModule/OverloadModule.cpp | 14 ++++++++------ .../Combat/OverloadModule/OverloadModule.h | 16 ++++++++++++---- 7 files changed, 30 insertions(+), 20 deletions(-) diff --git a/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset b/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset index 1093b52a..d42d8a1b 100644 --- a/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset +++ b/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:599c54946bc53ff3d3ee06fc5c1e8322aa69d8a54380df1e8a63a41c5aefed46 -size 22249 +oid sha256:9fccd918d154abe44f38ff143101e53cd24b3e942af805172cf6ffe84b7e7cb3 +size 109934 diff --git a/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/WBP_OM_ScreenWidget.uasset b/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/WBP_OM_ScreenWidget.uasset index 042d528a..f48c5af0 100644 --- a/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/WBP_OM_ScreenWidget.uasset +++ b/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/WBP_OM_ScreenWidget.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1fa538706ad1bf961d40e82afa4e2ff2937e4377d353f0db4b46cd1599609d19 -size 25427 +oid sha256:2ca74a9a4b471019294bae3731c5b9d96eedd3ef09a2c877a7b0966457437f6c +size 260939 diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap index 83fabf6e..13687f71 100644 --- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap +++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:35b4a02d71c80d38b36dd3e41dcc099477704b99bd7e2785129503a80a20e67e -size 106253 +oid sha256:04bfe587aa943c22a21e10962ddfb29aa185a165a9b1862aebbb012c532e5b8f +size 108254 diff --git a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset index ed6b3cec..c5c3b84e 100644 --- a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset +++ b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5af4fcb65090d7e479af3da106bf123a1282a271ff955a9c739e901b15550f74 -size 43745 +oid sha256:4a60a29ad596546d481e43dfb8698842a78cc07f4a4b1000fa397cfba4e72331 +size 158206 diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset index bf2e4391..83fc36f9 100644 --- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset +++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:01ef616c7a8bd90cd1b7a13efb18a56f33346efbae51efa31f09804478b7621d -size 43456 +oid sha256:2e1b3cefe3e87cb6c0a3e14276cb1104cde7923ebc7cf5b6c77d028d3d08bf5a +size 53268 diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp index c2a7e14a..acadde39 100644 --- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp @@ -3,7 +3,6 @@ #include "OverloadModule.h" -#include "BehaviorTree/BTCompositeNode.h" #include "Components/SphereComponent.h" #include "GameFramework/Character.h" @@ -21,6 +20,7 @@ void AOverloadModule::Tick(float DeltaSeconds) { Super::Tick(DeltaSeconds); + if (GadgetCantBeUsed()) return; CheckForPotentialHackTarget(); } @@ -67,7 +67,10 @@ void AOverloadModule::Activate() void AOverloadModule::FinishedUsing() { + IsValid(ClosestEnemy) ? DisplayHackingSuccess() : DisplayHackingFailure(); + SpawnExplosiveOnActor(ClosestEnemy); Super::FinishedUsing(); + PlayRechargingAnim(CooldownTime); } void AOverloadModule::ExplodeClosestAliveEnemy() @@ -90,17 +93,16 @@ void AOverloadModule::ExplodeClosestAliveEnemy() if (EnemiesInRadius.IsEmpty()) { - DisplayFailedToFindTarget(); + ClosestEnemy = nullptr; SphereCollision->DestroyComponent(); return; } // Find the closest Enemy in radius - AActor* ClosestEnemy = EnemiesInRadius[0]; + ClosestEnemy = EnemiesInRadius[0]; float Dist = FVector::Distance(PlayerChar->GetActorLocation(), ClosestEnemy->GetActorLocation()); if (EnemiesInRadius.Num() < 2) { - SpawnExplosiveOnActor(ClosestEnemy); SphereCollision->DestroyComponent(); return; } @@ -114,14 +116,14 @@ void AOverloadModule::ExplodeClosestAliveEnemy() Dist = ConsideredDist; } } - - SpawnExplosiveOnActor(ClosestEnemy); + SphereCollision->DestroyComponent(); } void AOverloadModule::SpawnExplosiveOnActor(AActor* ActortoExplode) { + if (!IsValid(ActortoExplode)) return; FActorSpawnParameters SpawnParams; SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; GetWorld()->SpawnActor(Explosive, ActortoExplode->GetActorLocation(), ActortoExplode->GetActorRotation(), SpawnParams); diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.h index 63e5d40f..59ffdd3a 100644 --- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.h +++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.h @@ -22,6 +22,8 @@ class ENDLESSVENDETTA_API AOverloadModule : public ACombatGadget AActor* PotentialHackTarget; + AActor* ClosestEnemy; + // An Array of previously hacked enemies, stops player from hacking the same Dead Enemy TArray HackedEnemies; @@ -58,10 +60,16 @@ protected: UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module") void DisplayFoundPotentialTarget(); - - UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module") - void DisplayFailedToFindTarget(); - + UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module") void PlayHackingAnim(float Loadingtime); + + UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module") + void DisplayHackingFailure(); + + UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module") + void DisplayHackingSuccess(); + + UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module") + void PlayRechargingAnim(float RechargingTime); };