Exemple #1
0
 void Awake()
 {
     photonView  = GetComponent <PhotonView>();
     agent       = GetComponent <Slime>().GetAgent();
     gameManager = GameManager.Instance;
     buildingUI  = BuildingUI.Instance;
 }
Exemple #2
0
        public MapView(Game game)
            : base(game)
        {
            PlayerList players = ((XnaUITestGame)game).Model.GetScenario().GetGameWorld().GetPlayerList();

            foreach (PlayerComponent player in players.GetChildren())
            {
                UnitList unitList = player.GetUnitList();
                unitList.UnitAddedEvent   += onUnitAdded;
                unitList.UnitRemovedEvent += onUnitRemoved;
                ZRTSCompositeViewUIFactory factory = ZRTSCompositeViewUIFactory.Instance;
                foreach (UnitComponent unit in unitList.GetChildren())
                {
                    UnitUI unitUI = factory.BuildUnitUI(unit);
                    unitUI.DrawBox = new Rectangle((int)(unit.PointLocation.X * cellDimension), (int)(unit.PointLocation.Y * cellDimension), unitUI.DrawBox.Width, unitUI.DrawBox.Height);
                    AddChild(unitUI);
                    componentToUI.Add(unit, unitUI);
                    unit.MovedEventHandlers     += updateLocationOfUnit;
                    unit.HPChangedEventHandlers += killUnit;
                }
                BuildingList buildingList = player.BuildingList;
                foreach (Building b in buildingList.GetChildren())
                {
                    BuildingUI buildingUI = factory.BuildBuildingUI(b);
                    buildingUI.DrawBox = new Rectangle((int)b.PointLocation.X * cellDimension, (int)b.PointLocation.Y * cellDimension, buildingUI.DrawBox.Width, buildingUI.DrawBox.Height);
                    AddChild(buildingUI);
                }
                buildingList.BuildingAddedEventHandlers += this.onBuildingAdded;
            }
            leftButtonStrategy = new DrawSelectionBoxStrategy(this);
            OnClick           += moveSelectedUnits;
        }
Exemple #3
0
 void Awake()
 {
     buildingUI        = GetComponent <BuildingUI>();
     buildingRevenue   = GetComponent <BuildingRevenue>();
     buildingExports   = GetComponent <BuildingExports>();
     sphereOfInfluence = GetComponent <SphereOfInfluence>();
 }
    /**
     * <summary>
     * Set health
     * </summary>
     *
     * <param name="health">Health</param>
     *
     * <returns>
     * void
     * </returns>
     */
    public void SetHealth(float health)
    {
        this.health = health;

        BuildingUI buildingUI = this.UI.GetComponent <BuildingUI>();

        buildingUI.SetHealth(health, this.maxHealth);
    }
Exemple #5
0
 private void OnEnable()
 {
     _buildingUI = FindObjectOfType <BuildingUI>();
     _buildingUI.SetEnabledValue(true);
     _camera    = Camera.main;
     _charOwner = CharacterOwner.Instance;
     canBuild   = true;
 }
Exemple #6
0
        /// <summary>
        /// Trigger funciton in the event of a new building being added
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void onBuildingAdded(Object sender, BuildingAddedEventArgs e)
        {
            ZRTSCompositeViewUIFactory factory = ZRTSCompositeViewUIFactory.Instance;
            BuildingUI buildingUI = factory.BuildBuildingUI(e.Building);

            buildingUI.DrawBox = new Rectangle((int)e.Building.PointLocation.X * cellDimension, (int)e.Building.PointLocation.Y * cellDimension, buildingUI.DrawBox.Width, buildingUI.DrawBox.Height);
            AddChild(buildingUI);
        }
 public void openBuildMenu()
 {
     buildingUI = canvas.GetComponent <BuildingUI>();
     buildingUI.checkBought();
     buildObject.SetActive(true);
     openObjects.Add(buildObject);
     setTask(true);
     removeActionMenu();
 }
Exemple #8
0
    void Awake()
    {
        _ui    = GetComponent <BuildingUI>();
        _state = State.Instantiated;
        _ui.description.text = description;

        // After the building was created start placeing
        StartCoroutine(PlaceBuilding());
    }
