bugfix: leaving room needs to clear votes

This commit is contained in:
efim
2023-04-28 11:43:59 +04:00
parent 867b2f0f20
commit 3158a75f5d
2 changed files with 15 additions and 6 deletions

View File

@@ -83,18 +83,23 @@ object Models {
// no need to send to the front end, no deed to derive codec, cool
sealed trait RoundState {
def toViewFor(player: PlayerID): RoundStateView
def removePlayer(id: PlayerID): RoundState
}
object RoundState {
final case class Voting(votes: Map[PlayerID, String]) extends RoundState {
def toViewFor(playerId: PlayerID): RoundStateView.Voting = RoundStateView.Voting(
override def toViewFor(playerId: PlayerID): RoundStateView.Voting = RoundStateView.Voting(
myCard = votes.get(playerId),
alreadyVoted = votes.filterKeys(id => id != playerId).keys.toList
)
override def removePlayer(id: PlayerID): RoundState.Voting =
RoundState.Voting(votes.filterKeys(_ != id).toMap)
}
final case class Viewing(votes: Map[PlayerID, String]) extends RoundState {
def toViewFor(player: PlayerID): RoundStateView.Viewing =
override def toViewFor(player: PlayerID): RoundStateView.Viewing =
RoundStateView.Viewing(votes.toList)
override def removePlayer(id: PlayerID): RoundState.Viewing =
RoundState.Viewing(votes.filterKeys(_ != id).toMap)
}
}
}