equal
deleted
inserted
replaced
312 ri <- clientRoomA |
312 ri <- clientRoomA |
313 thisRoomChans <- liftM (map sendChan) $ roomClientsS ri |
313 thisRoomChans <- liftM (map sendChan) $ roomClientsS ri |
314 clNick <- client's nick |
314 clNick <- client's nick |
315 answerRemovedTeams <- io $ |
315 answerRemovedTeams <- io $ |
316 room'sM rnc (map (\t -> AnswerClients thisRoomChans ["REMOVE_TEAM", t]) . leftTeams . fromJust . gameInfo) ri |
316 room'sM rnc (map (\t -> AnswerClients thisRoomChans ["REMOVE_TEAM", t]) . leftTeams . fromJust . gameInfo) ri |
317 |
317 |
318 mapM_ processAction $ SaveReplay |
318 mapM_ processAction $ |
|
319 SaveReplay |
319 : ModifyRoom |
320 : ModifyRoom |
320 (\r -> r{ |
321 (\r -> r{ |
321 gameInfo = Nothing, |
322 gameInfo = Nothing, |
322 readyPlayers = 0 |
323 readyPlayers = 0 |
323 } |
324 } |
330 chans <- othersChans |
331 chans <- othersChans |
331 mapM_ processAction [ |
332 mapM_ processAction [ |
332 AnswerClients chans ["EM", rmTeamMsg], |
333 AnswerClients chans ["EM", rmTeamMsg], |
333 ModifyRoom (\r -> r{ |
334 ModifyRoom (\r -> r{ |
334 gameInfo = liftM (\g -> g{ |
335 gameInfo = liftM (\g -> g{ |
335 teamsInGameNumber = teamsInGameNumber g - 1 |
336 teamsInGameNumber = teamsInGameNumber g - 1 |
336 , roundMsgs = roundMsgs g Seq.|> rmTeamMsg |
337 , roundMsgs = roundMsgs g Seq.|> rmTeamMsg |
337 , leftTeams = teamName : leftTeams g |
|
338 }) $ gameInfo r |
338 }) $ gameInfo r |
339 }) |
339 }) |
340 ] |
340 ] |
341 |
341 |
342 rnc <- gets roomsClients |
342 rnc <- gets roomsClients |
351 processAction (RemoveTeam teamName) = do |
351 processAction (RemoveTeam teamName) = do |
352 rnc <- gets roomsClients |
352 rnc <- gets roomsClients |
353 ri <- clientRoomA |
353 ri <- clientRoomA |
354 inGame <- io $ room'sM rnc (isJust . gameInfo) ri |
354 inGame <- io $ room'sM rnc (isJust . gameInfo) ri |
355 chans <- othersChans |
355 chans <- othersChans |
356 if not $ inGame then |
356 mapM_ processAction $ |
357 mapM_ processAction [ |
357 ModifyRoom (\r -> r{ |
358 ModifyRoom (\r -> r{teams = Prelude.filter (\t -> teamName /= teamname t) $ teams r}) |
358 teams = Prelude.filter (\t -> teamName /= teamname t) $ teams r |
359 , AnswerClients chans ["REMOVE_TEAM", teamName] |
359 , gameInfo = liftM (\g -> g{leftTeams = teamName : leftTeams g}) $ gameInfo r |
360 ] |
360 }) |
361 else |
361 : AnswerClients chans ["REMOVE_TEAM", teamName] |
362 mapM_ processAction [ |
362 : [SendTeamRemovalMessage teamName | inGame] |
363 ModifyRoom (\r -> r{teams = Prelude.filter (\t -> teamName /= teamname t) $ teams r}) |
|
364 , SendTeamRemovalMessage teamName |
|
365 ] |
|
366 |
363 |
367 |
364 |
368 processAction (RemoveClientTeams clId) = do |
365 processAction (RemoveClientTeams clId) = do |
369 rnc <- gets roomsClients |
366 rnc <- gets roomsClients |
370 |
367 |