자고 일어나보니 과연 새로 추가할 기믹이 재밌을지 의문.
차라리 가챠 기믹이 더 나아보였음.
일단 만들고 테스트해보기.
2페이즈는 한 판만. 둘 다 기회 3번. 레이팅은 그대로.
moveQueue.Dequeue().Execute()에 작업 추가. Dequeue()한 ICommand에서 willEndTurn을 가져와 기록해두고 public bool DestroyPieceAt(int x, int z, bool isTurnEnd = true)
{
if (pieces[x, z] == null) { return false; }
bool isWhiteNow = gameManager.whiteTurn; // 백이 플레이어
if (!isTurnEnd) // 버튼을 누른 거라면 턴을 종료하지 않고 무덤에만 보내기
{
if (isWhiteNow) pieceCommandManager.EnQueuePlayerMove(pieces[x, z], piece_grave.GetPlayerGravePos(pieces[x, z]), 0.25f, false);
else pieceCommandManager.EnQueueRoboticArmMove(pieces[x, z], piece_grave.GetAIGravePos(pieces[x, z]), 0.4f, false);
}
else
{
if (isWhiteNow) pieceCommandManager.EnQueuePlayerMove(pieces[x, z], piece_grave.GetPlayerGravePos(pieces[x, z]), 0.25f, true);
else pieceCommandManager.EnQueueRoboticArmMove(pieces[x, z], piece_grave.GetAIGravePos(pieces[x, z]), 0.4f, true);
}
instance 생성은 EnQueuePlayerMove()에서 처리됨. true, false 매개변수가 추가됨.
/// <summary>
/// 각 명령이 끝나면 호출되어 다음 명령을 실행하는 함수
/// </summary>
public void ExecuteNextCommand()
{
if (isWorking) return;
if (moveQueue.Count > 0)
{
ICommand command = moveQueue.Dequeue();
willEndTurn = command.WillEndTurn();
command.Execute();
isWorking = true;
}
else if (willEndTurn)
{
gameManager.EndTurn();
}
}
PieceCommandManager.cs
손가락이 아파서 오늘은 여기까지