/// <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); } } }
/// <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); }