Exemple #9
0
    void CheckUIOBJ(GameObject hitObject)
    {
        BuildingUI buildUI = hitObject.GetComponent <BuildingUI>();

        if (buildUI != null)
        {
            Debug.Log("Click Building UI!!!");
            buildUI.StartCoroutine(buildUI.GetClicked(this));
        }
    }
    /**
     * <summary>
     * Set max health
     * </summary>
     *
     * <param name="maxHealth">maxHealth</param>
     *
     * <returns>
     * void
     * </returns>
     */
    public void SetMaxHealth(float maxHealth)
    {
        float currentHealth = this.GetHealth();

        this.maxHealth = maxHealth;

        BuildingUI buildingUI = this.UI.GetComponent <BuildingUI>();

        buildingUI.SetMaxHealth(currentHealth, maxHealth);
    }
Exemple #11
0
 public static void SetupBuidingGui()
 {
     BuildingWindowGameObject = new GameObject("buildingWindowObject");
     buildingPanel            = (BuildingUI)BuildingWindowGameObject.AddComponent(typeof(BuildingUI));
     buildingInfo             = UIView.Find <UIPanel>("(Library) ZonedBuildingWorldInfoPanel");
     if (buildingInfo == null)
     {
         DebugLog.LogToFileOnly("UIPanel not found (update broke the mod!): (Library) ZonedBuildingWorldInfoPanel\nAvailable panels are:\n");
     }
     buildingPanel.transform.parent       = buildingInfo.transform;
     buildingPanel.size                   = new Vector3(buildingInfo.size.x, buildingInfo.size.y / 2f);
     buildingPanel.baseBuildingWindow     = buildingInfo.gameObject.transform.GetComponentInChildren <ZonedBuildingWorldInfoPanel>();
     buildingPanel.position               = new Vector3(buildingInfo.size.x, 0);
     buildingInfo.eventVisibilityChanged += buildingInfo_eventVisibilityChanged;
 }
    /**
     * <summary>
     * Select a given building
     * </summary>
     *
     * <param name="building"></param>
     *
     * <returns>
     * void
     * </returns>
     */
    public static void SelectBuilding(GameObject building)
    {
        // Unselect previous building
        BuildingsManagerBehaviour.UnselectBuilding();

        // Unselect units
        if (UnitsManagerBehaviour.SelectedUnits != null)
        {
            UnitsManagerBehaviour.UnselectGameObjects();
        }

        // Unselect previous resource
        if (ResourcesManagerBehaviour.SelectedResource != null)
        {
            ResourcesManagerBehaviour.UnselectResource();
        }

        BuildingBehaviour buildingBehaviour = building.GetComponent <BuildingBehaviour>();

        buildingBehaviour.SetSelect(true);

        // Show info component panel
        Self.infoComponentPanel.SetActive(true);

        Self.infoComponentPanel
        .transform
        .Find("Single")
        .gameObject
        .SetActive(true);

        BuildingUI buildingUI = buildingBehaviour.GetUI()
                                .GetComponent <BuildingUI>();

        InfoComponentPanelUI infoComponentPanelUI = Self.infoComponentPanel.GetComponent <InfoComponentPanelUI>();

        infoComponentPanelUI.SetName(building.name);
        infoComponentPanelUI.SetHealth(buildingBehaviour.GetHealth(), buildingBehaviour.GetMaxHealth());
        infoComponentPanelUI.SetIcon(buildingUI.GetIcon());

        // Show action component panel
        Self.actionComponentPanel.SetActive(true);

        // Set selected building
        BuildingsManagerBehaviour.SelectedBuilding = building;
    }
    /**
     * <summary>
     * Refresh or update the selected building information
     * </summary>
     *
     * <returns>
     * void
     * </returns>
     */
    public static void UpdateSelectedBuildingInfo()
    {
        if (!BuildingsManagerBehaviour.SelectedBuilding)
        {
            return;
        }

        BuildingBehaviour buildingBehaviour = BuildingsManagerBehaviour.SelectedBuilding
                                              .GetComponent <BuildingBehaviour>();
        BuildingUI buildingUI = buildingBehaviour.GetUI()
                                .GetComponent <BuildingUI>();

        InfoComponentPanelUI infoComponentPanelUI = Self.infoComponentPanel.GetComponent <InfoComponentPanelUI>();

        infoComponentPanelUI.SetName(BuildingsManagerBehaviour.SelectedBuilding.name);
        infoComponentPanelUI.SetHealth(buildingBehaviour.GetHealth(), buildingBehaviour.GetMaxHealth());
        infoComponentPanelUI.SetIcon(buildingUI.GetIcon());
    }
    public void ShowBuildInterface()
    {
        int   height                  = Screen.height / COUNT_BUILD_BUTTONS_IN_HEIGHT;
        float widthPanelInPixels      = Screen.width * WIDTH_PANEL_IN_NORMALIZED_PERCENT - INDENT_PANEL_X;
        float indentButtonYNormalized = INDENT_BUTTON_Y_IN_PIXELS / Screen.height;
        float gapButtonYNormalized    = GAP_BUTTON_IN_PIXELS / Screen.width;
        int   countBuildingInPanel    = (int)Mathf.Floor((widthPanelInPixels + GAP_BUTTON_IN_PIXELS - 2 * INDENT_PANEL_Y_IN_PIXELS) / (height + GAP_BUTTON_IN_PIXELS));

        widthPanelInPixels = countBuildingInPanel * (GAP_BUTTON_IN_PIXELS + height) + 2 * INDENT_PANEL_Y_IN_PIXELS - GAP_BUTTON_IN_PIXELS;
        RectTransform rt = buildingPrefab.GetComponent <RectTransform>();

        rt.sizeDelta = new Vector2(height, height);
        var buttonGameobject = buildingPrefab.transform.GetChild(0);
        var buttonRect       = buttonGameobject.GetComponent <RectTransform>();

        buttonRect.sizeDelta = new Vector2(height, height);

        float normalizedWidth  = (float)height / Screen.width;
        float normalizedHeight = (float)height / Screen.height;

        buildingPool = BuildingPool.GetObjectPool(buildingPrefab, countBuildingInPanel);
        var buildings = BuildingsList.GetBuildingDictionary();

        int countBuilding = buildings.Count;
        int countFilled;

        Building[] buildingList = new Building[buildings.Keys.Count];
        buildings.Keys.CopyTo(buildingList, 0);
        if (page != 0)
        {
            if (buildings.Count / page >= countBuildingInPanel)
            {
                countFilled = countBuildingInPanel;
            }
            else
            {
                countFilled = buildings.Count - page * countBuildingInPanel;
            }
        }
        else
        {
            countFilled = buildings.Count - page * countBuildingInPanel;
        }
        float normalizedIndentY = INDENT_PANEL_Y_IN_PIXELS / (float)Screen.height;

        for (int i = 0; i < countBuildingInPanel; i++)
        {
            BuildingObject building   = buildingPool.Pop();
            Button         button     = building.instance.GetComponentInChildren <Button>();
            BuildingUI     buildingUI = building.instance.GetComponentInChildren <BuildingUI>();
            // buildingUI.uiController = FindObjectOfType<UIOilController>();
            var buttonGO     = building.instance.transform.GetChild(0);
            var buttonScript = buttonGO.GetComponent <Button>();
            var colors       = buttonScript.colors;
            var tooltip      = building.instance.GetComponentInChildren <Tooltip>();
            if (countFilled > 0)
            {
                countFilled--;

                buildingUI.building = buildingList[page * countBuildingInPanel + i];
                GeneralBuilding generalBuilding;
                buildings.TryGetValue(buildingUI.building, out generalBuilding);
                buildingUI.generalBuilding = generalBuilding;
                button.image.sprite        = generalBuilding.GetSpriteIcon();
                colors.normalColor         = new Color(255, 255, 255, 255);
                buttonScript.colors        = colors;
                button.onClick.AddListener(buildingUI.TaskOnClick);
                tooltip.Enable();
                tooltip.buiding = generalBuilding;
            }
            else
            {
                tooltip.Disable();
                buildingUI.building = Building.none;
                button.image.sprite = emptyIcon;
                colors.normalColor  = new Color(255, 255, 255, 255);
                buttonScript.colors = colors;
            }
            var   rectTransform     = building.instance.GetComponent <RectTransform>();
            float normalizedGap     = GAP_BUTTON_IN_PIXELS / (float)Screen.width;
            float normalizedIndentX = INDENT_PANEL_X_IN_PIXELS / (float)Screen.width;

            rectTransform.anchorMax = new Vector2(INDENT_PANEL_X + normalizedIndentX + (normalizedWidth + normalizedGap) * i + normalizedWidth / 2,
                                                  INDENT_PANEL_Y + normalizedIndentY + normalizedHeight / 2);
            rectTransform.anchorMin = rectTransform.anchorMax;
            rectTransform.sizeDelta = new Vector2(height, height);
            //rectTransform.position=new Vector3(0,0,0);
            rectTransform.anchoredPosition = new Vector2(0, 0);
        }
        var backgroundRect = background.GetComponent <RectTransform>();
        //backgroundRect.sizeDelta = new Vector2(widthPanelInPixels, height+50);
        float widthPanelInNormalizedPercent = widthPanelInPixels / (float)Screen.width;

        backgroundRect.anchorMax = new Vector2(INDENT_PANEL_X + widthPanelInNormalizedPercent, INDENT_PANEL_Y + normalizedHeight + 2 * normalizedIndentY);
        backgroundRect.anchorMin = new Vector2(INDENT_PANEL_X, INDENT_PANEL_Y);

        /*  private const int COUNT_COPY_OBJECT_IN_POOLS = 30;
         * [SerializeField]
         * private GameObject[] obstacles;
         * [SerializeField]
         * float g;
         * [SerializeField]
         * Sprite backGround;
         * private ObstaclePool[] obstaclePools;
         *
         * public IEnumerator GenerateObstacles()
         * {
         *    if ((obstaclePools == null) || (obstaclePools.Length) < obstacles.Length)
         *    {
         *        obstaclePools = new ObstaclePool[obstacles.Length];
         *    }
         *    for (int i = 0; i < obstacles.Length; i++)
         *    {
         *        if (obstaclePools[i] == null)
         *        {
         *            obstaclePools[i] = ObstaclePool.GetObjectPool(obstacles[i], COUNT_COPY_OBJECT_IN_POOLS);
         *        }
         *    }
         *
         *    while (Game.Instance.State == State.Game)
         *    {
         *        int nextObstacle = UnityEngine.Random.Range(0, obstacles.Length);
         *        Obstacle obstacle = obstacles[nextObstacle].GetComponent<Obstacle>();
         *        obstaclePools[nextObstacle].Pop(obstacle.StartPosition);
         *        yield return new WaitForSeconds(4f);
         *    }
         * }*/
    }
Exemple #15
0
    //make a sound effect for buying building, and not being able to buy building

    void Start()
    {
        gameManager = GetComponent <GameManager>();
        buildingUI  = canvas.GetComponent <BuildingUI>();
    }
        public static void ProcessBuildingDataFinal(ushort buildingID, ref Building buildingData)
        {
            if (RealCityPrivateBuildingAI.preBuidlingId > buildingID)
            {
                RealCityPrivateBuildingAI.allOfficeHighTechWorkCountFinal = RealCityPrivateBuildingAI.allOfficeHighTechWorkCount;
                RealCityPrivateBuildingAI.allOfficeLevel1WorkCountFinal   = RealCityPrivateBuildingAI.allOfficeLevel1WorkCount;
                RealCityPrivateBuildingAI.allOfficeLevel2WorkCountFinal   = RealCityPrivateBuildingAI.allOfficeLevel2WorkCount;
                RealCityPrivateBuildingAI.allOfficeLevel3WorkCountFinal   = RealCityPrivateBuildingAI.allOfficeLevel3WorkCount;
                RealCityPrivateBuildingAI.profitBuildingCountFinal        = RealCityPrivateBuildingAI.profitBuildingCount;
                BuildingData.commBuildingNumFinal                    = BuildingData.commBuildingNum;
                BuildingData.commBuildingNum                         = 0;
                RealCityPrivateBuildingAI.profitBuildingCount        = 0;
                RealCityPrivateBuildingAI.allOfficeLevel1WorkCount   = 0;
                RealCityPrivateBuildingAI.allOfficeLevel2WorkCount   = 0;
                RealCityPrivateBuildingAI.allOfficeLevel3WorkCount   = 0;
                RealCityPrivateBuildingAI.allOfficeHighTechWorkCount = 0;
            }
            RealCityPrivateBuildingAI.preBuidlingId = buildingID;
            if (buildingData.Info.m_class.m_service == ItemClass.Service.Residential)
            {
                BuildingData.buildingMoney[buildingID] = 0;
            }

            float building_money = BuildingData.buildingMoney[buildingID];

            if (buildingData.Info.m_class.m_service == ItemClass.Service.Industrial)
            {
                if (building_money < 0)
                {
                    RealCityEconomyExtension.industrialLackMoneyCount++;
                }
                else
                {
                    RealCityEconomyExtension.industrialEarnMoneyCount++;
                }
            }

            if (building_money < 0)
            {
                BuildingData.buildingMoneyThreat[buildingID] = 1.0f;
            }

            switch (buildingData.Info.m_class.m_service)
            {
            case ItemClass.Service.Residential:
                float familyMoney = GetResidentialBuildingAverageMoney(buildingData);
                if (familyMoney < (MainDataStore.highWealth >> 1))
                {
                    BuildingData.buildingMoneyThreat[buildingID] = 1.0f - familyMoney / MainDataStore.highWealth;
                }
                else
                {
                    BuildingData.buildingMoneyThreat[buildingID] = (((MainDataStore.highWealth << 1) - (MainDataStore.highWealth >> 1)) - familyMoney) / (MainDataStore.highWealth << 1);
                }

                if (BuildingData.buildingMoneyThreat[buildingID] < 0)
                {
                    BuildingData.buildingMoneyThreat[buildingID] = 0;
                }
                break;

            case ItemClass.Service.Commercial:
            case ItemClass.Service.Industrial:
            case ItemClass.Service.Office:
                float averageBuildingSalary = BuildingUI.CaculateEmployeeOutcome(buildingData, out _);

                if (MainDataStore.citizenCount > 0.0)
                {
                    float averageCitySalary = MainDataStore.citizenSalaryTotal / MainDataStore.citizenCount;
                    float salaryFactor      = averageBuildingSalary / averageCitySalary;
                    if (salaryFactor > 3f)
                    {
                        salaryFactor = 3f;
                    }
                    else if (salaryFactor < 0.0f)
                    {
                        salaryFactor = 0.0f;
                    }

                    BuildingData.buildingMoneyThreat[buildingID] = (1.0f - salaryFactor / 3f);
                }
                else
                {
                    BuildingData.buildingMoneyThreat[buildingID] = 1.0f;
                }

                break;
            }

            if (buildingData.Info.m_class.m_service == ItemClass.Service.Commercial)
            {
                //get all commercial building for resident.
                if (buildingData.m_customBuffer2 > 2000)
                {
                    BuildingData.commBuildingNum++;
                    BuildingData.commBuildingID[BuildingData.commBuildingNum] = buildingID;
                }
                if (BuildingData.buildingMoney[buildingID] < 0)
                {
                    RealCityEconomyExtension.commercialLackMoneyCount++;
                }
                else
                {
                    RealCityEconomyExtension.commercialEarnMoneyCount++;
                }
            }

            if (buildingData.m_problems == Notification.Problem.None)
            {
                //mark no good
                if ((buildingData.Info.m_class.m_service == ItemClass.Service.Commercial) && (RealCity.debugMode))
                {
                    Notification.Problem problem = Notification.RemoveProblems(buildingData.m_problems, Notification.Problem.NoGoods);
                    if (buildingData.m_customBuffer2 < 500)
                    {
                        problem = Notification.AddProblems(problem, Notification.Problem.NoGoods | Notification.Problem.MajorProblem);
                    }
                    else if (buildingData.m_customBuffer2 < 1000)
                    {
                        problem = Notification.AddProblems(problem, Notification.Problem.NoGoods);
                    }
                    else
                    {
                        problem = Notification.Problem.None;
                    }
                    buildingData.m_problems = problem;
                }
            }
        }
Exemple #17
0
 public void OnDestroy()
 {
     Instance = null;
 }
Exemple #18
0
 void Awake()
 {
     Instance = this;
 }