public IEnumerable <UsePortal> GetAvailablePortalActions(LocationId atLocationId, Models.World world)
 {
     foreach (var paths in AvailablePathsFactory.GetAvailablePaths(atLocationId, world))
     {
         foreach (var path in paths)
         {
             if (path.Type == Models.PathType.Portal)
             {
                 yield return(new UsePortal(path.Id));
             }
         }
     }
 }
        public IEnumerable <Move> GetAvailableMovementActions(LocationId atLocationId, Models.World world)
        {
            foreach (var paths in AvailablePathsFactory.GetAvailablePaths(atLocationId, world))
            {
                var pathDistance = 1;
                foreach (var path in paths)
                {
                    if (path.Type == Models.PathType.West ||
                        path.Type == Models.PathType.East ||
                        path.Type == Models.PathType.North ||
                        path.Type == Models.PathType.South)
                    {
                        yield return(new Move(Convert(path.Type), pathDistance));
                    }

                    pathDistance++;
                }
            }
        }