Exemplo n.º 1
0
    private float AddBuildingToMenu(int index, float[] buildingCostArray, float lastAnchorMaxY)
    {
        BuildMenu.buildingCostDick.Add(buildingsNameArray[index], new Dictionary <ResourceType, float> ());
        Button buildingButton = Instantiate <Button> (originalBuildingButton);

        buildingButton.GetComponentInChildren <Text> ().text = buildingsNameArray[index];
        buildingButton.name = buildingsNameArray [index];
        float thisAnchorMaxY = lastAnchorMaxY - buildingInfoHeight * menuEditorHeight / menuHeight;
//		float thisAnchorMaxY = lastAnchorMaxY - 0.1f * Screen.height * 2 / menuHeight;
        RectTransform buttonRectTransform = buildingButton.GetComponent <RectTransform> ();

        SetDisplayRectTransforms(buttonRectTransform);
        buttonRectTransform.anchorMin = new Vector2(insetX, thisAnchorMaxY - buildingButtonHeight * menuEditorHeight / menuHeight);
        buttonRectTransform.anchorMax = new Vector2(insetX + buildingButtonWidth, thisAnchorMaxY);
        for (int i = 0; i < buildingCostArray.Length; i++)
        {
            if (buildingCostArray[i] > 0)
            {
                BuildMenu.buildingCostDick[buildingsNameArray[index]].Add(GameManager.resourceTypeArraytoDick[i], buildingCostArray[i]);
            }
        }
        Image firstResImage = Instantiate <Image> (originalResImage);
        Text  firstResText  = Instantiate <Text> (originalResText);

        Text[] resTexts = SetCostDisplay(buildingsNameArray[index], firstResImage, firstResText, thisAnchorMaxY);
        buildingButton.onClick.AddListener(delegate { buildMenu.StartPlacement(buildingsNameArray[index], resTexts); });
        buildingsTextDick.Add(buildingButton, resTexts);
        buildingEraDick.Add(buildingButton, buildingArray [index].buildingEra);
        if (buildingEraDick[buildingButton] != Eras.StoneAge)
        {
            buildingButton.interactable = false;
        }
        return(thisAnchorMaxY);
    }
Exemplo n.º 2
0
    //	private float resWidth = 0.30f;

    public void SetSize(BuildMenu thisBuildMenu)
    {
        buildMenu         = thisBuildMenu;
        buildingsTextDick = new Dictionary <Button, Text[]> ();
        // includes strat points
        List <string> allBuildingNamesList = GameManager.GetSpeciesWOTList(GameManager.HumanPlayer.species, WorldObjectType.Building);
        List <string> buildingNamesList    = new List <string>();

        foreach (string buildingName in allBuildingNamesList)
        {
            StrategicPoint stratPoint = GameManager.GetGameObject(buildingName).GetComponent <StrategicPoint>();
            if (stratPoint == null || (stratPoint as Monument == null && stratPoint.originalSpecies != Species.NonPlayer))
            {
                buildingNamesList.Add(buildingName);
            }
        }
        buildingArray = new Building [buildingNamesList.Count];
        // sort the buildings by era
        for (int i = 0; i < buildingNamesList.Count; i++)
        {
            buildingArray[i] = GameManager.GetGameObject(buildingNamesList[i]).GetComponent <Building>();
        }
        Array.Sort(buildingArray, delegate(Building building1, Building building2) {
            return(GameManager.eraOrderDick[building1.buildingEra].CompareTo(GameManager.eraOrderDick[building2.buildingEra]));
        });
        buildingsNameArray = new string[buildingArray.Length];
        for (int i = 0; i < buildingArray.Length; i++)
        {
            buildingsNameArray[i] = buildingArray[i].name;
        }
        menuEditorHeight   = Screen.height * 2;
        buildingInfoHeight = insetY + (originalBuildingButton.GetComponent <RectTransform> ().anchorMax.y - originalResImage.rectTransform.anchorMin.y);
        menuHeight         = buildingsNameArray.Length * buildingInfoHeight * menuEditorHeight;
        RectTransform rectTransform = GetComponent <RectTransform> ();

        rectTransform.sizeDelta = new Vector2(Screen.width * (MainPanel.rectTransform.anchorMax.x - MainPanel.rectTransform.anchorMin.x), menuHeight);
        // Setting the first buildingButton and shit
        float[] firstBuildingCostArray = GameManager.GetGameObject(buildingsNameArray [0]).GetComponent <Building> ().buildingCostArray;
        BuildMenu.buildingCostDick.Add(buildingsNameArray[0], new Dictionary <ResourceType, float> ());
        for (int i = 0; i < firstBuildingCostArray.Length; i++)
        {
            if (firstBuildingCostArray[i] > 0)
            {
                BuildMenu.buildingCostDick[buildingsNameArray[0]].Add(GameManager.resourceTypeArraytoDick[i], firstBuildingCostArray[i]);
            }
        }
        buildingEraDick = new Dictionary <Button, Eras> ();
        originalBuildingButton.GetComponentInChildren <Text> ().text = buildingsNameArray[0];
        originalBuildingButton.name = buildingsNameArray [0];
        RectTransform obRectTransform = originalBuildingButton.GetComponent <RectTransform> ();

        obRectTransform.anchorMax = new Vector2(insetX + buildingButtonWidth, 1f - insetY * menuEditorHeight / menuHeight);
        obRectTransform.anchorMin = new Vector2(insetX, 1f - (insetY + buildingButtonHeight) * menuEditorHeight / menuHeight);
        float lastAnchorMaxY = obRectTransform.anchorMax.y;

        Text[] obTexts = SetCostDisplay(buildingsNameArray[0], originalResImage, originalResText, lastAnchorMaxY);
        originalBuildingButton.onClick.AddListener(delegate { buildMenu.StartPlacement(buildingsNameArray[0], obTexts); });
        buildingsTextDick.Add(originalBuildingButton, obTexts);
        buildingEraDick.Add(originalBuildingButton, buildingArray [0].buildingEra);
        // Andd the rest
        for (int i = 1; i < buildingsNameArray.Length; i++)
        {
            lastAnchorMaxY = AddBuildingToMenu(i, GameManager.GetGameObject(buildingsNameArray [i]).GetComponent <Building> ().buildingCostArray, lastAnchorMaxY);
        }
    }