public void RemoveCommand()
    {
        int index = transform.GetSiblingIndex() - 1;

        var msg = new CommandAtIndexMessage(GameEvents.COMMAND_QUEUE_REMOVE_COMMAND, index);

        MessageDispatcher.Instance.DispatchMessage(msg);
    }
Exemplo n.º 2
0
    private void OnStatusChanged(BaseCommand command)
    {
        m_numCompleteCommands++;

        command.enabled = false;
        command.OnStatusChanged.RemoveListener(OnStatusChanged);

        if (m_numCompleteCommands >= m_commands.Length)
        {
            bool allComplete = true;
            for (int i = 0; i < m_commands.Length; i++)
            {
                BaseCommand cmd = m_commands[i];
                if (cmd.Status == CommandStatus.FAILURE)
                {
                    allComplete = false;
                }
            }

            if (allComplete)
            {
                var msg = new CommandAtIndexMessage(GameEvents.COMMAND_QUEUE_SUCCESSFULLY_PROCESSED_COMMAND, CurrentIndex);
                MessageDispatcher.Instance.DispatchMessage(msg);

                CurrentIndex += 1;
            }
            else
            {
                var failedMsg = new CommandAtIndexMessage(GameEvents.COMMAND_QUEUE_FAILED_TO_PROCESS_COMMAND, CurrentIndex);
                MessageDispatcher.Instance.DispatchMessage(failedMsg);

                var stopMsg = new Message(GameEvents.COMMAND_QUEUE_STOP_PROCESSING);
                MessageDispatcher.Instance.DispatchMessage(stopMsg);
            }
        }
    }