Implemented Side Bounties Appearing in Pause Menu with Tracking Functionality
This commit is contained in:
parent
b7f376e9df
commit
1849db2219
@ -9,31 +9,19 @@
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="dfa3053d-1d51-4dad-9270-4c17e086f627" name="Changes" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.EndlessVendetta/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.EndlessVendetta/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/BP_Elevator.uasset" beforeDir="false" afterPath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/BP_Elevator.uasset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/CP_ElimTImothyHuntsmer.uasset" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/CinematicFrmaes/TimothyEliminatedSequence1.png" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/CinematicFrmaes/TimothyEliminatedSequence1.uasset" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/CinematicFrmaes/TimothyEliminatedSequence2.png" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/CinematicFrmaes/TimothyEliminatedSequence2.uasset" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/CinematicFrmaes/TimothyEliminatedSequence3.png" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/CinematicFrmaes/TimothyEliminatedSequence3.uasset" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/MB_Apartment.uasset" beforeDir="false" afterPath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/MB_Apartment.uasset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/OWCP_Apartment.uasset" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/TargetEliminatedSequence.uasset" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/WBP_TimothyEliminated.uasset" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/SideBounties/SecuritySpecialists/CP_GoToSecurityOffice.uasset" beforeDir="false" afterPath="$PROJECT_DIR$/Content/BountySystem/ApartmentBounty/SideBounties/SecuritySpecialists/CP_GoToSecurityOffice.uasset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/Levels/MainMenuLevel.umap" beforeDir="false" afterPath="$PROJECT_DIR$/Content/Levels/MainMenuLevel.umap" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/Levels/TempOpenWorld.umap" beforeDir="false" afterPath="$PROJECT_DIR$/Content/Levels/TempOpenWorld.umap" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/PauseMenu/Tabs/BountyTabs/WBP_BountiesTab.uasset" beforeDir="false" afterPath="$PROJECT_DIR$/Content/PauseMenu/Tabs/BountyTabs/WBP_BountiesTab.uasset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset" beforeDir="false" afterPath="$PROJECT_DIR$/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/BountyClass.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/BountyClass.cpp" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/BountyClass.h" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/BountyClass.h" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/CheckpointClass.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/CheckpointClass.cpp" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/CheckpointClass.h" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/CheckpointClass.h" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/MainBountyClass.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/MainBountyClass.cpp" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/MainBountyClass.h" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/MainBountyClass.h" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/SideBountyClass.h" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/BountySystem/SideBountyClass.h" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/Characters/BountyHunterCharacter.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/Characters/BountyHunterCharacter.cpp" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/Characters/BountyHunterCharacter.h" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/Characters/BountyHunterCharacter.h" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Source/EndlessVendetta/PauseMenu/BountiesTab.h" beforeDir="false" afterPath="$PROJECT_DIR$/Source/EndlessVendetta/PauseMenu/BountiesTab.h" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -155,7 +143,9 @@
|
||||
<workItem from="1707304148719" duration="10277000" />
|
||||
<workItem from="1707409116575" duration="8922000" />
|
||||
<workItem from="1707574922675" duration="10730000" />
|
||||
<workItem from="1707658695399" duration="837000" />
|
||||
<workItem from="1707658695399" duration="2851000" />
|
||||
<workItem from="1707757227103" duration="2304000" />
|
||||
<workItem from="1707760017966" duration="7002000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5e4033216548f6200b2265883ed20f8c859b0ad6b628540b7cc58c8bdb2da091
|
||||
size 81558
|
||||
oid sha256:071d80db1611f406955a931fe236052cfc769eeb14eee2d02206536f4fc40d8c
|
||||
size 80228
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ecab0f671c308960a2881e050ca07a1300f04e97819e1f47203ca1ca652f4ccf
|
||||
oid sha256:5015076ef46a0b0a06bef84fadb67659cdaad3127c3834256c74d4464b8646f6
|
||||
size 308758
|
||||
|
BIN
EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/SideBounties/WBP_SideBountyInfoBox.uasset
(Stored with Git LFS)
Normal file
BIN
EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/SideBounties/WBP_SideBountyInfoBox.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/WBP_BountiesTab.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/PauseMenu/Tabs/BountyTabs/WBP_BountiesTab.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
(Stored with Git LFS)
Binary file not shown.
@ -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);
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -12,6 +12,13 @@ void AMainBountyClass::IncrementBountyCheckpoint()
|
||||
// Cast<AEndlessVendettaCharacter>(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<ASideBountyClass*> AMainBountyClass::SpawnAndReturnSideBounties()
|
||||
TArray<ASideBountyClass*> AMainBountyClass::SpawnAndReturnSideBounties()
|
||||
{
|
||||
TArray<ASideBountyClass*> 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;
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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 ---------------------------------
|
||||
|
@ -124,6 +124,8 @@ void ABountyHunterCharacter::CreatePauseMenuTabs()
|
||||
{
|
||||
BountiesTab = CreateWidget<UBountiesTab>(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<UTabWidget>(GetWorld(), FavoursTabWidgetClass);
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user