Add alternative Draft
This commit is contained in:
@@ -41,6 +41,8 @@ class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
|
||||
|
||||
private var status: LobbyStatus = NotStarted()
|
||||
|
||||
private var lobbyType: LobbyType = Last3()
|
||||
|
||||
private val mapsLobby: Set[DeciderMap] = {
|
||||
val configMaps = config.getStringList("maps").asScala
|
||||
configMaps.map(e => {
|
||||
@@ -55,6 +57,7 @@ class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
|
||||
self.path.name,
|
||||
status.toString(),
|
||||
playerTurn,
|
||||
lobbyType.toString(),
|
||||
mapsLobby)),
|
||||
this.self)
|
||||
|
||||
@@ -74,7 +77,9 @@ class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
|
||||
if(!map.isBanned){
|
||||
map.isBanned = true
|
||||
if (playerTurn== 1) playerTurn = 2 else playerTurn = 1
|
||||
if(mapsLobby.count(_.isBanned == false) == 1){
|
||||
if(mapsLobby.count(_.isBanned == false) == 3 && lobbyType == Last3() ||
|
||||
mapsLobby.count(_.isBanned == false) == 4 && lobbyType == Last4() ||
|
||||
mapsLobby.count(_.isBanned == false) == 1 && lobbyType == LooserPick()){
|
||||
status = Finish()
|
||||
}
|
||||
users.foreach(_ ! RefreshLobbyInfo(getLobbyInfoResponse))
|
||||
@@ -120,6 +125,17 @@ class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
|
||||
}
|
||||
users.foreach(_ ! RefreshLobbyInfo(getLobbyInfoResponse))
|
||||
|
||||
case ChangeLobbyType(lobbyTypeNew) =>
|
||||
lobbyTypeNew match {
|
||||
case "last3" =>
|
||||
lobbyType = Last3()
|
||||
case "last4" =>
|
||||
lobbyType = Last4()
|
||||
case "looserpick" =>
|
||||
lobbyType = LooserPick()
|
||||
}
|
||||
users.foreach(_ ! RefreshLobbyInfo(getLobbyInfoResponse))
|
||||
|
||||
case KickSecondPlayer =>
|
||||
if (sender() == host.actorRef) {
|
||||
secondPlayer.foreach(player => player.actorRef ! LobbyFatal("You were kicked from lobby!"))
|
||||
@@ -177,6 +193,7 @@ class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
|
||||
self.path.name,
|
||||
status.toString(),
|
||||
playerTurn,
|
||||
lobbyType.toString(),
|
||||
mapsLobby)
|
||||
}
|
||||
}
|
||||
@@ -201,6 +218,8 @@ case object SetNotReady
|
||||
|
||||
case class MessageForLobby(message: String)
|
||||
|
||||
case class ChangeLobbyType(lobbyType: String)
|
||||
|
||||
case object InfoQuery
|
||||
|
||||
case class UserInfo(name: String, isReady: Boolean)
|
||||
@@ -210,6 +229,7 @@ case class LobbyInfo(user1Info: UserInfo,
|
||||
lobbyActorName: String,
|
||||
status: String,
|
||||
playerTurn: BigDecimal,
|
||||
selectedType: String,
|
||||
maps: Set[DeciderMap])
|
||||
|
||||
class LobbyStatus
|
||||
@@ -217,3 +237,9 @@ class LobbyStatus
|
||||
sealed case class NotStarted() extends LobbyStatus
|
||||
sealed case class Draft() extends LobbyStatus
|
||||
sealed case class Finish() extends LobbyStatus
|
||||
|
||||
class LobbyType
|
||||
|
||||
sealed case class Last3() extends LobbyType
|
||||
sealed case class Last4() extends LobbyType
|
||||
sealed case class LooserPick() extends LobbyType
|
||||
Reference in New Issue
Block a user