bugfix: leaving room needs to clear votes
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user