Exemple #1
0
    /// <summary>
    /// This generates the interactive tile color
    /// </summary>
    private void GenerateInteractiveTileColor()
    {
        int   _pick           = Random.Range(0, interactiveTile.Count);
        Color _generatorColor = generatorTile.GetComponent <Image>().color;

        for (int i = 0; i < interactiveTile.Count; i++)
        {
            InteractiveTile _tile = interactiveTile[i];

            if (i == _pick)
            {
                _tile.SetColor(_generatorColor);
            }
            else
            {
                Color _mixColor = new Color();

                float _min      = .6f;
                float _max      = .7f;
                float _divider  = 10.0f;
                float _r        = Random.Range(_min, _max) + GetColorValue((float)i / _divider);
                float _g        = Random.Range(_min, _max) + GetColorValue((float)i / _divider);
                float _b        = Random.Range(_min, _max) + GetColorValue((float)i / _divider);
                Color _genColor = TileColor[Random.Range(0, TileColor.Length - 1)];


                _mixColor.r = _genColor.r;
                _mixColor.g = _genColor.g;
                _mixColor.b = _genColor.b;
                _mixColor.a = 1.0f;
                _mixColor   = NormalizeColor(_mixColor);
                _tile.SetColor(_mixColor);
            }
        }
    }
Exemple #2
0
        /// <summary>
        /// Maybe we should use Reflections at some point. #justsayin
        /// </summary>
        /// <param name="interactive"></param>
        /// <param name="animation"></param>
        /// <param name="properties"></param>
        /// <param name="position"></param>
        /// <returns></returns>
        public static BasicTile LoadTile(bool interactive, bool animation, TiledProperties properties, Index2 position)
        {
            BasicTile result = null;

            if (interactive && animation)
            {
                switch (properties.GetProperty("Type"))
                {
                case "CellDoor":
                //result = new CellDoor("cellDoor", position);
                //break;
                case "Door":
                    result = new DoorTile("door", position);
                    break;

                default:
                    result = new InteractiveTile("door", position);
                    break;
                }
            }
            else if (animation && !interactive)
            {
                result = new AnimatedTile("flower", position);
            }
            else if (!interactive && !animation)
            {
                result = new BasicTile("dirt", position);
            }
            else
            {
                throw new NotSupportedException("No Tile should be interacitve but not animated");
            }
            result.AddProperties(properties);
            return(result);
        }