示例#1
0
    void Start()
    {
        iconContol = FindObjectOfType<IconController>();
        hex = GetComponentInParent<Hex>();
        icon = GetComponent<Image>();

        hexVeg = hex.GetVegetation();
        prevVeg = hexVeg;

        icon.color = iconContol.GetHexVegColor(hexVeg);
    }
    private void UpdatePanel()
    {
        if(MapController.hexSelected){
            targetHex = MapController.hexSelected.GetComponent<Hex>();

            Hex.Biome hexBiome = targetHex.GetBiome();
            Hex.BiomeType hexbiomeType = targetHex.GetBiomeType();
            Hex.Geography hexGeo = targetHex.GetGeography();
            Hex.Vegetation hexVeg = targetHex.GetVegetation();
            int hexClimate = (int)targetHex.GetClimateVal();
            int hexTemp = (int)targetHex.GetTempVal();

            nameElements[0].text = hexBiome.ToString();
            nameElements[2].text = hexGeo.ToString();
            nameElements[8].text = hexVeg.ToString();

            icons[0].sprite = iconControl.GetBiomeTypeIcon(hexbiomeType);
            icons[0].color = uiControl.GetBiomeTypeSpriteColor(hexbiomeType);
            icons[1].sprite = uiControl.GetGeoSprite(hexGeo);
            icons[1].color = uiControl.GetGeoSpriteColor(hexGeo);
            icons[2].color = iconControl.GetHexVegColor(hexVeg);

            if (!critter)
            {
                critter = player.GetCritter();

                if (!critter)
                {
                    critter = GameController.CritterList[0];
                }
            }

            if (critter){
                values[0] = critter.GetBiomePref((Adaptation.BiomeAdaptition)hexbiomeType);
                values[1] = critter.GetGeoPref((Adaptation.GeoAdaptation)hexGeo);
                values[2] = critter.GetTempPref(hexTemp);
                values[3] = critter.GetClimatePref(hexClimate);

                for(int i = 0; i < 4; i++){
                    Text scoreText = nameElements[(i * 2 + 1)];

                    if(values[i] > 0){
                        scoreText.color = goodScore;
                        scoreText.text = "+" + values[i].ToString() + "%";
                    }
                    else if(values[i] < 0){
                        scoreText.color = badScore;
                        scoreText.text = values[i].ToString() + "%";
                    }
                    else{
                        scoreText.color = zeroScore;
                        scoreText.text = values[i].ToString() + "%";
                    }
                }

                UpdateSliders();
            }

            if (!critter.GetIsPlayer())
            {
                critter = null;
            }
        }
    }