From a9eb6e3eeaeb740ac2d10e142c800d5858fb9a75 Mon Sep 17 00:00:00 2001 From: MARCEL HARA Date: Thu, 19 Oct 2023 11:19:12 +0100 Subject: [PATCH 1/5] Updated all Classes to have new Interface Function --- .../BaseWeapons/BP_BaseWeapon.uasset | 4 ++-- .../BaseWeapons/WBP_AmmoCount.uasset | 4 ++-- .../BaseWeapons/WBP_WeaponStatsPrompt.uasset | 3 +++ .../LevelPrototyping/Scenes/TutorialHit.umap | 4 ++-- .../BountySystem/BountyDirector.cpp | 5 +++++ .../BountySystem/BountyDirector.h | 2 ++ .../EndlessVendettaCharacter.cpp | 20 +++++++++++++++++++ .../EndlessVendettaCharacter.h | 2 ++ .../EndlessVendetta/InteractionInterface.h | 3 +++ .../WeaponSystem/BaseWeaponClass.cpp | 13 ++++++++++++ .../WeaponSystem/BaseWeaponClass.h | 9 ++++++++- 11 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset index f2c7b766..aa29977b 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:754ba6fc86e8d96dbe2fade3d515f45b10eefd1e3c7ac9115658daa2b251622e -size 76327 +oid sha256:4b77951badd74210f53986b352ed4a4f92520b0ac247bea02c8fe39c6fba0f98 +size 78642 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset index 5f03829f..6101521e 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:1b199cbe84b6c49806f9646990c9c60ff7199214add19091ea0d7a47896daf53 -size 64350 +oid sha256:10ebd683496c3f12941f3983445288dce63f61464dea90cf666d51f7faf23919 +size 64526 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset new file mode 100644 index 00000000..b3297971 --- /dev/null +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53e04069ebf540b1eabcc5f7443809ad8ce7220ad0c86c39bca7befee2fc4ac6 +size 21759 diff --git a/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap b/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap index 36f15ee5..1be569be 100644 --- a/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap +++ b/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:609efdd8d33b3e588fab3798c966b543cb353408d1aa6d8f78e1e50aed3e8c1c -size 298511 +oid sha256:e1a60c21cb9af1f0efba0eed08d7f08e957185d81139c861473115ec2b2b578d +size 301542 diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp index 56ed2056..7d884ef8 100644 --- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp @@ -266,6 +266,11 @@ void ABountyDirector::Interact() PC_Display->LoadOS(); } +void ABountyDirector::InteractPrompt() +{ + +} + void ABountyDirector::DestroyBountyDirectorPCWidget() { if (IsValid(PC_DisplayWidget)) PC_DisplayWidget->RemoveFromParent(); diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h index 5c3a9719..b8ac9a66 100644 --- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h +++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h @@ -54,6 +54,8 @@ class ENDLESSVENDETTA_API ABountyDirector : public AActor, public IInteractionIn // Opens up Bounty Director PC Interface void Interact() override; + // Prompts player to interact + void InteractPrompt() override; protected: int Favours = 20; diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index bca0966d..f8deed82 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -69,6 +69,24 @@ void AEndlessVendettaCharacter::BeginPlay() void AEndlessVendettaCharacter::Tick(float DeltaTime) { Super::Tick(DeltaTime); + + WeaponPickUpSystem(); + +} + +void AEndlessVendettaCharacter::WeaponPickUpSystem() +{ + FHitResult OutHit; + FCollisionQueryParams QueryParams = FCollisionQueryParams::DefaultQueryParam; + QueryParams.AddIgnoredActor(this); + FVector LT_Start = FirstPersonCameraComponent->GetComponentLocation(); + FVector LT_End = LT_Start + (FirstPersonCameraComponent->GetForwardVector() * InteractionRange); + if (!GetWorld()->LineTraceSingleByChannel(OutHit, LT_Start, LT_End, ECC_Camera, QueryParams)) return; + + AActor* HitActor = OutHit.GetActor(); + UE_LOG(LogTemp, Warning, TEXT("Hit actor: %s"), *HitActor->GetName()); + IInteractionInterface* InteractableActor = Cast(HitActor); + if (InteractableActor) InteractableActor->InteractPrompt(); } //////////////////////////////////////////////////////////////////////////// Input @@ -124,6 +142,7 @@ void AEndlessVendettaCharacter::Interact() if (!GetWorld()->LineTraceSingleByChannel(OutHit, LT_Start, LT_End, ECC_Camera, QueryParams)) return; AActor* HitActor = OutHit.GetActor(); + UE_LOG(LogTemp, Warning, TEXT("Hit actor: %s"), *HitActor->GetName()); IInteractionInterface* InteractableActor = Cast(HitActor); if (InteractableActor) InteractableActor->Interact(); } @@ -151,6 +170,7 @@ float AEndlessVendettaCharacter::TakeDamage(const float DamageAmount, FDamageEve return Super::TakeDamage(DamageAmount, DamageEvent, EventInstigator, DamageCauser); } + void AEndlessVendettaCharacter::ToggleRecon() { if (IsValid(PrimaryWeapon)) EquipPrimary(); diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index ece80c9f..fd54fc40 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -173,4 +173,6 @@ public: UFUNCTION(BlueprintCallable, Category = "Damage Control") virtual float TakeDamage(float DamageAmount, FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) override; + + void WeaponPickUpSystem(); }; diff --git a/EndlessVendetta/Source/EndlessVendetta/InteractionInterface.h b/EndlessVendetta/Source/EndlessVendetta/InteractionInterface.h index 29746fab..f266b10b 100644 --- a/EndlessVendetta/Source/EndlessVendetta/InteractionInterface.h +++ b/EndlessVendetta/Source/EndlessVendetta/InteractionInterface.h @@ -23,4 +23,7 @@ class ENDLESSVENDETTA_API IInteractionInterface // Add interface functions to this class. This is the class that will be inherited to implement this interface. public: virtual void Interact(){} + + + virtual void InteractPrompt() {} }; diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index 6db24720..ba95f360 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -230,4 +230,17 @@ void ABaseWeaponClass::WeaponReload() } } +void ABaseWeaponClass::Interact() +{ + GLog->Log("Interact Called"); +} + +void ABaseWeaponClass::InteractPrompt() +{ + WeaponStatsPopUp(); + UE_LOG(LogTemp, Warning, TEXT("InteractPrompt setup")) +} + + + diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 72ad7ed4..7d82343a 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -6,13 +6,14 @@ #include "WeaponItemClass.h" #include "Components/ArrowComponent.h" #include "Kismet/KismetMathLibrary.h" +#include "EndlessVendetta/InteractionInterface.h" #include "BaseWeaponClass.generated.h" class AEndlessVendettaCharacter; class UCapsuleComponent; UCLASS() -class ENDLESSVENDETTA_API ABaseWeaponClass : public AActor +class ENDLESSVENDETTA_API ABaseWeaponClass : public AActor, public IInteractionInterface { GENERATED_BODY() @@ -156,6 +157,12 @@ public: UPROPERTY(EditAnywhere) int bulletCountShoot; //Gets how many bullets shot per + void Interact() override; + + void InteractPrompt() override; + + UFUNCTION(BlueprintImplementableEvent) + void WeaponStatsPopUp(); protected: UArrowComponent* GunStartArrow; From c68c1b70dcc5af3630ef4f6c5aa0312a0d76d1f9 Mon Sep 17 00:00:00 2001 From: MARCEL HARA Date: Thu, 19 Oct 2023 12:08:25 +0100 Subject: [PATCH 2/5] Started adding WeaponStats UI --- .../FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset | 4 ++-- .../Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset | 4 ++-- .../Content/LevelPrototyping/Scenes/TutorialHit.umap | 4 ++-- .../Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h | 3 +++ 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset index aa29977b..aaca57f5 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:4b77951badd74210f53986b352ed4a4f92520b0ac247bea02c8fe39c6fba0f98 -size 78642 +oid sha256:e657a0654a07a7573dcf638c96b9aa133cb1187ec301825e177dede83106db40 +size 126851 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset index b3297971..e91670eb 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:53e04069ebf540b1eabcc5f7443809ad8ce7220ad0c86c39bca7befee2fc4ac6 -size 21759 +oid sha256:9d594f98e9965fee6c2321d2688890d8d745b135621247d2a34ca8a2f9d7935a +size 83652 diff --git a/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap b/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap index 1be569be..50e7b151 100644 --- a/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap +++ b/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e1a60c21cb9af1f0efba0eed08d7f08e957185d81139c861473115ec2b2b578d -size 301542 +oid sha256:57903d1174f13c4e930113e1f5aba86389d1568b4e42193474fec9da7cfd55aa +size 301943 diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 7d82343a..121ac885 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -60,6 +60,9 @@ public: UPROPERTY(EditAnywhere) int WeaponDamage; + UPROPERTY(EditAnywhere) + FString WeaponDescription; + UPROPERTY(EditAnywhere) float FireRate; From feeb0f36d6d86803028777005d552c60b4c50bef Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 19 Oct 2023 15:30:39 +0100 Subject: [PATCH 3/5] Finished Creating Weapon Stat UI for all Weapons --- .../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 ++-- .../Blueprints/BaseWeapons/BP_BaseWeapon.uasset | 4 ++-- .../Blueprints/BaseWeapons/WBP_AmmoCount.uasset | 4 ++-- .../BaseWeapons/WBP_WeaponStatsPrompt.uasset | 4 ++-- .../EndlessVendetta/WeaponSystem/BaseWeaponClass.h | 13 +++++++------ 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset index 877f5854..4efa20ad 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:63a33ee4cfad25c36bd022a8723b9b6ff80d70127366efa8983549044fd1f8ac -size 39198 +oid sha256:f7cb927b0b7296205adad620a38f473c36b2ee787fa7d4c6b12009a4aaf549e9 +size 40029 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset index aaca57f5..cac2db11 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:e657a0654a07a7573dcf638c96b9aa133cb1187ec301825e177dede83106db40 -size 126851 +oid sha256:c5ee53e7d84e4e0a3a6941011ad8a3c2718afe0bad7e95cf23f7cc1063476f53 +size 124677 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset index 6101521e..b4d8011b 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:10ebd683496c3f12941f3983445288dce63f61464dea90cf666d51f7faf23919 -size 64526 +oid sha256:dc183a9d9781ca6800fa345b6428f7bf41953180f79e74b96c894a33b9d789e9 +size 64773 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_WeaponStatsPrompt.uasset index e91670eb..88947b41 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:9d594f98e9965fee6c2321d2688890d8d745b135621247d2a34ca8a2f9d7935a -size 83652 +oid sha256:a45878c4f97b973894f65722a55015a06cb6acc25e913c9d4045fd4532176701 +size 192580 diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 121ac885..f09b4492 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -54,22 +54,23 @@ public: // Called every frame virtual void Tick(float DeltaTime) override; void ReloadTimer(); - UPROPERTY(EditAnywhere) - FName WeaponName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FString WeaponName; - UPROPERTY(EditAnywhere) + UPROPERTY(EditAnywhere, BlueprintReadWrite) int WeaponDamage; - UPROPERTY(EditAnywhere) + UPROPERTY(EditAnywhere, BlueprintReadWrite) FString WeaponDescription; - UPROPERTY(EditAnywhere) + UPROPERTY(EditAnywhere, BlueprintReadWrite) float FireRate; UPROPERTY(EditAnywhere, BlueprintReadWrite) int MagazineSize; - UPROPERTY(EditAnywhere) + UPROPERTY(EditAnywhere, BlueprintReadWrite) float TimeToReload = 3.f; //how many bullets until the recoil stops going up From 6c1c5ca12ea37da7f123efbe6580ac6f2a23ab21 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 19 Oct 2023 16:44:35 +0100 Subject: [PATCH 4/5] Added New AR Test & Started working on switching system --- .../Blueprints/BP_FirstPersonCharacter.uasset | 4 ++-- .../BaseWeapons/AssaultRifles/BP_ARTEST1.uasset | 3 +++ .../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 ++-- .../EndlessVendetta/EndlessVendettaCharacter.cpp | 14 ++++++++++++-- .../EndlessVendetta/EndlessVendettaCharacter.h | 8 +++++--- .../WeaponSystem/BaseWeaponClass.cpp | 16 +++++++++++++++- .../WeaponSystem/BaseWeaponClass.h | 2 ++ 7 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_ARTEST1.uasset diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset index f851630e..ef5cc606 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:fb7eb23a18c0ad9f5cf37ae72d45bac1d1b1d90fac9281cfa3e3233b9b6a3d44 -size 42950 +oid sha256:dfeced37123c7e12907f8c5c3882aa970013d96167d07df1d71a464e2f91fd0d +size 42429 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_ARTEST1.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_ARTEST1.uasset new file mode 100644 index 00000000..777ad054 --- /dev/null +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_ARTEST1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00849c635d8e843e1520e12a92f95fd99d9b29e670718919dc847fa283ecc3c9 +size 40704 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset index 4efa20ad..14593b0f 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:f7cb927b0b7296205adad620a38f473c36b2ee787fa7d4c6b12009a4aaf549e9 -size 40029 +oid sha256:f9481ef86ac85568b121922e82b67586cd754928de5fa47e2c8ef57066b514b3 +size 40119 diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index f8deed82..b752c8e2 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -84,7 +84,6 @@ void AEndlessVendettaCharacter::WeaponPickUpSystem() if (!GetWorld()->LineTraceSingleByChannel(OutHit, LT_Start, LT_End, ECC_Camera, QueryParams)) return; AActor* HitActor = OutHit.GetActor(); - UE_LOG(LogTemp, Warning, TEXT("Hit actor: %s"), *HitActor->GetName()); IInteractionInterface* InteractableActor = Cast(HitActor); if (InteractableActor) InteractableActor->InteractPrompt(); } @@ -144,7 +143,11 @@ void AEndlessVendettaCharacter::Interact() AActor* HitActor = OutHit.GetActor(); UE_LOG(LogTemp, Warning, TEXT("Hit actor: %s"), *HitActor->GetName()); IInteractionInterface* InteractableActor = Cast(HitActor); - if (InteractableActor) InteractableActor->Interact(); + if (InteractableActor) + { + InteractableActor->Interact(); + WeaponSwitcher(OutHit); + } } @@ -271,6 +274,13 @@ void AEndlessVendettaCharacter::EquipSecondary() SecondaryWeapon = Cast(SecondaryWeaponActor); } +void AEndlessVendettaCharacter::WeaponSwitcher(FHitResult Outhit) +{ + if (IsValid(PrimaryWeapon)) PrimaryWeapon->Destroy(); + PrimaryWeapon = Cast(Outhit.GetActor()); + Outhit.GetActor()->Destroy(); +} + //Calls the fire function in the baseWeaponClass void AEndlessVendettaCharacter::FireCaller() { diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index fd54fc40..9c3468d9 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -148,9 +148,6 @@ protected: void ToggleRecon(); void ToggleCombat(); - void EquipPrimary(); - void EquipSecondary(); - UPROPERTY(EditDefaultsOnly, Category = "Interaction") float InteractionRange = 250; void Interact(); @@ -175,4 +172,9 @@ public: virtual float TakeDamage(float DamageAmount, FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) override; void WeaponPickUpSystem(); + + void EquipPrimary(); + void EquipSecondary(); + + void WeaponSwitcher(FHitResult Outhit); }; diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index ba95f360..503fd58b 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -232,15 +232,29 @@ void ABaseWeaponClass::WeaponReload() void ABaseWeaponClass::Interact() { + if(!IsValid(this)) return; GLog->Log("Interact Called"); } void ABaseWeaponClass::InteractPrompt() { WeaponStatsPopUp(); - UE_LOG(LogTemp, Warning, TEXT("InteractPrompt setup")) } +// void ABaseWeaponClass::GetOutHit(FHitResult OutHit) +// { +// if(IsValid(this)) +// { +// endlessVendettaChar->PrimaryWeapon->Destroy(); +// } +// if (OutHit.GetActor()->ActorHasTag(FName("AssaultRifle"))) +// { +// endlessVendettaChar->EquipPrimary(); +// } +// //HitActor = Cast(endlessVendettaChar->PrimaryWeaponClass); +// //endlessVendettaChar->PrimaryWeapon = Cast(HitActor); +// } + diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index f09b4492..caed9bb1 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -168,6 +168,8 @@ public: UFUNCTION(BlueprintImplementableEvent) void WeaponStatsPopUp(); + //void GetOutHit(FHitResult OutHit); + protected: UArrowComponent* GunStartArrow; bool bStopShooting = false; From a45b7488ba45dedb8449ed4e3e671d9f3db811aa Mon Sep 17 00:00:00 2001 From: MH261677 Date: Thu, 19 Oct 2023 17:38:18 +0100 Subject: [PATCH 5/5] Working weapon switching --- .../Blueprints/BP_FirstPersonCharacter.uasset | 4 +-- .../BaseWeapons/BP_BaseWeapon.uasset | 4 +-- .../Pistols/BP_BasePistolWeapon.uasset | 4 +-- .../BaseWeapons/WBP_AmmoCount.uasset | 4 +-- .../LevelPrototyping/Scenes/TutorialHit.umap | 4 +-- .../EndlessVendettaCharacter.cpp | 27 ++++++++++++------- .../EndlessVendettaCharacter.h | 2 +- .../WeaponSystem/BaseWeaponClass.cpp | 5 ++-- 8 files changed, 31 insertions(+), 23 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset index ef5cc606..1378ceef 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:dfeced37123c7e12907f8c5c3882aa970013d96167d07df1d71a464e2f91fd0d -size 42429 +oid sha256:2ffa922873f3999c8ef2d7ff492cedee047c6e06cc8b56c6ee9aaeab08d8fbad +size 42684 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset index cac2db11..af5ea1b4 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:c5ee53e7d84e4e0a3a6941011ad8a3c2718afe0bad7e95cf23f7cc1063476f53 -size 124677 +oid sha256:5e1e829f4770985384af4baf7f94ed5089f11e12ec69b2ec09fb5f193a1ab960 +size 124465 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset index 206389d1..f54627fd 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:2a94e9d1b1b74a330a53970bbb11f1357c02996a00a31d4bdafc5c9313759fb2 -size 49286 +oid sha256:5aebaef6e44e3ebd6edf9b98ada3bdc65e43a0e7372ac8545eee7d3f5f535e21 +size 125647 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset index b4d8011b..ff0850c9 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:dc183a9d9781ca6800fa345b6428f7bf41953180f79e74b96c894a33b9d789e9 -size 64773 +oid sha256:4aef926e64cc0bd15cd6df6c9683311954a37d3a4576cd79a564efe16ef7920d +size 64353 diff --git a/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap b/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap index 50e7b151..3ff2d458 100644 --- a/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap +++ b/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:57903d1174f13c4e930113e1f5aba86389d1568b4e42193474fec9da7cfd55aa -size 301943 +oid sha256:a81357c429cab843eb8ff42acc335aa7e0ee24d4d441286eb3d80b04a70b1231 +size 307063 diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index b752c8e2..e3285c39 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -138,16 +138,19 @@ void AEndlessVendettaCharacter::Interact() QueryParams.AddIgnoredActor(this); FVector LT_Start = FirstPersonCameraComponent->GetComponentLocation(); FVector LT_End = LT_Start + (FirstPersonCameraComponent->GetForwardVector() * InteractionRange); + if(IsValid(PrimaryWeapon)) + { + QueryParams.AddIgnoredActor(PrimaryWeapon); + } + if(IsValid(SecondaryWeapon)) + { + QueryParams.AddIgnoredActor(SecondaryWeapon); + } if (!GetWorld()->LineTraceSingleByChannel(OutHit, LT_Start, LT_End, ECC_Camera, QueryParams)) return; - AActor* HitActor = OutHit.GetActor(); UE_LOG(LogTemp, Warning, TEXT("Hit actor: %s"), *HitActor->GetName()); IInteractionInterface* InteractableActor = Cast(HitActor); - if (InteractableActor) - { - InteractableActor->Interact(); - WeaponSwitcher(OutHit); - } + if (InteractableActor) InteractableActor->Interact(); } @@ -274,11 +277,15 @@ void AEndlessVendettaCharacter::EquipSecondary() SecondaryWeapon = Cast(SecondaryWeaponActor); } -void AEndlessVendettaCharacter::WeaponSwitcher(FHitResult Outhit) +void AEndlessVendettaCharacter::WeaponSwitcher(AActor* Outhit) { - if (IsValid(PrimaryWeapon)) PrimaryWeapon->Destroy(); - PrimaryWeapon = Cast(Outhit.GetActor()); - Outhit.GetActor()->Destroy(); + if (IsValid(PrimaryWeapon)) + { + EquipPrimary(); + } + PrimaryWeaponClass = Outhit->GetClass(); + Outhit->Destroy(); + EquipPrimary(); } //Calls the fire function in the baseWeaponClass diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index 9c3468d9..a3d099ce 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -176,5 +176,5 @@ public: void EquipPrimary(); void EquipSecondary(); - void WeaponSwitcher(FHitResult Outhit); + void WeaponSwitcher(AActor* Outhit); }; diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index 503fd58b..74dac6e0 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -234,6 +234,7 @@ void ABaseWeaponClass::Interact() { if(!IsValid(this)) return; GLog->Log("Interact Called"); + endlessVendettaChar->WeaponSwitcher(this); } void ABaseWeaponClass::InteractPrompt() @@ -251,8 +252,8 @@ void ABaseWeaponClass::InteractPrompt() // { // endlessVendettaChar->EquipPrimary(); // } -// //HitActor = Cast(endlessVendettaChar->PrimaryWeaponClass); -// //endlessVendettaChar->PrimaryWeapon = Cast(HitActor); +// AActor* HitActor = Cast(endlessVendettaChar->PrimaryWeaponClass); +// endlessVendettaChar->PrimaryWeapon = Cast(HitActor); // }