40 lines
1.7 KiB
C#
Raw Normal View History

2025-11-20 14:44:09 +08:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TurnManager : MonoBehaviour
{
// ======== serializeField ========
2025-11-20 17:06:04 +08:00
[SerializeField] private List<GameObject> playerCharacterGo; // 玩家队伍列表(应该传入5个角色), 暂时只传3个
2025-11-20 14:44:09 +08:00
[SerializeField] private int defaultHandCardNumber = 5; // 默认手牌数量
[SerializeField] private float everyCardDistributeDuration = 0.25f; // 系统发牌时间
[SerializeField] private float everyCardDiscardDuration = 0.25f; // 系统弃牌时间
2025-11-20 17:06:04 +08:00
[SerializeField] private CharacterManager characterManager;
2025-11-20 14:44:09 +08:00
// ======== private ========
2025-11-20 17:06:04 +08:00
2025-11-20 14:44:09 +08:00
private TurnManagerSingleton turnManagerSingleton;
2025-11-20 17:06:04 +08:00
private List<Card> cardDeckList; // 牌组
private readonly List<Card> cardPileList = new(); // 弃牌堆
2025-11-20 14:44:09 +08:00
private TurnManagerStateEnum turnManagerState; // 状态机
2025-11-20 17:06:04 +08:00
private readonly List<Character> playerCharacterList = new();
2025-11-20 14:44:09 +08:00
private void Start()
{
turnManagerSingleton = TurnManagerSingleton.Instance;
TurnEnterSetupState();
}
private void TurnEnterSetupState()
{
turnManagerState = TurnManagerStateEnum.SETUP_STATE;
if (turnManagerSingleton.GetNeedDebugLog()) Debug.Log("进入设置状态");
cardDeckList.Clear();
cardPileList.Clear();
2025-11-20 17:06:04 +08:00
foreach (GameObject go in playerCharacterGo) playerCharacterList.Add(go.GetComponent<Character>());
foreach (var playerCharacter in playerCharacterList) playerCharacter.SetID(playerCharacterList.IndexOf(playerCharacter));
characterManager.SetFightCharacter(playerCharacterList); // 从5个角色里选出三个, 暂时只选三个
cardDeckList = characterManager.RenderCharacterSprite();
2025-11-20 14:44:09 +08:00
}
}