Reworked Open World Checkpoint System to Allow Multiple Checkpoints
This commit is contained in:
parent
530c9580ff
commit
fbff6fdd62
BIN
EndlessVendetta/Content/BountySystem/ApartmentBounty/Checkpoints/CP_ElimTImothyHuntsmer.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/BountySystem/ApartmentBounty/Checkpoints/CP_ElimTImothyHuntsmer.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
EndlessVendetta/Content/BountySystem/ApartmentBounty/Checkpoints/LevelSpecificCheckpoints/CP_ElimTImothyHuntsmer.uasset
(Stored with Git LFS)
Normal file
BIN
EndlessVendetta/Content/BountySystem/ApartmentBounty/Checkpoints/LevelSpecificCheckpoints/CP_ElimTImothyHuntsmer.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
EndlessVendetta/Content/BountySystem/ApartmentBounty/Checkpoints/OWCP_Apartment.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/BountySystem/ApartmentBounty/Checkpoints/OWCP_Apartment.uasset
(Stored with Git LFS)
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d96dde71ce13d7ed2661e3fe8d0531e67453e81644492f026f7577c12af0acf9
|
||||
size 35286
|
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a6edb31abcafeab6442cb285181905031da2635eb7c6444b529d9c8636ee9496
|
||||
size 29747
|
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7367fb8f5ccaf3e4ae6e34133debe0d5efbaedf33024d14cf37b1f4f5ff7fb1c
|
||||
size 39283
|
BIN
EndlessVendetta/Content/BountySystem/ApartmentBounty/MB_Apartment.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/BountySystem/ApartmentBounty/MB_Apartment.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
EndlessVendetta/Content/BountySystem/ControlsTutorial/Bounty/MB_Training.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/BountySystem/ControlsTutorial/Bounty/MB_Training.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
EndlessVendetta/Content/BountySystem/ControlsTutorial/Bounty/OWCP_Training.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/BountySystem/ControlsTutorial/Bounty/OWCP_Training.uasset
(Stored with Git LFS)
Binary file not shown.
@ -33,6 +33,7 @@ protected:
|
||||
public:
|
||||
FCompletedACheckpoint CompletedACheckpoint;
|
||||
|
||||
// Used to update Displayed Tip
|
||||
FCheckpointActivated CheckpointActivated;
|
||||
|
||||
// Gets the Reward Money for Completing this Bounty, used by Players Character
|
||||
|
@ -0,0 +1,5 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "OpenWorldCheckpoint.h"
|
||||
|
@ -0,0 +1,20 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "EndlessVendetta/BountySystem/CheckpointClass.h"
|
||||
#include "OpenWorldCheckpoint.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class ENDLESSVENDETTA_API AOpenWorldCheckpoint : public ACheckpointClass
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
protected:
|
||||
UPROPERTY(EditDefaultsOnly, Category = "Checkpoint")
|
||||
FTransform RespawnTransform;
|
||||
};
|
@ -0,0 +1,9 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "OpenWorldInteractableCheckpoint.h"
|
||||
|
||||
void AOpenWorldInteractableCheckpoint::Interact()
|
||||
{
|
||||
PlayerInteracted();
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "OpenWorldCheckpoint.h"
|
||||
#include "OpenWorldInteractableCheckpoint.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class ENDLESSVENDETTA_API AOpenWorldInteractableCheckpoint : public AOpenWorldCheckpoint, public IInteractionInterface
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
void Interact() override;
|
||||
|
||||
protected:
|
||||
UFUNCTION(BlueprintImplementableEvent)
|
||||
void PlayerInteracted();
|
||||
|
||||
|
||||
};
|
@ -15,7 +15,7 @@ void AMainBountyClass::IncrementBountyCheckpoint()
|
||||
void AMainBountyClass::ActivateFirstCheckpoint()
|
||||
{
|
||||
Super::ActivateFirstCheckpoint();
|
||||
if (IsValid(OpenWorldcheckpoint)) OpenWorldcheckpoint->SpawnWaypoint(MainBountyStruct.TargetName);
|
||||
//if (IsValid(OpenWorldcheckpoint)) OpenWorldcheckpoint->SpawnWaypoint(MainBountyStruct.TargetName);
|
||||
if (BountyCheckpoints.IsEmpty() || BountyCheckpoints[0] == nullptr) return;
|
||||
BountyCheckpoints[0]->SpawnWaypoint(MainBountyStruct.TargetName);
|
||||
}
|
||||
@ -23,19 +23,22 @@ void AMainBountyClass::ActivateFirstCheckpoint()
|
||||
void AMainBountyClass::DeActivateFirstCheckpoint()
|
||||
{
|
||||
Super::DeActivateFirstCheckpoint();
|
||||
if (IsValid(OpenWorldcheckpoint)) OpenWorldcheckpoint->DestroyWaypoint();
|
||||
//if (IsValid(OpenWorldcheckpoint)) OpenWorldcheckpoint->DestroyWaypoint();
|
||||
}
|
||||
|
||||
void AMainBountyClass::SpawnOpenWorldCheckpoint()
|
||||
void AMainBountyClass::SpawnOpenWorldCheckpoint()
|
||||
{
|
||||
if (!IsValid(OpenWorldCheckpointClass)) return;
|
||||
if (OpenWorldCheckpointClasses.IsEmpty()) return;
|
||||
|
||||
FActorSpawnParameters SpawnParameters;
|
||||
SpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
|
||||
FVector Loc = OpenWorldCheckpointClass.GetDefaultObject()->GetCheckpointSpawnTransform().GetLocation();
|
||||
FRotator Rot = OpenWorldCheckpointClass.GetDefaultObject()->GetCheckpointSpawnTransform().GetRotation().Rotator();
|
||||
|
||||
OpenWorldcheckpoint = GetWorld()->SpawnActor<ACheckpointClass>(OpenWorldCheckpointClass, Loc, Rot, SpawnParameters);
|
||||
for (TSubclassOf<ACheckpointClass> OpenWorldCheckpointClass : OpenWorldCheckpointClasses)
|
||||
{
|
||||
if (OpenWorldCheckpointClass == nullptr) continue;
|
||||
FActorSpawnParameters SpawnParameters;
|
||||
SpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
|
||||
FVector Loc = OpenWorldCheckpointClass.GetDefaultObject()->GetCheckpointSpawnTransform().GetLocation();
|
||||
FRotator Rot = OpenWorldCheckpointClass.GetDefaultObject()->GetCheckpointSpawnTransform().GetRotation().Rotator();
|
||||
BountyCheckpoints.Add(GetWorld()->SpawnActor<ACheckpointClass>(OpenWorldCheckpointClass, Loc, Rot, SpawnParameters));
|
||||
}
|
||||
ActivateFirstCheckpoint();
|
||||
}
|
||||
|
||||
|
@ -42,10 +42,10 @@ class ENDLESSVENDETTA_API AMainBountyClass : public ABountyClass
|
||||
// ------------------- ATTRIBUTES ------------------------------
|
||||
// Used to Spawn Open World Checkpoint for this Main Bounty
|
||||
UPROPERTY(EditDefaultsOnly, Category = "Bounty")
|
||||
TSubclassOf<ACheckpointClass> OpenWorldCheckpointClass;
|
||||
TArray<TSubclassOf<ACheckpointClass>> OpenWorldCheckpointClasses;
|
||||
|
||||
// Used to Store Ref for Bounty Tracking Functionality
|
||||
ACheckpointClass* OpenWorldcheckpoint;
|
||||
//TArray<ACheckpointClass*> OpenWorldcheckpoints;
|
||||
|
||||
// Used by Players Character to Determine where to Spawn in the Open World after Completing Main Bounty
|
||||
UPROPERTY(EditDefaultsOnly, Category = "Bounty")
|
||||
@ -95,10 +95,10 @@ public:
|
||||
void DeActivateFirstCheckpoint() override;
|
||||
|
||||
// Returns open world checkpoints tip
|
||||
FString GetOpenWorldCheckpointTip()
|
||||
{
|
||||
return OpenWorldcheckpoint->GetCheckpointTip();
|
||||
}
|
||||
// FString GetOpenWorldCheckpointTip()
|
||||
// {
|
||||
// return OpenWorldcheckpoint->GetCheckpointTip();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
@ -60,7 +60,6 @@ void ABountyHunterCharacter::CompleteCurrentMainBounty(UEVGameInstance* GI)
|
||||
EarnMoney(MoneyEarned);
|
||||
BountyCompletedDisplay(MoneyEarned, 0);
|
||||
if (IsValid(PauseMenu)) PauseMenu->UpdatePlayerStatistics(Money, Favours);
|
||||
UE_LOG(LogTemp, Warning, TEXT("Would be collecting reward for completing bounty %d"), CurrentMainBountyIndex);
|
||||
|
||||
// Saves players spawn now as players location is set after spawn main bounty finishes running in begin play
|
||||
GI->MainSaveGameInstanceRef->PlayerOpenWorldSpawnTransformSave = MainBountyClasses[CurrentMainBountyIndex]->GetDefaultObject<AMainBountyClass>()->GetPlayerSpawnTransform();
|
||||
|
@ -285,7 +285,7 @@ private:
|
||||
{
|
||||
DeActivateAllBounties();
|
||||
CurrentMainBounty->ActivateFirstCheckpoint();
|
||||
DisplayCheckpointTip(CurrentMainBounty->GetOpenWorldCheckpointTip());
|
||||
//DisplayCheckpointTip(CurrentMainBounty->GetOpenWorldCheckpointTip());
|
||||
}
|
||||
|
||||
UFUNCTION()
|
||||
|
Loading…
Reference in New Issue
Block a user