feat!: implemented multigame support (#34)
Reviewed-on: #34 Co-authored-by: Janis <janis.e.20@gmx.de> Co-committed-by: Janis <janis.e.20@gmx.de>
This commit is contained in:
31
knockoutwhistweb/app/model/sessions/UserSession.scala
Normal file
31
knockoutwhistweb/app/model/sessions/UserSession.scala
Normal file
@@ -0,0 +1,31 @@
|
||||
package model.sessions
|
||||
|
||||
import de.knockoutwhist.events.player.{RequestCardEvent, RequestTieChoiceEvent, RequestTrumpSuitEvent}
|
||||
import de.knockoutwhist.utils.events.SimpleEvent
|
||||
import model.users.User
|
||||
|
||||
import java.util.UUID
|
||||
import java.util.concurrent.locks.{Lock, ReentrantLock}
|
||||
|
||||
class UserSession(user: User, val host: Boolean) extends PlayerSession {
|
||||
var canInteract: Option[InteractionType] = None
|
||||
val lock: Lock = ReentrantLock()
|
||||
|
||||
override def updatePlayer(event: SimpleEvent): Unit = {
|
||||
event match {
|
||||
case event: RequestTrumpSuitEvent =>
|
||||
canInteract = Some(InteractionType.TrumpSuit)
|
||||
case event: RequestTieChoiceEvent =>
|
||||
canInteract = Some(InteractionType.TieChoice)
|
||||
case event: RequestCardEvent =>
|
||||
if (event.player.isInDogLife) canInteract = Some(InteractionType.DogCard)
|
||||
else canInteract = Some(InteractionType.Card)
|
||||
case _ =>
|
||||
}
|
||||
}
|
||||
|
||||
override def id: UUID = user.id
|
||||
|
||||
override def name: String = user.name
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user