Fix: show only proper join buttons
This commit is contained in:
		| @@ -40,13 +40,10 @@ | ||||
|   <div class="flex justify-center"> | ||||
|     <!-- Left Panel --> | ||||
|     {{template "teamlist" .Room.BlueTeam}} | ||||
|     {{if and (ne .State.Team "blue") (not .Room.IsRunning)}} | ||||
|     {{template "teampew" "blue"}} | ||||
|     {{if not .Room.IsRunning}} | ||||
|       {{template "teampew" .}} | ||||
|     {{end}} | ||||
|     <!-- Right Panel --> | ||||
|     {{if and (ne .State.Team "red") (not .Room.IsRunning)}} | ||||
|     {{template "teampew" "red"}} | ||||
|     {{end}} | ||||
|     {{template "teamlist" .Room.RedTeam}} | ||||
|   </div> | ||||
|   <hr /> | ||||
|   | ||||
| @@ -1,18 +1,44 @@ | ||||
| {{define "teampew"}} | ||||
| <div> | ||||
| <h2 class="text-xl mb-4">Join {{.}} Team</h2> | ||||
| <h2 class="text-xl mb-4">Join Blue Team</h2> | ||||
| <form hx-post="/join-team" hx-target="#ancestor"> | ||||
|     <input type="hidden" name="team" value="{{.}}"> | ||||
|     <input type="hidden" name="team" value="blue"> | ||||
|   <div class="mb-1"> | ||||
|       <button type="submit" name="role" value="guesser" class="w-full bg-{{.}}-500 text-white py-2 px-4 rounded"> | ||||
|     {{if and (eq .State.Role "guesser") (eq .State.Team "blue")}} | ||||
|     {{else}} | ||||
|       <button type="submit" name="role" value="guesser" class="w-full bg-blue-500 text-white py-2 px-4 rounded"> | ||||
|       Join as Guesser | ||||
|     </button> | ||||
|     {{end}} | ||||
|   </div> | ||||
|   {{if eq .Room.BlueTeam.Mime ""}} | ||||
|   <div> | ||||
|       <button type="submit" name="role" value="mime" class="w-full bg-{{.}}-700 text-white py-2 px-4 rounded"> | ||||
|       <button type="submit" name="role" value="mime" class="w-full bg-blue-700 text-white py-2 px-4 rounded"> | ||||
|       Join as Mime | ||||
|     </button> | ||||
|   </div> | ||||
|   {{end}} | ||||
| </form> | ||||
| </div> | ||||
| <div> | ||||
| <h2 class="text-xl mb-4">Join Red Team</h2> | ||||
| <form hx-post="/join-team" hx-target="#ancestor"> | ||||
|     <input type="hidden" name="team" value="red"> | ||||
|   <div class="mb-1"> | ||||
|     {{if and (eq .State.Role "guesser") (eq .State.Team "red")}} | ||||
|     {{else}} | ||||
|       <button type="submit" name="role" value="guesser" class="w-full bg-red-500 text-white py-2 px-4 rounded"> | ||||
|       Join as Guesser | ||||
|     </button> | ||||
|     {{end}} | ||||
|   </div> | ||||
|   {{if eq .Room.RedTeam.Mime ""}} | ||||
|   <div> | ||||
|       <button type="submit" name="role" value="mime" class="w-full bg-red-700 text-white py-2 px-4 rounded"> | ||||
|       Join as Mime | ||||
|     </button> | ||||
|   </div> | ||||
|   {{end}} | ||||
| </form> | ||||
| </div> | ||||
| {{end}} | ||||
|   | ||||
| @@ -151,6 +151,31 @@ func (r *Room) GetPlayerByName(name string) (role UserRole, team UserTeam, found | ||||
| 	return "", "", false | ||||
| } | ||||
|  | ||||
| func (r *Room) GetPlayerInfoByName(name string) *BotPlayer { | ||||
| 	bp := &BotPlayer{} | ||||
| 	if r.RedTeam.Mime == name { | ||||
| 		bp.Role = UserRoleMime | ||||
| 		bp.Team = UserTeamRed | ||||
| 	} | ||||
| 	if r.BlueTeam.Mime == name { | ||||
| 		bp.Role = UserRoleMime | ||||
| 		bp.Team = UserTeamBlue | ||||
| 	} | ||||
| 	for _, guesser := range r.RedTeam.Guessers { | ||||
| 		if guesser == name { | ||||
| 			bp.Role = UserRoleGuesser | ||||
| 			bp.Team = UserTeamRed | ||||
| 		} | ||||
| 	} | ||||
| 	for _, guesser := range r.BlueTeam.Guessers { | ||||
| 		if guesser == name { | ||||
| 			bp.Role = UserRoleGuesser | ||||
| 			bp.Team = UserTeamBlue | ||||
| 		} | ||||
| 	} | ||||
| 	return bp | ||||
| } | ||||
|  | ||||
| func (r *Room) CanStart() error { | ||||
| 	if r.IsRunning { | ||||
| 		return errors.New("cannot start; game is already running") | ||||
|   | ||||
							
								
								
									
										3
									
								
								todos.md
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								todos.md
									
									
									
									
									
								
							| @@ -5,13 +5,13 @@ | ||||
| - login with invite link; + | ||||
| - there three places for bot to check if its its move: start-game; end-turn, after mime gave clue; + | ||||
| - remove bot button (if game is not running, or bot already added); + | ||||
| - show in backlog (and with that in prompt to llm) how many cards are left to open, also additional comment: if guess was right; | ||||
| - hide clue input for mime when it's not their turn; + | ||||
| - needs resend to llm btn; + | ||||
| - check if clue word is the same as one of the cards and return err if it is; + | ||||
| - autoscroll down backlog on update; + | ||||
| - instead of guessing all words at ones, ask only for 1 word to be open. + | ||||
| - ways to remove bots from teams; + | ||||
| - show in backlog (and with that in prompt to llm) how many cards are left to open, also additional comment: if guess was right; | ||||
| - better styles and fluff; | ||||
| - common auth system between sites; | ||||
| - gameover to backlog; | ||||
| @@ -47,3 +47,4 @@ | ||||
| - guesser bot no request after game restart; | ||||
| - remove join as mime button if there is a mime already on that team (rewrite teampew templ); | ||||
| - openrouter 429 errors; | ||||
| - there is a clue window for a mime before game started; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder