Feat: start game btn; add todos.md
This commit is contained in:
@ -1,6 +1,13 @@
|
||||
{{define "room"}}
|
||||
<div id="hello-user">
|
||||
<p>Hello {{.State.Username}};</p>
|
||||
<p>Room created by {{.Room.CreatorName}};</p>
|
||||
<p>Game is running: {{.Room.IsRunning}}</p>
|
||||
<p>
|
||||
{{if eq .State.Username .Room.CreatorName}}
|
||||
<button hx-get="/start-game" hx-target="#room" class="bg-amber-100 text-black px-4 py-2 rounded">Start Game</button>
|
||||
{{end}}
|
||||
</p>
|
||||
<p>Turn of the {{.Room.TeamTurn}} team</p>
|
||||
<p>
|
||||
{{if eq .State.Team ""}}
|
||||
|
@ -72,7 +72,7 @@ func HandleFrontLogin(w http.ResponseWriter, r *http.Request) {
|
||||
abortWithError(w, err.Error())
|
||||
return
|
||||
}
|
||||
state := models.MakeTestState()
|
||||
state := models.MakeTestState(cleanName)
|
||||
state.State.Username = cleanName
|
||||
// save state to cache
|
||||
// if err := saveState(cleanName, state.State); err != nil {
|
||||
|
@ -47,16 +47,17 @@ type Room struct {
|
||||
TeamTurn string
|
||||
RedTeam Team
|
||||
BlueTeam Team
|
||||
// RedMime string
|
||||
// BlueMime string
|
||||
// RedGuessers []string
|
||||
// BlueGuessers []string
|
||||
Cards []WordCard
|
||||
GameSettings *GameSettings `json:"settings"`
|
||||
Result uint8 // 0 for unknown; 1 is win for red; 2 if for blue;
|
||||
BlueCounter uint8
|
||||
RedCounter uint8
|
||||
RedTurn bool // false is blue turn
|
||||
Cards []WordCard
|
||||
Result uint8 // 0 for unknown; 1 is win for red; 2 if for blue;
|
||||
BlueCounter uint8
|
||||
RedCounter uint8
|
||||
RedTurn bool // false is blue turn
|
||||
// GameSettings *GameSettings `json:"settings"`
|
||||
IsRunning bool `json:"is_running"`
|
||||
Language string `json:"language" example:"en" form:"language"`
|
||||
RoundTime int32 `json:"round_time"`
|
||||
// ProgressPct uint32 `json:"progress_pct"`
|
||||
IsOver bool
|
||||
}
|
||||
|
||||
func (r *Room) ChangeTurn() {
|
||||
|
@ -47,7 +47,7 @@ type UserState struct {
|
||||
Role UserRole
|
||||
}
|
||||
|
||||
func MakeTestState() *FullInfo {
|
||||
func MakeTestState(creatorName string) *FullInfo {
|
||||
cards := []WordCard{
|
||||
{Word: "hamster", Color: "blue"},
|
||||
{Word: "child", Color: "red"},
|
||||
@ -80,14 +80,14 @@ func MakeTestState() *FullInfo {
|
||||
room := &Room{
|
||||
ID: "test-id",
|
||||
CreatedAt: time.Now(),
|
||||
CreatorName: "test-name",
|
||||
CreatorName: creatorName,
|
||||
Cards: cards,
|
||||
RedTeam: redTeam,
|
||||
BlueTeam: blueTeam,
|
||||
TeamTurn: "blue",
|
||||
}
|
||||
us := &UserState{
|
||||
Username: "test-name",
|
||||
Username: creatorName,
|
||||
Team: UserTeamNone,
|
||||
Role: UserRoleNone,
|
||||
RoomID: "test-id",
|
||||
|
20
todos.md
Normal file
20
todos.md
Normal file
@ -0,0 +1,20 @@
|
||||
### feats
|
||||
- game state (running/not);
|
||||
- start game: btn, endpoint;
|
||||
- mime: clue + number;
|
||||
- game log: what clues were given, who opened what cards;
|
||||
- end game: who won.
|
||||
- end game: two reasons (black word; all words);
|
||||
|
||||
#### sse points
|
||||
- clue sse update;
|
||||
- join team;
|
||||
- start game;
|
||||
- end turn;
|
||||
- open card;
|
||||
- game over;
|
||||
- timer per turn (when added);
|
||||
|
||||
|
||||
### issues
|
||||
- new client login rewrites room creator (test room issue);
|
Reference in New Issue
Block a user