diff --git a/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/workspace.xml b/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/workspace.xml index c9b7b27e..5beca5d8 100644 --- a/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/workspace.xml +++ b/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/workspace.xml @@ -9,31 +9,19 @@ - - - - - - - - - - - - + - + - - + diff --git a/EndlessVendetta/Content/BountySystem/ApartmentBounty/SideBounties/SecuritySpecialists/CP_GoToSecurityOffice.uasset b/EndlessVendetta/Content/BountySystem/ApartmentBounty/SideBounties/SecuritySpecialists/CP_GoToSecurityOffice.uasset index cdb1bb70..2208a9df 100644 --- a/EndlessVendetta/Content/BountySystem/ApartmentBounty/SideBounties/SecuritySpecialists/CP_GoToSecurityOffice.uasset +++ b/EndlessVendetta/Content/BountySystem/ApartmentBounty/SideBounties/SecuritySpecialists/CP_GoToSecurityOffice.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5e4033216548f6200b2265883ed20f8c859b0ad6b628540b7cc58c8bdb2da091 -size 81558 +oid sha256:071d80db1611f406955a931fe236052cfc769eeb14eee2d02206536f4fc40d8c +size 80228 diff --git a/EndlessVendetta/Content/Levels/MainMenuLevel.umap b/EndlessVendetta/Content/Levels/MainMenuLevel.umap index 594eec13..88c665cd 100644 --- a/EndlessVendetta/Content/Levels/MainMenuLevel.umap +++ b/EndlessVendetta/Content/Levels/MainMenuLevel.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ecab0f671c308960a2881e050ca07a1300f04e97819e1f47203ca1ca652f4ccf +oid sha256:5015076ef46a0b0a06bef84fadb67659cdaad3127c3834256c74d4464b8646f6 size 308758 diff --git a/EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/SideBounties/WBP_SideBountyInfoBox.uasset b/EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/SideBounties/WBP_SideBountyInfoBox.uasset new file mode 100644 index 00000000..6aa5690d --- /dev/null +++ b/EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/SideBounties/WBP_SideBountyInfoBox.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba4468af77fcd913248cbbd33159c6dddb4bbb547ec17d373297b823f66d2595 +size 91777 diff --git a/EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/WBP_BountiesTab.uasset b/EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/WBP_BountiesTab.uasset index e0b0170f..76459198 100644 --- a/EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/WBP_BountiesTab.uasset +++ b/EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/WBP_BountiesTab.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:73c562cd7614a47d3e9c8504b3f67104b4ce07cbf83c4f6ea95a72ac600b3664 -size 132511 +oid sha256:a75ed9e73aad0c4027780bef39dcfbe27fb913aa91e4601e432bb0ec7db5a469 +size 252349 diff --git a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset index c5c3b84e..a660aa52 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:4a60a29ad596546d481e43dfb8698842a78cc07f4a4b1000fa397cfba4e72331 -size 158206 +oid sha256:08b978a616cb421c699b3c0aaf8e8e0a4d12614c8c99eb79c6debb1a030313ee +size 43745 diff --git a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset index 80f4790a..0f990580 100644 --- a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset +++ b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6764172277cd1d5812197441d69c3897c757be02854b03b5e4a0ddf6cfa563fb -size 66790690 +oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d +size 72364642 diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp index 977f9ed0..576cab76 100644 --- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp @@ -16,7 +16,6 @@ void ABountyClass::ActivateFirstCheckpoint() if (BountyCheckpoints.IsEmpty() || BountyCheckpoints[0] == nullptr) return; BountyCheckpoints[0]->Active = true; - BountyCheckpoints[0]->SpawnWaypoint(BountyTitle); // BountyCheckpoints[0]->CheckpointActivated(); BountyCheckpoints[0]->CompletedCheckpoint.AddDynamic(this, &ABountyClass::IncrementBountyCheckpoint); } diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h index d0039300..b0d84bf5 100644 --- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h @@ -46,7 +46,7 @@ public: virtual void SpawnCheckpoints(); // Activate the First Checkpoint in Bounty Checkpoints and Listen for its Completion - void ActivateFirstCheckpoint(); + virtual void ActivateFirstCheckpoint(); // De-Activate the First Checkpoint in Bounty Checkpoints void DeActivateFirstCheckpoint(); diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/MainBountyClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/MainBountyClass.cpp index 72ca600b..aff7de9b 100644 --- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/MainBountyClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/MainBountyClass.cpp @@ -12,6 +12,13 @@ void AMainBountyClass::IncrementBountyCheckpoint() // Cast(GetWorld()->GetFirstPlayerController()->GetPawn())->CheckpointCompletedUI("", false); } +void AMainBountyClass::ActivateFirstCheckpoint() +{ + Super::ActivateFirstCheckpoint(); + if (BountyCheckpoints.IsEmpty() || BountyCheckpoints[0] == nullptr) return; + BountyCheckpoints[0]->SpawnWaypoint(MainBountyStruct.TargetName); +} + void AMainBountyClass::SpawnOpenWorldCheckpoint() { if (!IsValid(OpenWorldCheckpointClass)) return; @@ -25,13 +32,13 @@ void AMainBountyClass::SpawnOpenWorldCheckpoint() OpenWorldcheckpoint->SpawnWaypoint(BountyTitle); } - void AMainBountyClass::SpawnCheckpoints() - { - Super::SpawnCheckpoints(); - ActivateFirstCheckpoint(); - } +void AMainBountyClass::SpawnCheckpoints() +{ + Super::SpawnCheckpoints(); + ActivateFirstCheckpoint(); +} - TArray AMainBountyClass::SpawnAndReturnSideBounties() +TArray AMainBountyClass::SpawnAndReturnSideBounties() { TArray SpawnedSideBounties; for (auto SideBountyClass : SideBountiesToSpawn) @@ -47,7 +54,7 @@ void AMainBountyClass::SpawnOpenWorldCheckpoint() } - void AMainBountyClass::SpawnAmmoDrops() +void AMainBountyClass::SpawnAmmoDrops() { UE_LOG(LogTemp, Display, TEXT("Bought Ammo Drops, but its not implemented yet")); // FActorSpawnParameters SpawnParameters; diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/MainBountyClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/MainBountyClass.h index f3ddc5b1..e41b6fab 100644 --- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/MainBountyClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/MainBountyClass.h @@ -71,8 +71,8 @@ private: void IncrementBountyCheckpoint() override; protected: - + public: // Spawns the Single Checkpoint in the Open World for this Main Bounty void SpawnOpenWorldCheckpoint(); @@ -88,7 +88,8 @@ public: return PlayerSpawnTransform; } - + // Overrides to Set Title of Waypoint + void ActivateFirstCheckpoint() override; diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp index 7ad9409d..bca92d12 100644 --- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp @@ -4,6 +4,19 @@ #include "SideBountyClass.h" +void ASideBountyClass::BeginPlay() +{ + SideBountyStruct.SideBountyUID = GetUniqueID(); + Super::BeginPlay(); +} + +void ASideBountyClass::ActivateFirstCheckpoint() +{ + Super::ActivateFirstCheckpoint(); + if (BountyCheckpoints.IsEmpty() || BountyCheckpoints[0] == nullptr) return; + BountyCheckpoints[0]->SpawnWaypoint(SideBountyStruct.BountyTitle); +} + void ASideBountyClass::IncrementBountyCheckpoint() { Super::IncrementBountyCheckpoint(); diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h index 2f4118e1..24187c7d 100644 --- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h @@ -19,6 +19,9 @@ struct FSideBountyStruct UPROPERTY(BlueprintReadOnly) bool Tracked = true; + + UPROPERTY(BlueprintReadOnly) + int SideBountyUID = 0; }; DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FCompletedSideBounty, int, FavoursEarned); @@ -46,12 +49,15 @@ public: // ------------------- METHODS --------------------------------- private: + virtual void BeginPlay() override; protected: // Overrides to check if Side Bounty has been Completed virtual void IncrementBountyCheckpoint() override; -public: +public: + // Overrides to Set Title of Waypoint + void ActivateFirstCheckpoint() override; // ------------------- LEGACY --------------------------------- diff --git a/EndlessVendetta/Source/EndlessVendetta/Characters/BountyHunterCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/Characters/BountyHunterCharacter.cpp index 64b93688..fcb5d58a 100644 --- a/EndlessVendetta/Source/EndlessVendetta/Characters/BountyHunterCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/Characters/BountyHunterCharacter.cpp @@ -124,6 +124,8 @@ void ABountyHunterCharacter::CreatePauseMenuTabs() { BountiesTab = CreateWidget(GetWorld(), UGameplayStatics::GetCurrentLevelName(GetWorld()) == OpenWorldLevelName ? BountyTabWidgetClass : BountyInProgressTabWidgetClass); BountiesTab->ReturnToOpenWorldEarlyDelegate.AddDynamic(this, &ABountyHunterCharacter::ReturnToOpenWorldEarly); + BountiesTab->TrackBountyDelegate.AddDynamic(this, &ABountyHunterCharacter::TrackMainBounty); + BountiesTab->TrackSideBountyDelegate.AddDynamic(this, &ABountyHunterCharacter::TrackSideBounty); } UpdateBountyTabInfo(); FavoursTab = CreateWidget(GetWorld(), FavoursTabWidgetClass); diff --git a/EndlessVendetta/Source/EndlessVendetta/Characters/BountyHunterCharacter.h b/EndlessVendetta/Source/EndlessVendetta/Characters/BountyHunterCharacter.h index 0ec2bc2a..1784fed4 100644 --- a/EndlessVendetta/Source/EndlessVendetta/Characters/BountyHunterCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/Characters/BountyHunterCharacter.h @@ -190,4 +190,34 @@ private: UFUNCTION() void ReturnToOpenWorldEarly(); + + void DeActivateAllBounties() + { + CurrentMainBounty->DeActivateFirstCheckpoint(); + for (auto SideBounty : CurrentSideBounties) + { + SideBounty->DeActivateFirstCheckpoint(); + } + } + + UFUNCTION() + void TrackMainBounty() + { + DeActivateAllBounties(); + CurrentMainBounty->ActivateFirstCheckpoint(); + } + + UFUNCTION() + void TrackSideBounty(int SideBountyUID) + { + DeActivateAllBounties(); + for (auto SideBounty : CurrentSideBounties) + { + if (SideBounty->GetUniqueID() == SideBountyUID) + { + SideBounty->ActivateFirstCheckpoint(); + break; + } + } + } }; diff --git a/EndlessVendetta/Source/EndlessVendetta/PauseMenu/BountiesTab.h b/EndlessVendetta/Source/EndlessVendetta/PauseMenu/BountiesTab.h index 56f3d49c..5b0ef8c2 100644 --- a/EndlessVendetta/Source/EndlessVendetta/PauseMenu/BountiesTab.h +++ b/EndlessVendetta/Source/EndlessVendetta/PauseMenu/BountiesTab.h @@ -8,8 +8,9 @@ #include "EndlessVendetta/BountySystem/BountyClass.h" #include "BountiesTab.generated.h" -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FTrackBounty, ABountyClass*, BountyToTrack); +DECLARE_DYNAMIC_MULTICAST_DELEGATE(FTrackBounty); DECLARE_DYNAMIC_MULTICAST_DELEGATE(FReturnToOpenWorldEarly); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FTrackSideBounty, int, BountyID); UCLASS() class ENDLESSVENDETTA_API UBountiesTab : public UTabWidget @@ -21,9 +22,12 @@ class ENDLESSVENDETTA_API UBountiesTab : public UTabWidget protected: public: - UPROPERTY(BlueprintAssignable) + UPROPERTY(BlueprintCallable) FTrackBounty TrackBountyDelegate; + UPROPERTY(BlueprintCallable) + FTrackSideBounty TrackSideBountyDelegate; + UPROPERTY(BlueprintCallable) FReturnToOpenWorldEarly ReturnToOpenWorldEarlyDelegate;