equal
deleted
inserted
replaced
34 | SendServerMessage |
34 | SendServerMessage |
35 | SendServerVars |
35 | SendServerVars |
36 | MoveToRoom RoomIndex |
36 | MoveToRoom RoomIndex |
37 | MoveToLobby B.ByteString |
37 | MoveToLobby B.ByteString |
38 | RemoveTeam B.ByteString |
38 | RemoveTeam B.ByteString |
|
39 | SendTeamRemovalMessage B.ByteString |
39 | RemoveRoom |
40 | RemoveRoom |
40 | UnreadyRoomClients |
41 | UnreadyRoomClients |
41 | JoinLobby |
42 | JoinLobby |
42 | ProtocolError B.ByteString |
43 | ProtocolError B.ByteString |
43 | Warning B.ByteString |
44 | Warning B.ByteString |
302 processAction $ ModifyRoom (\r -> r{readyPlayers = 0}) |
303 processAction $ ModifyRoom (\r -> r{readyPlayers = 0}) |
303 where |
304 where |
304 notReadyMessage p nicks = if p < 38 then "NOT_READY" : nicks else "CLIENT_FLAGS" : "-r" : nicks |
305 notReadyMessage p nicks = if p < 38 then "NOT_READY" : nicks else "CLIENT_FLAGS" : "-r" : nicks |
305 |
306 |
306 |
307 |
|
308 processAction (SendTeamRemovalMessage teamName) = do |
|
309 chans <- othersChans |
|
310 mapM_ processAction [ |
|
311 AnswerClients chans ["EM", rmTeamMsg], |
|
312 ModifyRoom (\r -> r{ |
|
313 gameInfo = liftM (\g -> g{ |
|
314 roundMsgs = roundMsgs g Seq.|> rmTeamMsg |
|
315 }) $ gameInfo r |
|
316 }) |
|
317 ] |
|
318 where |
|
319 rmTeamMsg = toEngineMsg $ 'F' `B.cons` teamName |
|
320 |
|
321 |
307 processAction (RemoveTeam teamName) = do |
322 processAction (RemoveTeam teamName) = do |
308 rnc <- gets roomsClients |
323 rnc <- gets roomsClients |
309 ri <- clientRoomA |
324 ri <- clientRoomA |
310 inGame <- io $ room'sM rnc (isJust . gameInfo) ri |
325 inGame <- io $ room'sM rnc (isJust . gameInfo) ri |
311 chans <- othersChans |
326 chans <- othersChans |
314 AnswerClients chans ["REMOVE_TEAM", teamName], |
329 AnswerClients chans ["REMOVE_TEAM", teamName], |
315 ModifyRoom (\r -> r{teams = Prelude.filter (\t -> teamName /= teamname t) $ teams r}) |
330 ModifyRoom (\r -> r{teams = Prelude.filter (\t -> teamName /= teamname t) $ teams r}) |
316 ] |
331 ] |
317 else |
332 else |
318 mapM_ processAction [ |
333 mapM_ processAction [ |
319 AnswerClients chans ["EM", rmTeamMsg], |
334 SendTeamRemovalMessage teamName, |
320 ModifyRoom (\r -> r{ |
335 ModifyRoom (\r -> r{ |
321 teams = Prelude.filter (\t -> teamName /= teamname t) $ teams r, |
336 teams = Prelude.filter (\t -> teamName /= teamname t) $ teams r, |
322 gameInfo = liftM (\g -> g{ |
337 gameInfo = liftM (\g -> g{ |
323 leftTeams = teamName : leftTeams g, |
338 leftTeams = teamName : leftTeams g |
324 roundMsgs = roundMsgs g Seq.|> rmTeamMsg |
|
325 }) $ gameInfo r |
339 }) $ gameInfo r |
326 }) |
340 }) |
327 ] |
341 ] |
328 where |
|
329 rmTeamMsg = toEngineMsg $ 'F' `B.cons` teamName |
|
330 |
342 |
331 |
343 |
332 processAction (RemoveClientTeams clId) = do |
344 processAction (RemoveClientTeams clId) = do |
333 rnc <- gets roomsClients |
345 rnc <- gets roomsClients |
334 |
346 |