Ludo-3D/Assets/Scripts/Gameplay/GameModeHandler.cs

83 lines
1.8 KiB
C#
Raw Normal View History

2026-01-30 21:51:33 +05:30
using System;
using System.Collections.Generic;
using UnityEngine;
public enum GameModeType
{
PVP,
Bot,
}
2026-01-30 21:51:33 +05:30
[Serializable]
public class PVPModeData
{
public List<PlayerType> types;
public List<string> names;
}
[Serializable]
public class BotModeData
{
public PlayerData playerData;
public int botCount;
}
public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
{
private GameplayManager gameplayManager;
2026-01-30 21:51:33 +05:30
private PVPModeData pvpModeData;
private BotModeData botModeData;
public GameModeType CurrentGameModeType
{
get; private set;
}
public void Initialize()
{
InterfaceManager.Instance.RegisterInterface<GameModeHandler>(this);
}
public void InitializeData()
{
gameplayManager = InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
}
2026-01-30 21:51:33 +05:30
public void InitPVPModeData(List<PlayerType> types, List<string> names)
{
pvpModeData = new PVPModeData
{
types = types, names = names
};
CurrentGameModeType = GameModeType.PVP;
gameplayManager.InitPlayerTypesForPVP(types, names);
}
public void InitBotModeData(PlayerData playerData, int botCount)
{
2026-01-30 21:51:33 +05:30
botModeData = new BotModeData
{
playerData = playerData,
botCount = botCount
};
CurrentGameModeType = GameModeType.Bot;
gameplayManager.InitPlayerTypesForBotMatch(playerData, botCount);
}
2026-01-30 21:51:33 +05:30
public void OnGameRestarted()
{
2026-01-30 21:51:33 +05:30
switch (CurrentGameModeType)
{
case GameModeType.PVP:
InitPVPModeData(pvpModeData.types, pvpModeData.names);
break;
case GameModeType.Bot:
InitBotModeData(botModeData.playerData, botModeData.botCount);
break;
}
}
}