module PlayTak.Types where import Control.Concurrent import Text.Parsec import Tak data PlayTakClient = PlayTakClient { clientChanCmd :: Chan String } type Username = String type Password = String type Size = Int type GameNumber = Int type Time = Int data PlayTakMsg = Welcome | PleaseLogin | LoggedIn Username | SeekNew GameNumber Username Size Time | SeekRemove GameNumber Username Size Time | Online Username | Shout Username String | GameStart GameNumber Size Username Username Colour | PlayMsg GameNumber Play | Time GameNumber Time Time | Over GameNumber Score Score | OfferDraw GameNumber | RemoveDraw GameNumber | Resign GameNumber | RequestUndo GameNumber | RemoveUndo GameNumber | Undo GameNumber | Abandon GameNumber | Message String | ErrorMsg String | NOK | OK | GameListAdd GameNumber Username Username Size Time Int Int Username | GameListRemove GameNumber Username Username Size Time Int Int Username | ParseFailed String ParseError deriving Show data Score = RoadScore | FlatScore | DrawScore | ZeroScore | AbandonScore deriving Show