|
- module Preview where
-
- import Data.List
- import Data.Maybe
- import Packs
- import State
- import Timestamp
- import Format
- import Utils
-
- type Preview = ([DataPack], [DataPack], Maybe BigBox, Maybe BigBox)
-
- extractPreview :: Maybe Preview -> ([DataPack],[DataPack],Maybe BigBox, Maybe BigBox)
- extractPreview Nothing = ([],[],Nothing, Nothing)
- extractPreview (Just (i,o,ib,ob)) = (i,o,ib,ob)
-
- diffRot :: [InRot] -> [InRot] -> ([DataPack], [DataPack])
- diffRot c f = (packIn, packOut)
- where
- packIn = map clean $ changes f c
- packOut = map clean $ changes c f
- clean = (\(Ir n) -> n)
-
- getPreview :: Timestamp -> Maybe Preview
- getPreview n
- | isPreviewSeason n = Just $ (fst packsChange, snd packsChange, head b, head (rotate 1 b))
- | otherwise = Nothing
- where
- ((i,o), (Bq b), r) = currentFormat n
- packsChange = diffRot i ni
- ((ni,_),_,_) = nextFormat ((i,o),(Bq b),r)
-
- printLegal :: State -> [String]
- printLegal ((i,o),(Bq b),_) = [
- "===Evergreen:\nRevised Core Set x3"
- , "===Deluxes :\n" ++ (intercalate "\n" $ sort $ map show $ catMaybes (tail b))
- , "===Datapacks:\n" ++ (intercalate "\n" $ sort $ map show $ map (\(Ir n) -> n) i)
- ]
-
- printPreview :: Maybe Preview -> [String]
- printPreview (Just (i, o, bi, bo)) = [
- "===Upcoming Changes:"
- , ("===In :\n" ++ (intercalate "\n" $ (map show i) ++ (map show cbi)))
- , ("===Out:\n" ++ (intercalate "\n" $ (map show o) ++ (map show cbo)))
- ]
- where
- rmEmp = filter (/="")
- cbi = catMaybes [bi]
- cbo = catMaybes [bo]
- cleanDP = map (\(Or n _) -> n)
- printPreview Nothing = []
-
|