using System;
using System.Linq;
using System.Collections.Generic;
using Rothko.Model;
using Rothko.Interfaces.Components;

namespace Rothko.Interfaces.Services
{
	public interface IFogOfWarService
	{
		void ComputeFogOfWar<F, U, T, V>(
												   List<F> fogTiles, 
		                                           List<U> units, 
		                                           List<T> tiles, 
		                                           List<V> visionCosts)
				where F : IFogTile, new()
				where U : IUnitable
				where T : ITileable
				where V : IVisionCost;
	}
}


