Enha: simplier guesser prompt; player team-role recovery
This commit is contained in:
		| @@ -58,10 +58,10 @@ type Room struct { | ||||
| 	ID        string    `json:"id" db:"id"` | ||||
| 	CreatedAt time.Time `json:"created_at" db:"created_at"` | ||||
| 	// RoomName     string    `json:"room_name"` | ||||
| 	RoomPass       string `json:"room_pass"` | ||||
| 	RoomLink       string | ||||
| 	CreatorName    string   `json:"creator_name"` | ||||
| 	PlayerList     []string `json:"player_list"` | ||||
| 	RoomPass    string `json:"room_pass"` | ||||
| 	RoomLink    string | ||||
| 	CreatorName string `json:"creator_name"` | ||||
| 	// PlayerList     []string `json:"player_list"` | ||||
| 	ActionHistory  []Action | ||||
| 	TeamTurn       UserTeam | ||||
| 	RedTeam        Team | ||||
| @@ -88,6 +88,26 @@ type Room struct { | ||||
| 	LogJournal []string | ||||
| } | ||||
|  | ||||
| func (r *Room) GetPlayerByName(name string) (role UserRole, team UserTeam, found bool) { | ||||
| 	if r.RedTeam.Mime == name { | ||||
| 		return "mime", "red", true | ||||
| 	} | ||||
| 	if r.BlueTeam.Mime == name { | ||||
| 		return "mime", "blue", true | ||||
| 	} | ||||
| 	for _, guesser := range r.RedTeam.Guessers { | ||||
| 		if guesser == name { | ||||
| 			return "guesser", "red", true | ||||
| 		} | ||||
| 	} | ||||
| 	for _, guesser := range r.BlueTeam.Guessers { | ||||
| 		if guesser == name { | ||||
| 			return "guesser", "blue", true | ||||
| 		} | ||||
| 	} | ||||
| 	return "", "", false | ||||
| } | ||||
|  | ||||
| func (r *Room) CanStart() error { | ||||
| 	if r.IsRunning { | ||||
| 		return errors.New("cannot start; game is already running") | ||||
| @@ -230,10 +250,10 @@ func (rr *RoomReq) CreateRoom(creator string) *Room { | ||||
| 	roomID := xid.New().String() | ||||
| 	return &Room{ | ||||
| 		// RoomName: , | ||||
| 		RoomPass:    rr.RoomPass, | ||||
| 		ID:          roomID, | ||||
| 		CreatedAt:   time.Now(), | ||||
| 		PlayerList:  []string{creator}, | ||||
| 		RoomPass:  rr.RoomPass, | ||||
| 		ID:        roomID, | ||||
| 		CreatedAt: time.Now(), | ||||
| 		// PlayerList:  []string{creator}, | ||||
| 		CreatorName: creator, | ||||
| 		BotMap:      make(map[string]BotPlayer), | ||||
| 	} | ||||
| @@ -249,7 +269,7 @@ type FullInfo struct { | ||||
| } | ||||
|  | ||||
| func (f *FullInfo) ExitRoom() *Room { | ||||
| 	f.Room.PlayerList = utils.RemoveFromSlice(f.State.Username, f.Room.PlayerList) | ||||
| 	// f.Room.PlayerList = utils.RemoveFromSlice(f.State.Username, f.Room.PlayerList) | ||||
| 	f.Room.RedTeam.Guessers = utils.RemoveFromSlice(f.State.Username, f.Room.RedTeam.Guessers) | ||||
| 	f.Room.BlueTeam.Guessers = utils.RemoveFromSlice(f.State.Username, f.Room.BlueTeam.Guessers) | ||||
| 	if f.Room.RedTeam.Mime == f.State.Username { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder