netserver/HWProto.hs
changeset 1368 a734715a777a
parent 1354 a8dcdeb88a43
child 1377 a9e768739345
equal deleted inserted replaced
1367:e1aaa1a4901f 1368:a734715a777a
    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