コード例 #1
0
    public void OnPointerClick(PointerEventData eventData)
    {
        if (!isDead &&
            !IngameSubmitButtonManager.GetIngameSubmitButtonManager().IsWaiting() &&
            ClientNetworkingManager.GetClientNetworkingManager().PlayerId == unitData.owningPlayerId)
        {
            ClientGameLogicManager logicManager = ClientGameLogicManager.GetClientLogicFromScene();
            if (logicManager.CurrentServerSideState.CurrentPhase == GamePhase.Planning)
            {
                if (destination == null)
                {
                    SelectedUnit = this;
                }
                else
                {
                    SetDestinationTileController(null);
                }
                playClickedSound();
            }
            else if (logicManager.CurrentServerSideState.CurrentPhase == GamePhase.Revision)
            {
                List <GameAction> gameActions = logicManager.QueuedGameActionsRevision;
                for (int i = 0; i < gameActions.Count; i++)
                {
                    if (gameActions[i].UnitId == unitData.unitId)
                    {
                        gameActions[i].moveToPositions.Clear();
                    }
                }

                // CLICK IT!
                FindObjectOfType <IngameSubmitButtonManager>().SubmitTurn();
            }
        }
    }
コード例 #2
0
    public void SubmitTurn()
    {
        if (hasFinished)
        {
            SceneManager.LoadScene(0);
        }
        else
        {
            advanceButton.interactable = false;
            advanceButtonText.text     = "Wait";

            var clientGameLogicManager = ClientGameLogicManager.GetClientLogicFromScene();

            var actions = clientGameLogicManager.QueuedGameActionsPlanning;
            if (clientGameLogicManager.CurrentServerSideState.CurrentPhase == GamePhase.Revision)
            {
                actions = clientGameLogicManager.QueuedGameActionsRevision;
            }

            ClientNetworkingManager.GetClientNetworkingManager().SendActions(actions);

            clientGameLogicManager.QueuedGameActionsRevision =
                new List <GameAction>(clientGameLogicManager.QueuedGameActionsPlanning);

            UnitController[] unitControllers = FindObjectsOfType <UnitController>();
            for (int i = 0; i < unitControllers.Length; i++)
            {
                unitControllers[i].SetDestinationTileController(null);
            }
        }
    }
コード例 #3
0
    void Awake()
    {
        _clientLogic = GameObject.Find("NetworkClient").GetComponent <ClientGameLogicManager>();

        _clientLogic.PlayerMayInteractHandler += OnAnimationsFinished;
    }
コード例 #4
0
 void Start()
 {
     advanceButton     = GameObject.Find("AdvanceButton").GetComponent <Button>();
     advanceButtonText = advanceButton.GetComponentInChildren <Text>();
     ClientGameLogicManager.GetClientLogicFromScene().PlayerMayInteractHandler += UnlockButton;
 }
コード例 #5
0
 // Use this for initialization
 void Start()
 {
     textField = gameObject.GetComponent <Text>();
     clientGameLogicManager = ClientGameLogicManager.GetClientLogicFromScene();
     clientGameLogicManager.StateUpdatedHandler += OnStateChanged;
 }
コード例 #6
0
 public void Awake()
 {
     _gameLogic = GetComponent <ClientGameLogicManager>();
 }