private void HandleAttackCommand(IControllable current)
{
var currentAsFighter = current as IFighter;
if (currentAsFighter != null)
{
List<WorldObject> availableTargets = new List<WorldObject>();
foreach (var obj in this.allObjects)
{
if (obj.Position == current.Position)
{
availableTargets.Add(obj);
}
}
int targetIndex = currentAsFighter.GetTargetIndex(availableTargets);
if (targetIndex != -1)
{
this.HandleBattle(currentAsFighter, availableTargets[targetIndex]);
}
else
{
Console.WriteLine("No targets to attack at {0}'s position", current);
}
}
else
{
Console.WriteLine("{0} can't do that", current);
}
}