gameServer/HWProtoInRoomState.hs
changeset 3564 7c583c88327b
parent 3561 7f8e07e4a4e3
child 3566 772a46ef8288
equal deleted inserted replaced
3563:48452ee0c925 3564:7c583c88327b
    77         newTeamHHNum r = min 4 (canAddNumber r)
    77         newTeamHHNum r = min 4 (canAddNumber r)
    78 
    78 
    79 handleCmd_inRoom ["REMOVE_TEAM", name] = do
    79 handleCmd_inRoom ["REMOVE_TEAM", name] = do
    80         (ci, rnc) <- ask
    80         (ci, rnc) <- ask
    81         let r = room rnc $ clientRoom rnc ci
    81         let r = room rnc $ clientRoom rnc ci
    82 		clNick <- clientNick
    82         clNick <- clientNick
    83 		
    83 
    84 		let maybeTeam = findTeam r
    84         let maybeTeam = findTeam r
    85 		let team = fromJust maybeTeam
    85         let team = fromJust maybeTeam
    86 		
    86 
    87 		return $
    87         return $
    88 			if isNothing $ findTeam r then
    88             if isNothing $ findTeam r then
    89 				[Warning "REMOVE_TEAM: no such team"]
    89                 [Warning "REMOVE_TEAM: no such team"]
    90 			else if clNick /= teamowner team then
    90             else if clNick /= teamowner team then
    91 				[ProtocolError "Not team owner!"]
    91                 [ProtocolError "Not team owner!"]
    92 			else
    92             else
    93 				[RemoveTeam name,
    93                 [RemoveTeam name,
    94 				ModifyClient 
    94                 ModifyClient
    95 					(\c -> c{
    95                     (\c -> c{
    96 						teamsInGame = teamsInGame c - 1, 
    96                         teamsInGame = teamsInGame c - 1,
    97 						clientClan = if teamsInGame client == 1 then undefined else anotherTeamClan ci r
    97                         clientClan = if teamsInGame c == 1 then undefined else anotherTeamClan ci r
    98 						})
    98                         })
    99 				]
    99                 ]
   100     where
   100     where
   101         anotherTeamClan ci = teamcolor . fromJust . find (\t -> teamownerId t == ci) . teams
   101         anotherTeamClan ci = teamcolor . fromJust . find (\t -> teamownerId t == ci) . teams
       
   102         findTeam = find (\t -> name == teamname t) . teams
   102 
   103 
   103 {-
   104 {-
   104 
   105 
   105 handleCmd_inRoom clID clients rooms ["HH_NUM", teamName, numberStr]
   106 handleCmd_inRoom clID clients rooms ["HH_NUM", teamName, numberStr]
   106     | not $ isMaster client = [ProtocolError "Not room master"]
   107     | not $ isMaster client = [ProtocolError "Not room master"]