完成回合制整体流程
This commit is contained in:
parent
95cf9ff6ac
commit
8ceccbc86e
@ -89,7 +89,9 @@ public class TurnCardManager : MonoBehaviour
|
||||
yield return tweenAnimation.WaitForCompletion();
|
||||
}
|
||||
|
||||
handCardList.Clear();
|
||||
SetCardManagerState(CardManagerStateEnum.WAIT);
|
||||
TurnManagerEvent.CallTurnManagerEnterEnemyTurn();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
25
Assets/00_scripts/Events/TurnScripts/TurnEnemyManager.cs
Normal file
25
Assets/00_scripts/Events/TurnScripts/TurnEnemyManager.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class TurnEnemyManager : MonoBehaviour
|
||||
{
|
||||
public void SetupEnemyManager()
|
||||
{
|
||||
}
|
||||
|
||||
public void SetDebugEnemyTurn()
|
||||
{
|
||||
StartCoroutine(enumerator());
|
||||
|
||||
IEnumerator enumerator()
|
||||
{
|
||||
for (var i = 0; i <= 3; i++)
|
||||
{
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
TurnManagerEvent.CallTurnManagerExitEnemyTurn();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9be7fbec7fbad4d4b8272daf021ac8ec
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -25,15 +25,17 @@ public class TurnManager : MonoBehaviour
|
||||
private TurnCharacterManager characterManager;
|
||||
private TurnCardManager cardManager;
|
||||
private TurnUIManager uiManager;
|
||||
private TurnEnemyManager enemyManager;
|
||||
|
||||
public enum TurnManagerStateEnum
|
||||
{
|
||||
WAIT = 0,
|
||||
SETUP_STATE = 1,
|
||||
SELF_STATE_START = 2,
|
||||
SELF_STATE_STAY = 3,
|
||||
SELF_STATE_END = 4,
|
||||
ENEMY_STATE_START,
|
||||
START_SELF_TURN = 2,
|
||||
STAY_SELF_TURN = 3,
|
||||
END_SELF_TURN = 4,
|
||||
START_ENEMY_TURN = 5,
|
||||
END_ENEMY_TURN = 6
|
||||
}
|
||||
|
||||
private void Start()
|
||||
@ -42,14 +44,17 @@ public class TurnManager : MonoBehaviour
|
||||
cardManager = GetComponent<TurnCardManager>();
|
||||
characterManager = GetComponent<TurnCharacterManager>();
|
||||
uiManager = GetComponent<TurnUIManager>();
|
||||
TurnManagerEvent.OnTurnManagerStaySelfTurn += TurnStaySelfState;
|
||||
TurnManagerEvent.OnTurnManagerEndSelfTurn += TurnEndSelfState;
|
||||
TurnEnterSetupState();
|
||||
enemyManager = GetComponent<TurnEnemyManager>();
|
||||
TurnManagerEvent.OnTurnManagerStaySelfTurn += TurnManagerStaySelfTurn;
|
||||
TurnManagerEvent.OnTurnManagerEndSelfTurn += TurnManagerEndSelfTurn;
|
||||
TurnManagerEvent.OnTurnManagerEnterEnemyTurn += TurnManagerEnterEnemyTurn;
|
||||
TurnManagerEvent.OnTurnManagerExitEnemyTurn += TurnManagerEndEnemyTurn;
|
||||
SetupTurnManager();
|
||||
}
|
||||
|
||||
public TurnManagerStateEnum GetTurnManagerState() => turnManagerState;
|
||||
|
||||
private void TurnEnterSetupState() // 进入设置状态
|
||||
private void SetupTurnManager() // 进入设置状态
|
||||
{
|
||||
turnManagerState = TurnManagerStateEnum.SETUP_STATE;
|
||||
if (turnManagerSingleton.GetNeedDebugLog()) turnManagerSingleton.PrintMsg("TurnManager", "状态切换", "进入设置状态");
|
||||
@ -59,7 +64,7 @@ public class TurnManager : MonoBehaviour
|
||||
cardDeckList = characterManager.RenderCharacterSpriteReturnCardList();
|
||||
cardManager.SetupCardManager(cardDealDuration, cardHandContainer, cardDragDuration, dropCardUI, cardDropDuration);
|
||||
// cardManager.PlayAnimationShuffleCardToDeck(cardDealDuration);
|
||||
TurnEnterSelfState();
|
||||
TurnManagerEnterSelfTurn(6);
|
||||
}
|
||||
|
||||
public Card TakeOutOneCard()
|
||||
@ -71,27 +76,61 @@ public class TurnManager : MonoBehaviour
|
||||
|
||||
public void DropOutOneCard(Card card) => cardPileList.Add(card);
|
||||
|
||||
private void TurnEnterSelfState() // 进入我方回合
|
||||
private bool GetNowTurnManagerIsTargetState(List<TurnManagerStateEnum> targetStateList)
|
||||
{
|
||||
if (!turnManagerSingleton.CompareManagerState(TurnManagerStateEnum.SETUP_STATE)) return;
|
||||
if (targetStateList.Contains(GetTurnManagerState())) return true;
|
||||
string errorMsg = "";
|
||||
if (targetStateList.Count == 1)
|
||||
errorMsg = $"[TurnManager][Error]: State Is [{GetTurnManagerState()}], Target Is [{targetStateList[0]}]";
|
||||
if (targetStateList.Count == 2)
|
||||
errorMsg = $"[TurnManager][Error]: State Is [{GetTurnManagerState()}], Target Is [{targetStateList[0]}, {targetStateList[1]}]";
|
||||
if (errorMsg != "") Debug.LogError(errorMsg);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private void TurnManagerEnterSelfTurn(int cardNumber = 0) // 进入我方回合
|
||||
{
|
||||
if (!GetNowTurnManagerIsTargetState(new List<TurnManagerStateEnum>()
|
||||
{ TurnManagerStateEnum.SETUP_STATE, TurnManagerStateEnum.END_ENEMY_TURN })) return;
|
||||
if (turnManagerSingleton.GetNeedDebugLog()) turnManagerSingleton.PrintMsg("TurnManager", "状态切换", "进入我方回合");
|
||||
turnManagerState = TurnManagerStateEnum.SELF_STATE_START;
|
||||
cardManager.TakeCard(6);
|
||||
turnManagerState = TurnManagerStateEnum.START_SELF_TURN;
|
||||
cardManager.TakeCard(cardNumber);
|
||||
}
|
||||
|
||||
private void TurnStaySelfState() // 停留我方回合
|
||||
private void TurnManagerStaySelfTurn() // 停留我方回合
|
||||
{
|
||||
if (!turnManagerSingleton.CompareManagerState(TurnManagerStateEnum.SELF_STATE_START)) return;
|
||||
if (!GetNowTurnManagerIsTargetState(new List<TurnManagerStateEnum>() { TurnManagerStateEnum.START_SELF_TURN })) return;
|
||||
if (turnManagerSingleton.GetNeedDebugLog()) turnManagerSingleton.PrintMsg("TurnManager", "状态切换", "停留我方回合");
|
||||
turnManagerState = TurnManagerStateEnum.SELF_STATE_STAY;
|
||||
turnManagerState = TurnManagerStateEnum.STAY_SELF_TURN;
|
||||
}
|
||||
|
||||
private void TurnEndSelfState() // 结束我方回合
|
||||
private void TurnManagerEndSelfTurn() // 结束我方回合
|
||||
{
|
||||
if (!turnManagerSingleton.CompareManagerState(TurnManagerStateEnum.SELF_STATE_STAY)) return;
|
||||
if (!GetNowTurnManagerIsTargetState(new List<TurnManagerStateEnum>() { TurnManagerStateEnum.STAY_SELF_TURN })) return;
|
||||
if (!cardManager.GetCardManagerStateIsWait()) return;
|
||||
if (turnManagerSingleton.GetNeedDebugLog()) turnManagerSingleton.PrintMsg("TurnManager", "状态切换", "结束我方回合");
|
||||
turnManagerState = TurnManagerStateEnum.SELF_STATE_END;
|
||||
turnManagerState = TurnManagerStateEnum.END_SELF_TURN;
|
||||
cardManager.DropCardAllFromHand();
|
||||
}
|
||||
|
||||
|
||||
private void TurnManagerEnterEnemyTurn() // 进入对方回合
|
||||
{
|
||||
if (!GetNowTurnManagerIsTargetState(new List<TurnManagerStateEnum>() { TurnManagerStateEnum.END_SELF_TURN })) return;
|
||||
if (turnManagerSingleton.GetNeedDebugLog()) turnManagerSingleton.PrintMsg("TurnManager", "状态切换", "进入对方回合");
|
||||
turnManagerState = TurnManagerStateEnum.START_ENEMY_TURN;
|
||||
uiManager.EnterEnemyTurn();
|
||||
enemyManager.SetupEnemyManager();
|
||||
enemyManager.SetDebugEnemyTurn();
|
||||
}
|
||||
|
||||
private void TurnManagerEndEnemyTurn() // 结束对方回合
|
||||
{
|
||||
if (!GetNowTurnManagerIsTargetState(new List<TurnManagerStateEnum>() { TurnManagerStateEnum.START_ENEMY_TURN })) return;
|
||||
if (turnManagerSingleton.GetNeedDebugLog()) turnManagerSingleton.PrintMsg("TurnManager", "状态切换", "结束对方回合");
|
||||
turnManagerState = TurnManagerStateEnum.END_ENEMY_TURN;
|
||||
uiManager.ExitEnemyTurn();
|
||||
TurnManagerEnterSelfTurn(5);
|
||||
}
|
||||
}
|
||||
@ -20,6 +20,10 @@ public static class TurnManagerEvent
|
||||
public static event Action OnTurnManagerEndSelfTurn;
|
||||
public static void CallTurnManagerEndSelfTurn() => OnTurnManagerEndSelfTurn?.Invoke();
|
||||
|
||||
public static event Action<bool> OnCardManagerSetStateToDrag;
|
||||
public static void CallCardManagerSetStateToDrag(bool isSet) => OnCardManagerSetStateToDrag?.Invoke(isSet);
|
||||
|
||||
public static event Action OnTurnManagerEnterEnemyTurn;
|
||||
public static void CallTurnManagerEnterEnemyTurn() => OnTurnManagerEnterEnemyTurn?.Invoke();
|
||||
|
||||
public static event Action OnTurnManagerExitEnemyTurn;
|
||||
public static void CallTurnManagerExitEnemyTurn() => OnTurnManagerExitEnemyTurn?.Invoke();
|
||||
}
|
||||
@ -9,4 +9,6 @@ public class TurnUIManager : MonoBehaviour
|
||||
public void OnButtonDownEndTurn() => TurnManagerEvent.CallTurnManagerEndSelfTurn();
|
||||
|
||||
public void EnterEnemyTurn() => inEnemyTurnTooltip.gameObject.SetActive(true);
|
||||
|
||||
public void ExitEnemyTurn() => inEnemyTurnTooltip.gameObject.SetActive(false);
|
||||
}
|
||||
@ -867,6 +867,7 @@ GameObject:
|
||||
- component: {fileID: 526573212}
|
||||
- component: {fileID: 526573213}
|
||||
- component: {fileID: 526573214}
|
||||
- component: {fileID: 526573215}
|
||||
m_Layer: 0
|
||||
m_Name: TurnManager
|
||||
m_TagString: Untagged
|
||||
@ -972,6 +973,18 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
inEnemyTurnTooltip: {fileID: 588735212}
|
||||
--- !u!114 &526573215
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 526573204}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9be7fbec7fbad4d4b8272daf021ac8ec, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &563549357
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user