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

namespace Rothko.Interfaces.Services
{
	public interface IUnitMovementService
	{
		List<IPlottable> GetMovementRange<TUnit, TTile, TMovementCost>(
			TUnit unit, List<TTile> tiles, List<TMovementCost> movementCosts)
			where TUnit : IUnitable
			where TTile : ITileable, new()
			where TMovementCost : ITerrainCost;
	}
}

