Пример #1
0
    void ProcessOneMove()
    {
        for (int i = moveIndex; i < moves.Count; i++)
        {
            moveIndex++;
            GameMove move = moves[i];

            Actor activeActor = actors.Find(a => a.name == move.actionAuthorName);

            if (activeActor == null)
            {
                Debug.LogError("Couldn't find actor: " + move.actionAuthorName);
            }

            if (activeActor.hp <= 0)
            {
                continue;
            }
            bool hasProcessedAMove = false;
            if (ProcessMove(move, actors, gameData))
            {
                if (move.gameAction == GameAction.StabAttack)
                {
                    move.actionAuthorName = "";
                }
                foreach (var controller in actorControllers)
                {
                    controller.moveHistory.Add(move.Clone());
                }
                hasProcessedAMove = true;
            }
            gameState = GetGameState(gameData, killer);
            if (hasProcessedAMove)
            {
                isWaiting = true;
                break;
            }
        }
    }