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 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
@@ -155,7 +143,9 @@
-
+
+
+
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;