public void RemoveCommand() { int index = transform.GetSiblingIndex() - 1; var msg = new CommandAtIndexMessage(GameEvents.COMMAND_QUEUE_REMOVE_COMMAND, index); MessageDispatcher.Instance.DispatchMessage(msg); }
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); } } }