예제 #1
0
    private void AssignAttributes()
    {
        SpriteRenderer spriteR = gameObject.GetComponent <SpriteRenderer>();
        Hex            hex     = gameObject.GetComponent <Hex>();

        DataTypes.HexType hexType = gameObject.GetComponent <Hex>().getHexType();

        HexBuilderData hexBuilderData = GetHexBuilderDataFrom(hexType);

        // Change this to change sprite based on health
        if (hexBuilderData != null)
        {
            spriteR.sprite = hexBuilderData.sprite;

            if (DataTypes.IsBiome(hex.getHexType()))
            {
                //Trying new artstyle
                healthSprite.sprite = getHexRedoneInnerSprite(hex.getHealth());
                spriteR.sprite      = getHexRedoneOuterSprite(hex.getHealth());

                healthSprite.color = DataTypes.GetAccentColorFrom(DataTypes.GetBiomeFrom(hex.getHexType()));

                if (!overrideColor)
                {
                    spriteR.color = DataTypes.GetBackgroundColorFrom(DataTypes.GetBiomeFrom(hex.getHexType()));
                }

                healthSprite.enabled = true;
                spriteR.material     = basic;

                if (DataTypes.GetBiomeFrom(hex.getHexType()) == DataTypes.BiomeType.Fire)
                {
                    hex.transform.GetChild(0).GetComponent <SpriteRenderer>().color = Colors.FireShadowColor;
                }
                else if (DataTypes.GetBiomeFrom(hex.getHexType()) == DataTypes.BiomeType.Poison)
                {
                    hex.transform.GetChild(0).GetComponent <SpriteRenderer>().color = Colors.PoisonShadowColor;
                }
            }
            else if (hex.getHexType() == DataTypes.HexType.HighPointGrowth)
            {
                spriteR.color    = DataTypes.GetAccentColorFrom(DataTypes.BiomeType.Growth);
                spriteR.material = crystal;
            }
            else
            {
                healthSprite.enabled = false;
                spriteR.material     = crystal;
            }

            if (hexBuilderData.pointValue > -1)
            {
                hex.setPointValue(hexBuilderData.pointValue);
            }

            if (hexBuilderData.onBreak != null)
            {
                hex.onBreak = hexBuilderData.onBreak;
            }
        }
        else
        {
            spriteR.sprite = defaultHexSprite;
        }

        needsUpdate = false;
    }