with superfinal

This commit is contained in:
Viktor Kholodov 2021-09-12 13:27:46 +03:00
parent a4a74f5c6f
commit e71480c1f7
4 changed files with 28 additions and 19 deletions

View File

@ -78,8 +78,8 @@ class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
map.isBanned = true
if (playerTurn== 1) playerTurn = 2 else playerTurn = 1
if(mapsLobby.count(_.isBanned == false) == 3 && lobbyType == Last3() ||
mapsLobby.count(_.isBanned == false) == 4 && lobbyType == Last4() ||
mapsLobby.count(_.isBanned == false) == 5 && lobbyType == Last5() ||
mapsLobby.count(_.isBanned == false) == 9 && lobbyType == Superfinal() ||
mapsLobby.count(_.isBanned == false) == 1 && lobbyType == LooserPick()){
status = Finish()
}
@ -130,10 +130,10 @@ class LobbieActor(hostUser: LobbyUser) extends Actor with LazyLogging {
lobbyTypeNew match {
case "last3" =>
lobbyType = Last3()
case "last4" =>
lobbyType = Last4()
case "last5" =>
lobbyType = Last5()
case "superfinal" =>
lobbyType = Superfinal()
case "looserpick" =>
lobbyType = LooserPick()
}
@ -249,6 +249,6 @@ sealed case class Finish() extends LobbyStatus
class LobbyType
sealed case class Last3() extends LobbyType
sealed case class Last4() extends LobbyType
sealed case class Last5() extends LobbyType
sealed case class Superfinal() extends LobbyType
sealed case class LooserPick() extends LobbyType

View File

@ -45,12 +45,12 @@ window.onload = function() {
'</button>';
return memo + '<tr>\n' +
' <td>'+ lobby.user1Info.name.substring(0, 20) +'</td>\n' +
' <td>'+ lobby.user2Info.name.substring(0, 20) +'</td>\n' +
' <td>'+ lobby.status +'</td>\n' +
' <td>' + joinButton + ' ' + observerButton +
' <td>'+ lobby.user1Info.name.substring(0, 20) +'</td>\n' +
' <td>'+ lobby.user2Info.name.substring(0, 20) +'</td>\n' +
' <td>'+ lobby.status +'</td>\n' +
' <td>' + joinButton + ' ' + observerButton +
' </td>' +
'</tr>';
'</tr>';
}, "");
var tableStart = '<table id ="deciderList" class="table"><tbody><tr>\n' +
@ -267,22 +267,22 @@ function renderPlayersAndStats(lobby) {
var lobbyTypeText = "";
var last3Selected = "";
var last4Selected = "";
var last5Selected = "";
var superfinalSelected = "";
var looserPickSelected = "";
switch (lobby.selectedType) {
case "Last3()":
last3Selected = "selected";
lobbyTypeText = "Play on last 3 maps";
break;
case "Last4()":
last4Selected = "selected";
lobbyTypeText = "Play on last 4 maps";
break;
case "Last5()":
last5Selected = "selected";
lobbyTypeText = "Play on last 5 maps";
break;
case "Superfinal()":
superfinalSelected = "selected";
lobbyTypeText = "Draft to select 9 maps for BO7";
break;
case "LooserPick()":
looserPickSelected = "selected";
lobbyTypeText = "Play on last map";
@ -311,6 +311,7 @@ function renderPlayersAndStats(lobby) {
resHtml += "<br/><select class=\"form-control\" id = 'deciderOption' onChange='changeLobbyType()' "+disabledText+" >" +
"<option "+last3Selected+" value = 'last3'>Play on last 3 maps (BO3)</option>" +
"<option "+last5Selected+" value = 'last5'>Play on last 5 maps (BO5)</option>" +
"<option "+superfinalSelected+" value = 'superfinal'>Superfinal (BO7)</option>" +
"</select>"
resHtml += "</div>";
break;

View File

@ -13,7 +13,7 @@
<script type='text/javascript' src='@routes.Assets.at("lib/backbonejs/backbone.js")'></script>
<script type="text/javascript" src="@routes.Assets.at("lib/jquery-cookie/jquery.cookie.js")"></script>
<script type='text/javascript' src='@routes.Assets.at("javascripts/index.js?030721")'></script>
<script type='text/javascript' src='@routes.Assets.at("javascripts/index.js?040921")'></script>
</head>
<body data-ws-url="@routes.HomeController.ws.webSocketURL()">
<div class="navbar navbar-inverse navbar-fixed-top">
@ -59,6 +59,13 @@
Во втором и последующем матчах проигравший выбирает карту из числа выбранных 3 (5) десайдеров.</p>
<p>В суперфинале турнира оба игрока вычеркивают по две карты. После этого из оставшихся 9 карт можно брать любые, выбирает их проигравший в предыдущем матче.
Первый лузер-пик - за игроком из нижней сетки, который начинает с -1 очком.</p>
<br>
<p>Maps for BO3 and BO5 should be picked with 3 and 5 deciders respectively, w/o looser picks.
Players disclude maps from the map pool one-by-one, until they got 3 (for BO3) or 5 (for BO5).
At these maps you play all the matches vs your opponent. After defining the maps for BO3/BO5, the players disclude maps one-by-one from this small pool of 3(5), untill they get one.
This gonna be the first map for your round. The next one will be picked by looser from the previously defined map pool of 3 (5) maps.</p>
<p>At grandfinal both players disclude only two maps. After that, looser can pick ANY map from the 9 left in map pool.
First looser pick belongs to the player from looser bracket, because he/she starts with -1 score.</p>
</i>
</div>

View File

@ -2,18 +2,19 @@
<conversionRule conversionWord="coloredLevel" converterClass="play.api.libs.logback.ColoredLevel"/>
<property name="LOG_FILE" value="logs\decider-log" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<appender name="FILE" class="ch.qos.logback.core.RollingFileAppender">
<file>logs/decider.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
<fileNamePattern>logs/decider.%d{yyyy-MM-dd_HH-mm}.log</fileNamePattern>
<!-- keep 30 days' worth of history capped at 3GB total size -->
<maxHistory>30</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
<pattern>%date [%level] from %logger in %thread - %message%n%xException</pattern>
</encoder>
</appender>