2026-01-21 20:27:45 +05:30
|
|
|
using UnityEngine;
|
|
|
|
|
|
2026-01-23 15:32:48 +05:30
|
|
|
[System.Serializable]
|
|
|
|
|
public class BasePlacementData
|
|
|
|
|
{
|
|
|
|
|
public int playerBaseId;
|
|
|
|
|
public Transform placementTransform;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-21 20:27:45 +05:30
|
|
|
public class PlayerBase : MonoBehaviour
|
|
|
|
|
{
|
2026-01-26 19:48:55 +05:30
|
|
|
[SerializeField] private PlayerType playerType;
|
2026-01-23 15:32:48 +05:30
|
|
|
[SerializeField] private BasePlacementData[] basePlacementDatas;
|
|
|
|
|
[SerializeField] private PlayerPawn[] playerPawns;
|
|
|
|
|
|
2026-01-27 20:55:55 +05:30
|
|
|
public bool IsBotBase
|
|
|
|
|
{
|
|
|
|
|
get; private set;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-26 19:48:55 +05:30
|
|
|
public PlayerType GetPlayerType() => playerType;
|
2026-01-23 15:32:48 +05:30
|
|
|
|
2026-01-26 13:03:50 +05:30
|
|
|
public void InitPlayerData()
|
2026-01-21 20:27:45 +05:30
|
|
|
{
|
2026-01-23 15:32:48 +05:30
|
|
|
for (int idx = 0; idx < basePlacementDatas.Length; idx++)
|
|
|
|
|
{
|
2026-01-26 13:03:50 +05:30
|
|
|
playerPawns[idx].Init(basePlacementDatas[idx].playerBaseId, playerType);
|
2026-01-23 15:32:48 +05:30
|
|
|
}
|
2026-01-21 20:27:45 +05:30
|
|
|
}
|
|
|
|
|
|
2026-01-27 20:55:55 +05:30
|
|
|
public void AssignBotState(PawnType pawnType)
|
|
|
|
|
{
|
|
|
|
|
IsBotBase = pawnType == PawnType.Bot;
|
|
|
|
|
for (int idx = 0; idx < playerPawns.Length; idx++)
|
|
|
|
|
{
|
|
|
|
|
playerPawns[idx].AssignBotPlayerState(IsBotBase);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-26 13:03:50 +05:30
|
|
|
public Transform GetBasePlacementDataPosition(int idx)
|
2026-01-21 20:27:45 +05:30
|
|
|
{
|
2026-01-26 13:03:50 +05:30
|
|
|
return basePlacementDatas[idx].placementTransform;
|
2026-01-21 20:27:45 +05:30
|
|
|
}
|
|
|
|
|
}
|