Enha: mime move check; start game backlog msg
This commit is contained in:
		| @@ -41,7 +41,7 @@ func HandleShowColor(w http.ResponseWriter, r *http.Request) { | ||||
| 		return | ||||
| 	} | ||||
| 	if fi.State.Role != "guesser" { | ||||
| 		err = errors.New("need to guesser to open the card") | ||||
| 		err = errors.New("need to be guesser to open the card") | ||||
| 		abortWithError(w, err.Error()) | ||||
| 		return | ||||
| 	} | ||||
|   | ||||
| @@ -180,6 +180,15 @@ func HandleStartGame(w http.ResponseWriter, r *http.Request) { | ||||
| 	loadCards(fi.Room) | ||||
| 	fi.Room.UpdateCounter() | ||||
| 	fi.Room.TeamWon = "" | ||||
| 	action := models.Action{ | ||||
| 		Actor:      fi.State.Username, | ||||
| 		ActorColor: string(fi.State.Team), | ||||
| 		WordColor:  string(fi.State.Team), | ||||
| 		Action:     "game started", | ||||
| 		// Word:       clue, | ||||
| 		// Number:     num, | ||||
| 	} | ||||
| 	fi.Room.ActionHistory = append(fi.Room.ActionHistory, action) | ||||
| 	if err := saveFullInfo(fi); err != nil { | ||||
| 		abortWithError(w, err.Error()) | ||||
| 		return | ||||
| @@ -196,6 +205,7 @@ func HandleStartGame(w http.ResponseWriter, r *http.Request) { | ||||
| 	} | ||||
| 	// to update only the room that should be updated | ||||
| 	notify(models.NotifyRoomUpdatePrefix+fi.Room.ID, "") | ||||
| 	// notify(models.NotifyBacklogPrefix+fi.Room.ID, "game started") | ||||
| 	tmpl.ExecuteTemplate(w, "room", fi) | ||||
| } | ||||
|  | ||||
| @@ -240,6 +250,23 @@ func HandleGiveClue(w http.ResponseWriter, r *http.Request) { | ||||
| 		abortWithError(w, err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 	// validations === | ||||
| 	if fi.State.Team != models.UserTeam(fi.Room.TeamTurn) { | ||||
| 		err = errors.New("not your team's move") | ||||
| 		abortWithError(w, err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 	if fi.State.Role != "mime" { | ||||
| 		err = errors.New("need to be mime to open the card") | ||||
| 		abortWithError(w, err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 	if fi.Room.MimeDone { | ||||
| 		// team already have a clue | ||||
| 		abortWithError(w, "your team already has a clue") | ||||
| 		return | ||||
| 	} | ||||
| 	// === | ||||
| 	action := models.Action{ | ||||
| 		Actor:      fi.State.Username, | ||||
| 		ActorColor: string(fi.State.Team), | ||||
|   | ||||
							
								
								
									
										3
									
								
								todos.md
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								todos.md
									
									
									
									
									
								
							| @@ -19,6 +19,5 @@ | ||||
| ### issues | ||||
| - after the game started (isrunning) players should be able join guessers, but not switch team, or join as a mime; | ||||
| - do not let wrong team press buttons; | ||||
| - mime can give clues out of turn; | ||||
| - guesser can guess the word before the clue; | ||||
| - cleanup backlog after new game is started; | ||||
| - guesser: word is not found | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder