示例#1
0
    void GenerateBuildingButtons()
    {
        DestroyBuildingButtons();

        int start = CurrentPage == 1 ? 0 : (6 * (CurrentPage - 1));
        int end   = (start + 6) <= Buildings.Count ? (start + 6) : Buildings.Count;


        for (int i = start; i < end; i++)
        {
            if (i >= Buildings.Count)
            {
                break;
            }

            GameObject     go             = Instantiate(buildingBtnPrefab, buildingMenuCanvas);
            BuildingButton buildingButton = go.GetComponentInChildren <BuildingButton>();

            GameObject model = Instantiate(Buildings[i].Model, buildingButton.modelParent.transform);
            model.transform.localPosition = Vector3.zero;

            buildingButton.ScaleModel(iconSize);

            buildingButton.index         = i;
            buildingButton.costText.text = "£" + Buildings[i].Cost.ToString();
            buildingButton.nameText.text = Buildings[i].Name;
            go.SetActive(true);

            buildingButton.GetComponent <CompoundButton>().OnButtonClicked += BuildingPressed;
        }

        UIManager.Instance.BuildingsGenerated(Buildings.Count);
    }
示例#2
0
    ///////////////////////////////////

    //===== BUILDING PLACMENT - In Game

    public void TryBeginBuildingPurchase(BuildingType buildType, BuildingButton buildingbutton)
    {
        //Only set for valid buildable building types
        if (buildType != BuildingType.off && buildType != BuildingType.remove)
        {
            int buildCost = BuildingCosts.GetCost(buildType);

            //Assume off state until purchase cost is validated
            //This will clear any previous button highlights or transparent buildings from previous build mode
            StopBuildingPurchase();

            //Check if player can afford to begin purchase of this building
            if (Resources.instance.CanAfford(buildCost))
            {
                //CAN afford building

                StartBuildingPurchase(buildType, buildingbutton);
            }
            else
            {
                //CANNOT afford building

                //TBD : Play cannot afford sound
                Debug.LogError("nope");
            }
        }
    }
示例#3
0
    /// <summary>
    /// <para>name : SetBuildingButton</para>
    /// <para>describe : 마을 건물을 배치.</para>
    /// <para>tag : [email protected]</para>
    /// </summary>
    public void SetBuildingButton(STownBuilding info)
    {
        int index = m_buildingButtonGroup.FindIndex(delegate(BuildingButton button) {
            return(button.TownBuilding.bldNo.Equals(info.bldNo));
        });

        if (WorldManager.instance.m_dataManager.m_buildingData.CheckBuildingInfoExists((uint)info.bldCode))
        {
            if (index > -1)
            {
                m_buildingButtonGroup[index].Init(info);
            }
            else
            {
                GameObject obj = Instantiate(m_buildingButtonObject) as GameObject;
                obj.transform.parent     = m_villageManager.m_panelGroup[(int)GUIManager_Village.PANEL_TYPE.PANEL_S05];
                obj.transform.localScale = Vector3.one;
                Util.SetGameObjectLayer(obj, LayerMask.NameToLayer("UIBackground"));

                BuildingButton buildingButton = obj.GetComponent <BuildingButton>();
                buildingButton.Init(info);

                m_buildingButtonGroup.Add(buildingButton);
            }
        }
    }
示例#4
0
    public static BuildingButton CreateBuildingButton(string givenBuilding, Color givenColour)
    {
        BuildingButton output = CreateMenuItem <BuildingButton>("Build" + givenBuilding, givenColour);

        output.Initialise(givenBuilding);
        return(output);
    }
示例#5
0
 public void PickBuilding(BuildingButton clickedButton)
 {
     if (Gold >= clickedButton.Price)
     {
         this.ClickedButton = clickedButton;
         BuildingHover.Instance.ActivateHover(clickedButton.Sprite);
     }
 }
示例#6
0
 public void ActivateButton(BuildingButton button)
 {
     foreach (BuildingButton BB in CurrentTab.BuildingButtons)
     {
         BB.GetComponent <Image>().color = FrameDefaultColor;
     }
     button.GetComponent <Image>().color = FrameActiveColor;
 }
示例#7
0
    public void OnBuildingChoose(BuildingButton button)
    {
        CurrentBuilding = button.BuildingPrefab;
        BuildingTabs.ActivateButton(button);

        Header.text      = CurrentBuilding.GetComponent <IBuilding>().Name;
        Description.text = CurrentBuilding.GetComponent <IBuilding>().Description;
    }
示例#8
0
 // 건물 버튼 리스트에 추가하는 함수
 public void AddBuildingButtonToList(BuildingButton button)
 {
     if (buildingButtons.Contains(button))
     {
         return;
     }
     buildingButtons.Add(button);
 }
示例#9
0
 public void SetPlacingObject(BuildingButton button)
 {
     this.placingObject = button;
     if (this.currentGhost)
     {
         Destroy(this.currentGhost.gameObject);
         this.currentGhost = null;
     }
 }
示例#10
0
 //A function for when buying buildings, that is when placing the building after clicking the button
 public void BuyBuilding()
 {
     //Only sets it to null if not pressing shift, so if pressing shift can place more than one
     if (!Input.GetKey(KeyCode.LeftShift))
     {
         //Sets it to null so you have to choose building each time
         ClickedBuildingBtn = null;
     }
 }
 void AddItems()
 {
     for (int i = 0; i < ItemList.Count; ++i) //Creates building buttons
     {
         GameObject     newButton      = Instantiate(prefab, ContentPanel) as GameObject;
         BuildingButton buildingButton = newButton.GetComponent <BuildingButton>();
         buildingButton.Setup(ItemList[i], this); //Sets the item data for each building button
     }
 }
示例#12
0
 public void TaskOnClick(BuildingButton button)
 {
     if (gameStats.cookies >= button.price)
     {
         gameStats.cookiesPerSecond += (decimal)button.cookiesPerSecond;
         gameStats.cookies          -= button.price;
         button.count++;
         button.price = (long)(button.price * button.priceIncrease + 1.0);
     }
 }
示例#13
0
 // Use this for initialization
 void Start()
 {
     foreach (BuildingObject o in GameController.instance.buildingObjects)
     {
         GameObject     button = Instantiate(BuildingButton, Group);
         BuildingButton b      = button.GetComponent <BuildingButton>();
         b.buildingObject = o;
         buttons.Add(button);
     }
 }
示例#14
0
 public void PickBuilding(BuildingButton buildingButton)
 {
     if (ResourceManager.Instance.CheckIfHaveEnough(buildingButton))
     {
         this.ClickedBuildingBtn = buildingButton;
         Hover.Instance.Activate(buildingButton.Sprite);
         ToggleBuildingCanvas();
         showBuildingCanvasButton.enabled = false;
     }
 }
示例#15
0
    public BuildingMenu()
    {
        Initialise();
        BuildingButton observerModebuttonItem = BuildingButton.CreateBuildingButton("Farm", Color.black);

        observerModebuttonItem.transform.SetParent(TestMain.GetCanvas().transform);
        TestMain.AddElement <MenuItem>(ref m_item, observerModebuttonItem);
        m_item[0].transform.localPosition = new Vector3(20, 10, 0);
        m_item[0].Visible(true);
        m_item[0].SetSize(10, 10);
    }
示例#16
0
 void updateGrandmaTypeUpgradeIfNeeded(BuildingUpgrade upgrade)
 {
     if (upgrade.enabled && upgrade.upgradeType == "grandma types")
     {
         string         description   = upgrade.description;
         BuildingButton theBuilding   = buildingForGrandmaType(upgrade);
         double         totalGrandmas = (double)buildingButtonHandler.findButtonWithName("grandma").count;
         double         grandmasPerPercentCpsIncrease = theBuilding.myName == "farm" ? 1.0 : double.Parse(new Regex("(?<=per ).+(?= grandmas)").Match(description).Groups [0].ToString() + ".0");
         theBuilding.cookiesPerSecondAddOn = theBuilding.cookiesPerSecond * theBuilding.cookiesPerSecondMultiplier * 0.01 * totalGrandmas / grandmasPerPercentCpsIncrease;
     }
 }
示例#17
0
 //덱의 건물 버튼들 모두 생성
 void CreateBuildingButtons(Deck deck)
 {
     for (int i = 0; i < Constants.BUILDING_PER_DECK; i++)
     {
         GameObject     obj    = Instantiate(buildingButtonPrefap, buildUI.transform);
         BuildingButton button = obj.GetComponent <BuildingButton>();
         button.card  = deck[i];
         button.index = i;
         AddBuildingButtonToList(button);
     }
 }
示例#18
0
 public void Init(List <BuildingInfo> buildingInfoList)
 {
     foreach (BuildingInfo buildingInfo in buildingInfoList)
     {
         BuildingButton bb = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.BuildingButton].AllocateGameObject <BuildingButton>(ButtonContainer);
         bb.Initialize(buildingInfo);
         BuildingButtonDict.Add(buildingInfo.buildingKey, bb);
         BuildingKey buildingKey = buildingInfo.buildingKey;
         bb.OnMouseEnterAndLeave.PointerEnter.AddListener(() => OnButtonMouseHover(buildingKey));
         bb.OnMouseEnterAndLeave.PointerExit.AddListener(() => OnButtonMouseLeave(buildingKey));
     }
 }
示例#19
0
        public static void SetupBuildingButton()
        {
            var buildingInfo = UIView.Find <UIPanel>("(Library) ZonedBuildingWorldInfoPanel");

            if (BButton == null)
            {
                BButton = (buildingInfo.AddUIComponent(typeof(BuildingButton)) as BuildingButton);
            }
            BButton.width            = 40f;
            BButton.height           = 35f;
            BButton.relativePosition = new Vector3(120, buildingInfo.size.y - BButton.height);
            BButton.Show();
        }
示例#20
0
    public bool CheckIfHaveEnough(BuildingButton buildingButton)
    {
        bool returnValue = true;

        for (int i = 0; i < buildingButton.Price.Length; i++)
        {
            if (resourceValue[i] < buildingButton.Price[i])
            {
                returnValue = false;
            }
        }

        return(returnValue);
    }
示例#21
0
    public BuildingButton GetNextButton(BuildingButton button, bool isSwitch)
    {
        int index = m_buildingButtonGroup.FindIndex(delegate(BuildingButton btn) {
            return(btn.Equals(button));
        });

        if (index < 0)
        {
            return(null);
        }
        else
        {
            int nextIndex = GetNextIndex(index, isSwitch);
            return(m_buildingButtonGroup[nextIndex]);
        }
    }
示例#22
0
 public void SpawnButtons(Interactable obj)
 {
     for (int i = 0; i < obj.options.Length; i++)
     {
         BuildingButton newButton = Instantiate(buttonPrefab) as BuildingButton;
         newButton.transform.SetParent(transform, false);
         float theta = (2 * Mathf.PI / obj.options.Length) * i;
         float xPos  = Mathf.Sin(theta);
         float yPos  = Mathf.Cos(theta);
         newButton.transform.localPosition = new Vector3(xPos, yPos, 0f) * 100f;
         newButton.square.color            = obj.options[i].color;
         newButton.icon.sprite             = obj.options[i].sprite;
         newButton.title  = obj.options[i].title;
         newButton.myMenu = this;
     }
 }
示例#23
0
    bool quantityMet(BuildingUpgrade upgrade)
    {
        bool a = upgrade.upgradeClass == "building" && buildingButtonHandler.findButtonWithName(upgrade.upgradeType).count >= Convert.ToInt64(upgrade.quantityNeeded);

        string theThing = new Regex(" cookies").Replace(upgrade.quantityNeeded, "");
        bool   b        = upgrade.upgradeClass == "flavored cookies" && theThing.Length < 20 && gameStats.cookies >= Convert.ToInt64(theThing);

        theThing = upgrade.quantityNeeded.Replace(" hand-made cookies", "");
        bool c = upgrade.upgradeClass == "clicking upgrades" && theThing.Length < 20 && gameStats.handmadeCookies >= Convert.ToInt64(theThing);

        BuildingButton theBuilding = buildingForGrandmaType(upgrade);
        bool           d           = upgrade.upgradeClass == "grandma types" && theBuilding != null && theBuilding.count >= 15 && buildingButtonHandler.findButtonWithName("grandma").count >= 1;

        bool e = upgrade.basePrice.Length < 20;         // this shouldn't exist. temporary fix. the numbers get too big. also seen above.

        return((a || b || c || d) && e);
    }
 void Start()
 {
     foreach (BuildingProfile building in GlobalData.BuildingProfiles)
     {
         GameObject button = Instantiate(BuildingButtonPrefab, transform);
         button.transform.Find("Name").GetComponent <Text>().text = building.Name;
         Text text = button.transform.Find("Required").GetComponent <Text>();
         text.text = "";
         foreach (Resource resource in building.InstallationResources)
         {
             text.text += "\r\n" + resource.Type.ToString() + ": " + resource.Count;
         }
         button.transform.GetComponent <Image>().sprite = building.Icon;
         BuildingButton buildingButton = button.GetComponent <BuildingButton>();
         buildingButton.Set(building, BuildingsParent);
     }
 }
