Post-Cancellation, Pre-Nisei Netrunner Rotation
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

53 rindas
1.6KB

  1. module Preview where
  2. import Data.List
  3. import Data.Maybe
  4. import Packs
  5. import State
  6. import Timestamp
  7. import Format
  8. import Utils
  9. type Preview = ([DataPack], [DataPack], Maybe BigBox, Maybe BigBox)
  10. extractPreview :: Maybe Preview -> ([DataPack],[DataPack],Maybe BigBox, Maybe BigBox)
  11. extractPreview Nothing = ([],[],Nothing, Nothing)
  12. extractPreview (Just (i,o,ib,ob)) = (i,o,ib,ob)
  13. diffRot :: [InRot] -> [InRot] -> ([DataPack], [DataPack])
  14. diffRot c f = (packIn, packOut)
  15. where
  16. packIn = map clean $ changes f c
  17. packOut = map clean $ changes c f
  18. clean = (\(Ir n) -> n)
  19. getPreview :: Timestamp -> Maybe Preview
  20. getPreview n
  21. | isPreviewSeason n = Just $ (fst packsChange, snd packsChange, head b, head (rotate 1 b))
  22. | otherwise = Nothing
  23. where
  24. ((i,o), (Bq b), r) = currentFormat n
  25. packsChange = diffRot i ni
  26. ((ni,_),_,_) = nextFormat ((i,o),(Bq b),r)
  27. printLegal :: State -> [String]
  28. printLegal ((i,o),(Bq b),_) = [
  29. "===Evergreen:\nRevised Core Set x3"
  30. , "===Deluxes :\n" ++ (intercalate "\n" $ sort $ map show $ catMaybes (tail b))
  31. , "===Datapacks:\n" ++ (intercalate "\n" $ sort $ map show $ map (\(Ir n) -> n) i)
  32. ]
  33. printPreview :: Maybe Preview -> [String]
  34. printPreview (Just (i, o, bi, bo)) = [
  35. "===Upcoming Changes:"
  36. , ("===In :\n" ++ (intercalate "\n" $ (map show i) ++ (map show cbi)))
  37. , ("===Out:\n" ++ (intercalate "\n" $ (map show o) ++ (map show cbo)))
  38. ]
  39. where
  40. rmEmp = filter (/="")
  41. cbi = catMaybes [bi]
  42. cbo = catMaybes [bo]
  43. cleanDP = map (\(Or n _) -> n)
  44. printPreview Nothing = []