RogueSharp Versions Save

A .NET Standard class library providing map generation, path-finding, and field-of-view utilities frequently used in roguelikes or 2D tile based games. Inspired by libtcod

v5.0-pre3

3 years ago

New features:

  • Map and cell classes now have generic versions that are easier to inherit from.
  • Improved performance of Pathfinder class.

Breaking changes:

  • Removed IsInFov from Map and Cell classes (use FieldOfView class instead)
  • Removed IsExplored from Map and Cell classes

v5.0-pre

4 years ago

New features:

  • Weighted pool class for randomly picking items.
  • Pathfinder class caches graph and dijkstra result for speedier performance with multiple lookups.
  • Added Map.GetCellsInRectangle method. (Thanks to Andre Odendaal)

Breaking changes:

  • Bug fix - Change Map.Create to be generic, returning the same map type as the creation strategy's map. (Thanks to Andre Odendaal)
  • Bug fix - Update Map Save and Restore methods to track IsExplored status. (Thanks to Andre Odendaal)
  • Map.Initialize is virtual so that it can be overridden in derived classes
  • Map.Clone is now virtual and generic so that it can be overridden in derived classes.

v4.2

5 years ago
  • Bug fix: EdgeWeightedDigraph updates NumberOfEdges property when new edge is added
  • Fix spelling mistakes in comments
  • Add unit tests for algorithms that did not have code coverage
  • Add .editorconfig

v4.1

5 years ago

Bug fix - selecting border cells along edge of map no longer selects center cell

v4.0

5 years ago

New features:

  • Optimized cave map generator (Thanks to James Neal)
  • Optimized DijkstraShortestPath.FindPath method (Thanks to flend for this update)
  • Multiple new "Try" methods which return null instead of throwing exceptions
  • Diagonal paths can be found by using new constructors on GoalMap and PathFinder
  • Map.GetCellsInCircle and Map.GetBorderCellsInCircle to get cells within a circular radius

Breaking changes:

  • Point and Rectangle classes are now structs (Thanks to James Neal)
  • Updated all appropriate references to Cell with ICell (Thanks to Courtney Strachan)
  • Map.ComputeFov and Map.AppendFov both return a ReadonlyCollection of ICell instead void
  • The Path returned from PathFinder.ShortestPath now includes the source cell in the returned Path
  • Map.GetCellsInArea was renamed to Map.GetCellsInSquare
  • Map.GetCellsInRadius was renamed to Map.GetCellsInDiamond