#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: BP_FirstPersonGameMode_Online_LINK

#include "Basic.hpp"

#include "Engine_structs.hpp"
#include "CoreUObject_structs.hpp"
#include "BP_FirstPersonGameMode_V2_classes.hpp"
#include "EN_LINK_GamePhase_structs.hpp"
#include "OnlineSubsystemBlueprints_structs.hpp"


SDK_NAMESPACE_START

// BlueprintGeneratedClass BP_FirstPersonGameMode_Online_LINK.BP_FirstPersonGameMode_Online_LINK_C
// 0x0178 (0x0530 - 0x03B8)
class ABP_FirstPersonGameMode_Online_LINK_C final : public ABP_FirstPersonGameMode_V2_C
{
public:
	struct FPointerToUberGraphFrame               UberGraphFrame_BP_FirstPersonGameMode_Online_LINK_C; // 0x03B8(0x0008)(ZeroConstructor, Transient, DuplicateTransient)
	class UBPGI_Main_C*                           BPGI_Main;                                         // 0x03C0(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, NoDestructor, HasGetValueTypeHash)
	class ABP_GameState_LINK_C*                   BP_Game_State_LINK;                                // 0x03C8(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnTemplate, DisableEditOnInstance, NoDestructor, HasGetValueTypeHash)
	class ABP_TeleportPoints_C*                   ShopTeleportPoints;                                // 0x03D0(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnTemplate, DisableEditOnInstance, NoDestructor, HasGetValueTypeHash)
	TMap<class AController*, class FName>         UserStates;                                        // 0x03D8(0x0050)(Edit, BlueprintVisible, DisableEditOnTemplate, DisableEditOnInstance)
	int32                                         LobbyPhase;                                        // 0x0428(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         ShopPhase;                                         // 0x042C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        StartTimerDefualtValue;                            // 0x0430(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        DaySeconds;                                        // 0x0438(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        CurrentDaySeconds;                                 // 0x0440(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        CurrentTimerValue;                                 // 0x0448(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        DayTimerUpdateInverval;                            // 0x0450(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	struct FRandomStream                          GenerateMapSeed;                                   // 0x0458(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, NoDestructor)
	TArray<struct FRandomStream>                  GenerateMapSeedArray;                              // 0x0460(0x0010)(Edit, BlueprintVisible, DisableEditOnInstance)
	TArray<class UBP_LevelPriset_C*>              SpawnLevelPrisets;                                 // 0x0470(0x0010)(Edit, BlueprintVisible, DisableEditOnInstance)
	TMulticastInlineDelegate<void()>              OnGoal;                                            // 0x0480(0x0010)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, BlueprintAssignable, BlueprintCallable)
	TArray<int32>                                 RemainId;                                          // 0x0490(0x0010)(Edit, BlueprintVisible, DisableEditOnInstance)
	int32                                         MaxColorIndex;                                     // 0x04A0(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         CurrentSpawnPointNum;                              // 0x04A4(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         CurrentLinkNum;                                    // 0x04A8(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                         Pad_4AC[0x4];                                      // 0x04AC(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class ABP_LinkGoalPosition_C*>         LastGoalTargets;                                   // 0x04B0(0x0010)(Edit, BlueprintVisible, DisableEditOnTemplate, DisableEditOnInstance)
	int32                                         CurrentLastGoalNumber;                             // 0x04C0(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         CurrentTimer;                                      // 0x04C4(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         CurrentPhase;                                      // 0x04C8(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	bool                                          IsOverTime;                                        // 0x04CC(0x0001)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                         Pad_4CD[0x3];                                      // 0x04CD(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	TMap<int32, int32>                            PhaseTimer;                                        // 0x04D0(0x0050)(Edit, BlueprintVisible, DisableEditOnInstance)
	int32                                         ModeLevel;                                         // 0x0520(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	class FName                                   StartGameMode;                                     // 0x0524(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

public:
	void AddCoinAllPlayers(int32 AddValue);
	void AllPlayerStateReset();
	void BackToLobby();
	void BodyIdReset();
	void CanLinkCheck(bool* Rezult);
	void CheckGoalMiniPenguins(TArray<class ABP_FirstPersonCharacter_LINK_C*>* GoalMiniOwnersArray);
	void ClearStateUpdate();
	void Countdown();
	void CountOut();
	void DayStart();
	void ExecuteUbergraph_BP_FirstPersonGameMode_Online_LINK(int32 EntryPoint);
	void Freeze(class ABP_FirstPersonCharacter_Main_C* Character);
	void GameClear();
	void GameOver();
	void GameStartWait();
	void GenerateMap(int32 Level);
	void GetGamePhase(EN_LINK_GamePhase* CurrentGamePhase);
	void GetLiveAndDeathPlayers(TArray<class ABP_FirstPersonCharacter_Main_C*>* LiveCharacters, TArray<class ABP_FirstPersonCharacter_Main_C*>* DeathCharacters);
	int32 GetRandomBodyId();
	void GetTargetStateUsers(class FName TargetName, TArray<class AController*>* GetControllers);
	void GiveDefaultItem();
	void Goal(int32 PenguinCounet);
	void GoToWork();
	void IgrooGoalEvent();
	void ItemAllClear();
	void K2_OnLogout(class AController* ExitingController);
	void K2_PostLogin(class APlayerController* NewPlayer);
	void KingVisualUpdate();
	void LastGoal();
	void LastPhaseStart();
	void LogicStart();
	void MemberJoin(const struct FUniqueNetIdRepl& LocalUserId, class UPartyId* PartyId, const struct FUniqueNetIdRepl& MemberId);
	void MoveTime();
	void OnCallFailed_0015FF304852112AC6F85EB1B4FD7C13(class FName SessionName, bool bWasSuccessful);
	void OnCallFailed_69EDB86241BB277C5E43CEB754903A82(class FName SessionName, EOnJoinSessionCompleteResult_ Result);
	void OnJoinSessionComplete_69EDB86241BB277C5E43CEB754903A82(class FName SessionName, EOnJoinSessionCompleteResult_ Result);
	void OnRequestComplete_04685BE662ED3B24A6652AE4019A5EE2(const class FString& Response, bool bSuccessful, const struct FHttpHeader& OutHeader);
	void OnRequestComplete_596ADE20A86B39499222CE49C139BEF3(const class FString& Response, bool bSuccessful, const struct FHttpHeader& OutHeader);
	void OnSessionUserInviteAccepted(bool bWasSuccessful, int32 ControllerId, const struct FUniqueNetIdRepl& UserId, const struct FOnlineSessionSearchResultBP& InviteResult);
	void OnUpdateOverlapingPlayers(int32 Length);
	void OnUpdateSessionComplete_0015FF304852112AC6F85EB1B4FD7C13(class FName SessionName, bool bWasSuccessful);
	void OverlapShopPlayers(int32 Length);
	void PhaseStart(int32 PhaseNumber, int32 PhaseTime);
	void PhaseTaskStart(int32 Phase);
	void PhaseTimerClear();
	void QuickForceStart();
	void ReceiveBeginPlay();
	void ReGenerateMap(int32 Level);
	void RemoveAllTasks();
	void RemoveCurrentGame(class AController* Controller);
	void RemoveMap();
	void ResetDayCycle();
	void SelectKing();
	void SetClearTime();
	void SetCurrentPlayerNum();
	void SetGamePhase(EN_LINK_GamePhase GamePhase);
	void SetMiniPenguinWeight(double Weight);
	void ShowAnnounce(int32 TextIndex, bool LastAnnounce);
	void Spawn(class AController* Controller);
	void StateCheck();
	void StateUpdate(class AController* Controller, class FName StateName);
	void StormStart();
	void TaskClear();
	void TeleportPlayers(class FName TargetPositionName);
	void TimeAdd(int32 TextIndex, int32 AddValue, const class FString& CustomString);
	void TimeChange();
	void TravelMap();
	void UnZipAll();
	void UpdateCanJoin(bool State);
	void UpdateGoalPointCount();
	void UpdateOverlapingPlayers();
	void UpdateShopUI();
	void UpdateSpawnContllers();
	void UserStateClean();

	void GetGoalPointCount(int32* PointNum) const;
	void IsAllTaskClear(bool* IsAllClear) const;

public:
	static class UClass* StaticClass()
	{
		BP_STATIC_CLASS_IMPL("BP_FirstPersonGameMode_Online_LINK_C")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BP_FirstPersonGameMode_Online_LINK_C")
	}
	static class ABP_FirstPersonGameMode_Online_LINK_C* GetDefaultObj()
	{
		return GetDefaultObjImpl<ABP_FirstPersonGameMode_Online_LINK_C>();
	}
};
DUMPER7_ASSERTS_ABP_FirstPersonGameMode_Online_LINK_C;

SDK_NAMESPACE_END
