143 lines
4.6 KiB
C++
143 lines
4.6 KiB
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/Object.h"
|
|
#include "ProjectT/Data/Gen/GenerateStructItem.h"
|
|
#include "ProjectT/Data/Gen/GenerateEnumObjectiveTypes.h"
|
|
#include "ProjectT/System/Core/Components/PlayerInventoryComponent.h"
|
|
#include "ProjectT/System/Core/Managers/CoreWidgetManager.h"
|
|
#include "ProjectT/System/Core/Managers/QuestManager.h"
|
|
#include "ProjectT/System/SinglePlay/Widget/SPCommonHUD.h"
|
|
#include "SPWidgetManager.generated.h"
|
|
|
|
DECLARE_DYNAMIC_DELEGATE(FOnStartGame);
|
|
DECLARE_DYNAMIC_DELEGATE(FOnPlayerDead);
|
|
DECLARE_DYNAMIC_DELEGATE(FOnGameDefeat);
|
|
DECLARE_DYNAMIC_DELEGATE(FOnGameVictory);
|
|
|
|
DECLARE_DYNAMIC_DELEGATE_OneParam(FOnInteractionIndicator, const bool, bEnabled);
|
|
DECLARE_DYNAMIC_DELEGATE_OneParam(FOnUpdatePlayerHP, const float, HPRatio);
|
|
DECLARE_DYNAMIC_DELEGATE_OneParam(FOnUpdatePlayerStamina, const float, StaminaRatio);
|
|
DECLARE_DYNAMIC_DELEGATE_OneParam(FOnUpdateTime, const int32, RemainTime);
|
|
|
|
DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnUpdateIndicator, const FString&, InteractionText, const bool, bVisibility);
|
|
DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnUpdateSlotFocus, const int&, SlotIndex, const bool, bFocused);
|
|
|
|
DECLARE_DYNAMIC_DELEGATE_ThreeParams(FOnQuestUpdate, const EObjectiveTypes, ObjectiveTypes, const FObjectiveSubTypeContext, ObjectiveSubTypeContext, const bool, IsQuestCompleted);
|
|
DECLARE_DYNAMIC_DELEGATE_ThreeParams(FOnSkillUpdate, TSubclassOf<class ACoreSkill>, SkillClass, const float, RemainTimeRatio, const bool, bCoolDownComplete);
|
|
|
|
DECLARE_DYNAMIC_DELEGATE_FourParams(FOnUpdateConsumableSlot, const FName&, RowName, const FItem&, ItemData, const int32, SlotIndex, const int32, ResultCount);
|
|
DECLARE_DYNAMIC_DELEGATE_FourParams(FOnUpdateGimmickSlot, const FName&, RowName, const FPlayerGimmickSlotData&, ItemData, const int32, SlotIndex, const int32, ResultCount);
|
|
|
|
DECLARE_DYNAMIC_DELEGATE_OneParam(FOnQuestInitialized, const TArray<struct FObjective>&, QuestList);
|
|
DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnSkillInitialized, TSubclassOf<class ACoreSkill>, SkillClass, const FString&, IconPath);
|
|
|
|
UCLASS()
|
|
class PROJECTT_API USPWidgetManager : public UCoreWidgetManager
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
USPWidgetManager();
|
|
|
|
virtual void InitializeManager(const UObject* WorldObjectContext) override;
|
|
virtual void ReleaseManager() override;
|
|
void ExecuteOnGameDefeat();
|
|
void ExecuteOnGameVictory();
|
|
|
|
UFUNCTION()
|
|
void ExecuteStartGame();
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnQuestInitialized(const TArray<struct FObjective>& QuestList);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnQuestUpdate(const EObjectiveTypes ObjectiveTypes, const FObjectiveSubTypeContext ObjectiveSubTypeContext, const bool IsQuestCompleted);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnPlayerDead();
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnInteractionIndicator(const bool bEnabled);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnUpdatePlayerHP(const float HPRatio);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnUpdatePlayerStamina(const float StaminaRatio);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnUpdateTime(const int32 RemainTime);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnUpdateIndicator(const FString& InteractionText, const bool bVisibility);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnUpdateSlotFocus(const int& SlotIndex, const bool bFocused);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnSkillInitialized(TSubclassOf<class ACoreSkill> SkillClass, const FString& IconPath);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnSkillUpdate(TSubclassOf<class ACoreSkill> SkillClass, const float RemainTimeRatio, const bool bCoolDownComplete);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnUpdateConsumableSlot(const FName& RowName, const FItem& ItemData, const int32 SlotIndex, const int32 ResultCount);
|
|
|
|
UFUNCTION()
|
|
void ExecuteOnUpdateGimmickSlot(const FName& RowName, const FPlayerGimmickSlotData& ItemData, const int32 SlotIndex, const int32 ResultCount);
|
|
|
|
private:
|
|
friend USPCommonHUD;
|
|
|
|
UPROPERTY()
|
|
FOnPlayerDead OnPlayerDead;
|
|
|
|
UPROPERTY()
|
|
FOnGameDefeat OnGameDefeat;
|
|
|
|
UPROPERTY()
|
|
FOnGameVictory OnGameVictory;
|
|
|
|
UPROPERTY()
|
|
FOnInteractionIndicator OnInteractionIndicator;
|
|
|
|
UPROPERTY()
|
|
FOnUpdatePlayerHP OnUpdatePlayerHP;
|
|
|
|
UPROPERTY()
|
|
FOnUpdatePlayerStamina OnUpdatePlayerStamina;
|
|
|
|
UPROPERTY()
|
|
FOnUpdateTime OnUpdateTime;
|
|
|
|
UPROPERTY()
|
|
FOnUpdateIndicator OnUpdateIndicator;
|
|
|
|
UPROPERTY()
|
|
FOnUpdateSlotFocus OnUpdateSlotFocus;
|
|
|
|
UPROPERTY()
|
|
FOnQuestUpdate OnQuestUpdate;
|
|
|
|
UPROPERTY()
|
|
FOnUpdateConsumableSlot OnUpdateConsumableSlot;
|
|
|
|
UPROPERTY()
|
|
FOnUpdateGimmickSlot OnUpdateGimmickSlot;
|
|
|
|
UPROPERTY()
|
|
FOnSkillUpdate OnSkillUpdate;
|
|
|
|
UPROPERTY()
|
|
FOnQuestInitialized OnQuestInitialized;
|
|
|
|
UPROPERTY()
|
|
FOnStartGame OnStartGame;
|
|
|
|
UPROPERTY()
|
|
FOnSkillInitialized OnSkillInitialized;
|
|
};
|