private static TileCoords GetFacingWhenEnteringPentagon(TileCoords currentHex, TileCoords newPenta, PentagonTraversalStrategy strategy) { if (strategy == PentagonTraversalStrategy.LeanLeft) { return(HexMapHelper.GetTileInPentaDirection(newPenta, currentHex, PentaDirection.BackwardRight)); } else { return(currentHex); //Face backwards as default } }
private static TileCoords GetNewTileWhenLeavingPentagon(TileCoords currentPenta, TileCoords currentFacing, HexDirection hexDirection, PentagonTraversalStrategy strategy) { PentaDirection pentaDirection = PentaDirection.Forward;//default if (strategy == PentagonTraversalStrategy.LeanLeft) { switch (hexDirection) { case HexDirection.Forward: pentaDirection = PentaDirection.Forward; break; case HexDirection.ForwardRight: pentaDirection = PentaDirection.ForwardRight; break; case HexDirection.BackwardRight: pentaDirection = PentaDirection.BackwardRight; break; case HexDirection.Backward: case HexDirection.BackwardLeft: pentaDirection = PentaDirection.BackwardLeft; break; case HexDirection.ForwardLeft: pentaDirection = PentaDirection.ForwardLeft; break; } } else { pentaDirection = PentaDirection.Forward; } return(HexMapHelper.GetTileInPentaDirection(currentPenta, currentFacing, pentaDirection)); }