示例#25
0
    //After a valid building type and cost have been validated, set the in-game build state
    private void StartBuildingPurchase(BuildingType buildType, BuildingButton buildingbutton)
    {
        //Flag on
        buildInGame.isOn = true;

        //Set the color of the building button, since it was valid
        buildingbutton.SetButtonColor(color_ActiveBuildingButton);

        //Set the current building which the player is attempting to place and purchase
        buildInGame.currentBuilding = buildType;

        //Turn on the right click quad, so that cancel building will be processed
        GO_rightClickQuad.SetActive(true);

        //Spawn the transparent building on the current tile, if valid
        SpawnTransparentBuilding_onCurrentTile();
    }
示例#26
0
    private void Update()
    {
        if (BuildingButton.IsSelectingBuilding())
        {
            return;
        }

        if (Mouse.current.leftButton.wasPressedThisFrame)
        {
            StartSelectionArea();
        }
        else if (Mouse.current.leftButton.wasReleasedThisFrame)
        {
            FinalizeSelection();
        }
        else if (Mouse.current.leftButton.isPressed)
        {
            UpdateSelectionArea();
        }
    }
示例#27
0
 public void SetResourceColor(BuildingButton buildingButton)
 {
     if (GameManager.Instance.ClickedBuildingBtn == null)
     {
         for (int i = 0; i < buildingButton.Price.Length; i++)
         {
             if (buildingButton.Price[i] != 0)
             {
                 if (resourceValue[i] >= buildingButton.Price[i])
                 {
                     resourceText[i].color = enoughResourceColor;
                 }
                 else
                 {
                     resourceText[i].color = notEnoughResourceColor;
                 }
             }
         }
     }
 }
示例#28
0
    /// <summary>
    /// Add building button to the scrollview
    /// </summary>
    private void AddBuildingButtons()
    {
        if (scrollbarVertical.verticalScrollbar.value == 0)
        {
            scrollbarVertical.verticalScrollbar.value = 0.0000001f;
            int a = 0;
            while (a < 7)
            {
                for (int i = 0; i < itemList.Count; i++)
                {
                    Item       item      = itemList[i];
                    GameObject newButton = buttonObjectPool.GetObject();
                    newButton.transform.SetParent(contentPanel);

                    BuildingButton buildingButton = newButton.GetComponent <BuildingButton>();
                    buildingButton.Setup(item);
                }
                a++;
            }
        }
    }
示例#29
0
 private void Awake()
 {
     instance = this;
 }
示例#30
0
        public static void RemoveGui()
        {
            isGuiRunning = false;
            if (parentGuiView != null)
            {
                parentGuiView = null;
                UnityEngine.Object.Destroy(ecnomicUI);
                UnityEngine.Object.Destroy(realCityUI);
                UnityEngine.Object.Destroy(politicsUI);
                UnityEngine.Object.Destroy(EcButton);
                UnityEngine.Object.Destroy(RcButton);
                UnityEngine.Object.Destroy(PlButton);
                ecnomicUI  = null;
                realCityUI = null;
                politicsUI = null;
                EcButton   = null;
                RcButton   = null;
                PlButton   = null;
            }

            if (BButton != null)
            {
                UnityEngine.Object.Destroy(BButton);
                BButton = null;
            }

            if (PBButton != null)
            {
                UnityEngine.Object.Destroy(PBButton);
                PBButton = null;
            }

            if (buildingWindowGameObject != null)
            {
                UnityEngine.Object.Destroy(buildingWindowGameObject);
            }
            //remove HumanUI
            if (humanUI != null)
            {
                if (humanUI.parent != null)
                {
                    humanUI.parent.eventVisibilityChanged -= HumanInfo_eventVisibilityChanged;
                }
            }
            if (HumanWindowGameObject != null)
            {
                UnityEngine.Object.Destroy(HumanWindowGameObject);
            }
            //remove TouristUI
            if (touristUI != null)
            {
                if (touristUI.parent != null)
                {
                    touristUI.parent.eventVisibilityChanged -= TouristInfo_eventVisibilityChanged;
                }
            }

            if (TouristWindowGameObject != null)
            {
                UnityEngine.Object.Destroy(TouristWindowGameObject);
            }

            if (!isTransportLinesManagerRunning)
            {
                if (PBLUI != null)
                {
                    if (PBLUI.parent != null)
                    {
                        PBLUI.parent.eventVisibilityChanged -= PBLInfo_eventVisibilityChanged;
                    }
                }

                if (PBLWindowGameObject != null)
                {
                    UnityEngine.Object.Destroy(PBLWindowGameObject);
                }
                PBLUI._initialized = false;
            }
        }