equal
deleted
inserted
replaced
71 ] |
71 ] |
72 where |
72 where |
73 canAddNumber r = 48 - (sum . map hhnum $ teams r) |
73 canAddNumber r = 48 - (sum . map hhnum $ teams r) |
74 findTeam = find (\t -> tName == teamname t) . teams |
74 findTeam = find (\t -> tName == teamname t) . teams |
75 newTeam ci clNick r = TeamInfo ci clNick tName color grave fort voicepack flag dif (newTeamHHNum r) (hhsList hhsInfo) |
75 newTeam ci clNick r = TeamInfo ci clNick tName color grave fort voicepack flag dif (newTeamHHNum r) (hhsList hhsInfo) |
76 dif = case B.readInt difStr of |
76 dif = readInt_ difStr |
77 Just (i, t) | B.null t -> fromIntegral i |
|
78 _ -> 0 |
|
79 hhsList [] = [] |
77 hhsList [] = [] |
80 hhsList [_] = error "Hedgehogs list with odd elements number" |
78 hhsList [_] = error "Hedgehogs list with odd elements number" |
81 hhsList (n:h:hhs) = HedgehogInfo n h : hhsList hhs |
79 hhsList (n:h:hhs) = HedgehogInfo n h : hhsList hhs |
82 newTeamHHNum r = min 4 (canAddNumber r) |
80 newTeamHHNum r = min 4 (canAddNumber r) |
83 |
81 |
120 [ProtocolError "Not room master"] |
118 [ProtocolError "Not room master"] |
121 else if hhNumber < 1 || hhNumber > 8 || isNothing maybeTeam || hhNumber > canAddNumber r + hhnum team then |
119 else if hhNumber < 1 || hhNumber > 8 || isNothing maybeTeam || hhNumber > canAddNumber r + hhnum team then |
122 [] |
120 [] |
123 else |
121 else |
124 [ModifyRoom $ modifyTeam team{hhnum = hhNumber}, |
122 [ModifyRoom $ modifyTeam team{hhnum = hhNumber}, |
125 AnswerClients others ["HH_NUM", teamName, B.pack $ show hhNumber]] |
123 AnswerClients others ["HH_NUM", teamName, showB hhNumber]] |
126 where |
124 where |
127 hhNumber = case B.readInt numberStr of |
125 hhNumber = readInt_ numberStr |
128 Just (i, t) | B.null t -> fromIntegral i |
|
129 _ -> 0 |
|
130 findTeam = find (\t -> teamName == teamname t) . teams |
126 findTeam = find (\t -> teamName == teamname t) . teams |
131 canAddNumber = (-) 48 . sum . map hhnum . teams |
127 canAddNumber = (-) 48 . sum . map hhnum . teams |
132 |
128 |
133 |
129 |
134 |
130 |
259 handleCmd_inRoom ["TEAMCHAT", msg] = do |
255 handleCmd_inRoom ["TEAMCHAT", msg] = do |
260 cl <- thisClient |
256 cl <- thisClient |
261 chans <- roomSameClanChans |
257 chans <- roomSameClanChans |
262 return [AnswerClients chans ["EM", engineMsg cl]] |
258 return [AnswerClients chans ["EM", engineMsg cl]] |
263 where |
259 where |
264 engineMsg cl = toEngineMsg $ "b" `B.append` nick cl `B.append` "(team): " `B.append` msg `B.append` "\x20\x20" |
260 engineMsg cl = toEngineMsg $ B.concat ["b", nick cl, "(team): ", msg, "\x20\x20"] |
265 |
261 |
266 handleCmd_inRoom _ = return [ProtocolError "Incorrect command (state: in room)"] |
262 handleCmd_inRoom _ = return [ProtocolError "Incorrect command (state: in room)"] |