public void Update(StateTile[,] state) { foreach (var coord in coords) { Tile tile = map[coord.x, coord.y]; StateTile s = state[coord.y, coord.x]; bool canChange = tile.terrain == StateTile.Unseen || tile.terrain == StateTile.MyHill || tile.terrain == StateTile.TheirHill; // // Update unknown terrain. Either it's water or land. If there's // a special object, then it is also land. // if (canChange && s != StateTile.Unseen) { tile.terrain = GetTerrainEquivalent(s); } tile.objects = s; map[coord.x, coord.y] = tile; } }
private StateTile GetTerrainEquivalent(StateTile tile) { switch (tile) { case StateTile.Water: return(StateTile.Water); case StateTile.TheirHill: return(StateTile.TheirHill); case StateTile.MyHill: return(StateTile.MyHill); default: return(StateTile.Land); } }