gameServer/Actions.hs
changeset 1823 1938ef375350
parent 1813 cfe1481e0247
child 1827 3bb5e22b7f9a
equal deleted inserted replaced
1822:be7105bc727d 1823:1938ef375350
    94 	writeChan (sendChan $ clients ! clID) ["BYE"]
    94 	writeChan (sendChan $ clients ! clID) ["BYE"]
    95 	return (
    95 	return (
    96 			0,
    96 			0,
    97 			serverInfo,
    97 			serverInfo,
    98 			delete clID clients,
    98 			delete clID clients,
    99 			adjust (\r -> r{playersIDs = IntSet.delete clID (playersIDs r), playersIn = (playersIn r) - 1}) rID rooms
    99 			adjust (\r -> r{
       
   100 					playersIDs = IntSet.delete clID (playersIDs r),
       
   101 					playersIn = (playersIn r) - 1,
       
   102 					readyPlayers = if isReady client then readyPlayers r - 1 else readyPlayers r
       
   103 					}) rID rooms
   100 			)
   104 			)
   101 	where
   105 	where
   102 		client = clients ! clID
   106 		client = clients ! clID
   103 		rID = roomID client
   107 		rID = roomID client
   104 		clientNick = nick client
   108 		clientNick = nick client
   150 	when (rID /= 0) $ (processAction (clID, serverInfo, clients, rooms) $ AnswerOthersInRoom ["LEFT", nick client, "part"]) >> return ()
   154 	when (rID /= 0) $ (processAction (clID, serverInfo, clients, rooms) $ AnswerOthersInRoom ["LEFT", nick client, "part"]) >> return ()
   151 	return (
   155 	return (
   152 		clID,
   156 		clID,
   153 		serverInfo,
   157 		serverInfo,
   154 		adjust (\cl -> cl{roomID = 0}) clID clients,
   158 		adjust (\cl -> cl{roomID = 0}) clID clients,
   155 		adjust (\r -> r{playersIDs = IntSet.delete clID (playersIDs r), playersIn = (playersIn r) - 1}) rID $
   159 		adjust (\r -> r{
       
   160 				playersIDs = IntSet.delete clID (playersIDs r),
       
   161 				playersIn = (playersIn r) - 1,
       
   162 				readyPlayers = if isReady client then readyPlayers r - 1 else readyPlayers r
       
   163 				}) rID $
   156 			adjust (\r -> r{playersIDs = IntSet.insert clID (playersIDs r)}) 0 rooms
   164 			adjust (\r -> r{playersIDs = IntSet.insert clID (playersIDs r)}) 0 rooms
   157 		)
   165 		)
   158 	where
   166 	where
   159 		rID = roomID client
   167 		rID = roomID client
   160 		client = clients ! clID
   168 		client = clients ! clID