32 answerConfigParam paramName paramStrs = [(othersInRoom, "CONFIG_PARAM" : paramName : paramStrs)] |
32 answerConfigParam paramName paramStrs = [(othersInRoom, "CONFIG_PARAM" : paramName : paramStrs)] |
33 answerFullConfig room = map toAnswer (Map.toList $ params room) ++ [(clientOnly, ["MAP", gamemap room])] |
33 answerFullConfig room = map toAnswer (Map.toList $ params room) ++ [(clientOnly, ["MAP", gamemap room])] |
34 where |
34 where |
35 toAnswer (paramName, paramStrs) = |
35 toAnswer (paramName, paramStrs) = |
36 (clientOnly, "CONFIG_PARAM" : paramName : paramStrs) |
36 (clientOnly, "CONFIG_PARAM" : paramName : paramStrs) |
37 answerCantAdd = [(clientOnly, ["WARNING", "Too many teams or hedgehogs, or same name team"])] |
37 answerCantAdd = [(clientOnly, ["WARNING", "Too many teams or hedgehogs, or same name team, or round in progress"])] |
38 answerTeamAccepted team = [(clientOnly, ["TEAM_ACCEPTED", teamname team])] |
38 answerTeamAccepted team = [(clientOnly, ["TEAM_ACCEPTED", teamname team])] |
39 answerAddTeam team = [(othersInRoom, teamToNet team)] |
39 answerAddTeam team = [(othersInRoom, teamToNet team)] |
40 answerHHNum teamName hhNumber = [(othersInRoom, ["HH_NUM", teamName, show hhNumber])] |
40 answerHHNum teamName hhNumber = [(othersInRoom, ["HH_NUM", teamName, show hhNumber])] |
41 answerRemoveTeam teamName = [(othersInRoom, ["REMOVE_TEAM", teamName])] |
41 answerRemoveTeam teamName = [(othersInRoom, ["REMOVE_TEAM", teamName])] |
42 answerNotOwner = [(clientOnly, ["ERROR", "You do not own this team"])] |
42 answerNotOwner = [(clientOnly, ["ERROR", "You do not own this team"])] |
155 where |
155 where |
156 clRoom = roomByName (room client) rooms |
156 clRoom = roomByName (room client) rooms |
157 |
157 |
158 handleCmd_inRoom client _ rooms ("ADD_TEAM" : name : color : grave : fort : difStr : hhsInfo) |
158 handleCmd_inRoom client _ rooms ("ADD_TEAM" : name : color : grave : fort : difStr : hhsInfo) |
159 | length hhsInfo == 16 = |
159 | length hhsInfo == 16 = |
160 if length (teams clRoom) == 6 || canAddNumber <= 0 || isJust findTeam then |
160 if length (teams clRoom) == 6 || canAddNumber <= 0 || isJust findTeam || gameinprogress clRoom then |
161 (noChangeClients, noChangeRooms, answerCantAdd) |
161 (noChangeClients, noChangeRooms, answerCantAdd) |
162 else |
162 else |
163 (noChangeClients, modifyRoom clRoom{teams = teams clRoom ++ [newTeam]}, answerTeamAccepted newTeam ++ answerAddTeam newTeam ++ answerTeamColor name color) |
163 (noChangeClients, modifyRoom clRoom{teams = teams clRoom ++ [newTeam]}, answerTeamAccepted newTeam ++ answerAddTeam newTeam ++ answerTeamColor name color) |
164 where |
164 where |
165 clRoom = roomByName (room client) rooms |
165 clRoom = roomByName (room client) rooms |
220 where |
220 where |
221 clRoom = roomByName (room client) rooms |
221 clRoom = roomByName (room client) rooms |
222 |
222 |
223 handleCmd_inRoom client _ rooms ["ROUNDFINISHED"] = |
223 handleCmd_inRoom client _ rooms ["ROUNDFINISHED"] = |
224 if isMaster client then |
224 if isMaster client then |
225 (noChangeClients, modifyRoom clRoom{teams = [], gameinprogress = False}, []) |
225 (noChangeClients, modifyRoom clRoom{gameinprogress = False}, []) |
226 else |
226 else |
227 (noChangeClients, noChangeRooms, []) |
227 (noChangeClients, noChangeRooms, []) |
228 where |
228 where |
229 clRoom = roomByName (room client) rooms |
229 clRoom = roomByName (room client) rooms |
230 |
230 |