Tournaments can be configured now
This commit is contained in:
@@ -20,7 +20,7 @@ case class DeciderMap(map: String, var isBanned: Boolean = false)
|
||||
* There is one StockActor per stock symbol. The StockActor maintains a list of users watching the stock and the stock
|
||||
* values. Each StockActor updates a rolling dataset of randomly generated stock values.
|
||||
*/
|
||||
class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
|
||||
class LobbieActor(hostUser: LobbyUser, deciderName: String) extends Actor with LazyLogging {
|
||||
|
||||
val config = ConfigFactory.load()
|
||||
logger.info(s"Create lobby... host: ${hostUser.actorRef.path.name}")
|
||||
@@ -46,7 +46,7 @@ class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
|
||||
private var isNecrons: Boolean = false
|
||||
|
||||
private val mapsLobby: Set[DeciderMap] = {
|
||||
val configMaps = config.getStringList("maps").asScala
|
||||
val configMaps = config.getStringList(s"deciders.$deciderName.maps").asScala
|
||||
configMaps.map(e => {
|
||||
DeciderMap(e)
|
||||
}).toSet
|
||||
@@ -57,6 +57,7 @@ class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
|
||||
UserInfo(hostUser.name,firstPlayerReady),
|
||||
UserInfo("", secondPlayerReady),
|
||||
self.path.name,
|
||||
deciderName,
|
||||
status.toString(),
|
||||
playerTurn,
|
||||
lobbyType.toString(),
|
||||
@@ -211,6 +212,7 @@ class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
|
||||
UserInfo(host.name, firstPlayerReady),
|
||||
UserInfo(user2Name, secondPlayerReady),
|
||||
self.path.name,
|
||||
deciderName,
|
||||
status.toString(),
|
||||
playerTurn,
|
||||
lobbyType.toString(),
|
||||
@@ -223,7 +225,7 @@ case class BanMap(mapName: String)
|
||||
|
||||
case class MapsUpdate(maps: Set[String])
|
||||
|
||||
case class CreateLobby(userName: String)
|
||||
case class CreateLobby(userName: String, deciderName: String)
|
||||
|
||||
case class JoinLobbyAsPlayer(lobbyUser: LobbyUser)
|
||||
|
||||
@@ -250,6 +252,7 @@ case class UserInfo(name: String, isReady: Boolean)
|
||||
case class LobbyInfo(user1Info: UserInfo,
|
||||
user2Info: UserInfo,
|
||||
lobbyActorName: String,
|
||||
deciderName: String,
|
||||
status: String,
|
||||
playerTurn: BigDecimal,
|
||||
selectedType: String,
|
||||
|
||||
@@ -17,10 +17,10 @@ class LobbiesActor extends Actor with LazyLogging {
|
||||
val lobbies: ListBuffer[String] = ListBuffer()
|
||||
|
||||
def receive: Receive = LoggingReceive {
|
||||
case CreateLobby(hostName) =>
|
||||
case CreateLobby(hostName, deciderName) =>
|
||||
val hostActorRef = sender
|
||||
logger.info(s"Player ${hostActorRef.path.name} create lobby.")
|
||||
val lobbyActor = context.actorOf(Props(new LobbieActor(LobbyUser(hostName, hostActorRef))),
|
||||
val lobbyActor = context.actorOf(Props(new LobbieActor(LobbyUser(hostName, hostActorRef), deciderName)),
|
||||
s"lobbyActor-${(math.random * 100000000L).toLong}")
|
||||
lobbyActor.tell(WatchLobby("watchIt"), hostActorRef)
|
||||
case JoinLobbyByActorName(lobbyName, userName) =>
|
||||
|
||||
@@ -35,6 +35,7 @@ class UserActor(out: ActorRef,
|
||||
"user1Info" -> lobby.user1Info,
|
||||
"user2Info" -> lobby.user2Info,
|
||||
"lobbyActorName" -> lobby.lobbyActorName,
|
||||
"deciderName" -> lobby.deciderName,
|
||||
"status" -> lobby.status,
|
||||
"playerTurn" -> lobby.playerTurn,
|
||||
"selectedType" -> lobby.selectedType,
|
||||
@@ -54,6 +55,7 @@ class UserActor(out: ActorRef,
|
||||
"user1Info" -> lobby.user1Info,
|
||||
"user2Info" -> lobby.user2Info,
|
||||
"lobbyActorName" -> lobby.lobbyActorName,
|
||||
"deciderName" -> lobby.deciderName,
|
||||
"status" -> lobby.status,
|
||||
"playerTurn" -> lobby.playerTurn,
|
||||
"selectedType" -> lobby.selectedType,
|
||||
@@ -129,7 +131,8 @@ class UserActor(out: ActorRef,
|
||||
logger.debug(s"Set user name: $name for actor ${this.self}")
|
||||
|
||||
case Some("createDecider") =>
|
||||
LobbiesActor.actor ! CreateLobby(name)
|
||||
val deciderName = (json \ "deciderName").as[String]
|
||||
LobbiesActor.actor ! CreateLobby(name, deciderName)
|
||||
|
||||
case Some("leaveDecider") =>
|
||||
lobbieActor.foreach(lobby => lobby ! LeaveLobby)
|
||||
|
||||
Reference in New Issue
Block a user