public void InitializeTowerUINetworkController(TowerEntityController _towerEntityController)
        {
            //Update all attributes of this UI
            UpdateTowerUINetController(_towerEntityController);

            networkObject.SendRpc(RPC_UPDATE_TOWER_U_I_NET_CONTROLLER_ON_NETWORK,
                                  Receivers.AllBuffered,
                                  networkObject.TowerEntityNetID);

            //Destroy this object when the Tower is destroyed
            _towerEntityController.networkObject.onDestroy += NetworkObject_onDestroy;
        }
예제 #2
0
 /// <summary>
 /// Notify the tower entity to change it's state.
 /// </summary>
 /// <param name="_towerEntityController"></param>
 /// <param name="_winner"></param>
 /// <param name="_actionName"></param>
 protected void NotifyChangeInTower(TowerEntityController _towerEntityController, string _winner, string _actionName)
 {
     if (!ReferenceEquals(_towerEntityController, null) &&
         !ReferenceEquals(_winner, null) &&
         !ReferenceEquals(_actionName, null))
     {
         _towerEntityController.ChangeTowerEntityStatus(_winner, _actionName);
     }
     else
     {
         Debug.LogWarning("Winner faction or tower entity are null");
     }
 }
예제 #3
0
 private void UpdateTowerCaptureControllerAttributes(TowerEntityController _towerEntityController)
 {
     if (!ReferenceEquals(_towerEntityController, null))
     {
         networkObject.TowerEntityNetId = _towerEntityController.networkObject.NetworkId;
         TowerEntityController          = _towerEntityController;
         _towerEntityController.TowerCaptureController = this;
         transform.SetParent(TowerEntityController.transform);
     }
     else
     {
         Debug.LogWarning("Tower entity controller null");
     }
 }
예제 #4
0
        public void InitTowerCaptureController(TowerEntityController _towerEntityController)
        {
            if (!ReferenceEquals(_towerEntityController, null))
            {
                UpdateTowerCaptureControllerAttributes(_towerEntityController);

                //Destroy this object when the Tower is destroyed
                _towerEntityController.networkObject.onDestroy += NetworkObject_onDestroy;

                networkObject.SendRpc(RPC_UPDATE_CAPTURE_CONTROLLER_ON_NETWORK, Receivers.AllBuffered);
            }
            else
            {
                Debug.LogWarning("Can't use a null tower entity controller for initializations");
            }
        }
        private void UpdateTowerUINetController(TowerEntityController _towerEntityController)
        {
            _towerEntityController.TowerUINetworkController = this;
            TowerEntityController          = _towerEntityController;
            networkObject.TowerEntityNetID = TowerEntityController.networkObject.NetworkId;
            var towerEntityTransf = _towerEntityController.GetComponent <Transform>();

            GameEntityRegister = _towerEntityController.GameEntityRegister;
            transform.SetParent(towerEntityTransf);

            // Set Tower UI only for non owner process (client of the player)
            if (!isServerProcess && !networkObject.IsOwner)
            {
                TowerUIInstantiated.gameObject.transform.SetParent(this.gameObject.transform);
                //Deactivates the EventSystem
                var eventSystem = TowerUIInstantiated.GetComponentInChildren <EventSystem>();
                eventSystem.gameObject.SetActive(false);
                //set the towerEntity as the parent of tower effect
                InstantiatedTowerEffect.transform.SetParent(TowerEntityController.transform);
                InstantiatedTowerEffect.transform.localPosition = Vector3.zero;
            }
        }