Add fourth player, add 4x4 maps

This commit is contained in:
v.holodov 2022-11-19 01:27:55 +03:00
parent 750ea483b6
commit dc228d82be
10 changed files with 83 additions and 7 deletions

View File

@ -258,7 +258,7 @@ case class ChangeIsNecronSelected(isSelected: Boolean)
case object InfoQuery
case class SelectedRaces(firstRace: Int, secondRace: Int, thirdRace: Int)
case class SelectedRaces(firstRace: Int, secondRace: Int, thirdRace: Int, fourthRace: Int)
case class UserInfo(name: String, isReady: Boolean, selectedRaces: Option[SelectedRaces] = None)

View File

@ -176,7 +176,8 @@ class UserActor(out: ActorRef,
val firstRace = (json \ "raceFirst").as[Int]
val secondRace = (json \ "raceSecond").as[Int]
val thirdRace = (json \ "raceThird").as[Int]
lobbieActor.foreach(lobby => lobby ! SelectedRaces(firstRace, secondRace, thirdRace))
val fourthRace = (json \ "raceFourth").as[Int]
lobbieActor.foreach(lobby => lobby ! SelectedRaces(firstRace, secondRace, thirdRace, fourthRace))
case Some("getLobbies") =>
logger.debug("Get all lobby request")

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

View File

@ -247,7 +247,7 @@ function getRaceVideoByNumber(number){
function renderRaces() {
var resHtml = "";
resHtml += "<div class='col-xs-4'><center><h2>First race</h2>";
resHtml += "<div class='col-xs-3'><center><h2>First race</h2>";
for(var i = 1; i <= 9; i++){
var selected = "raceNotSelected";
if($.cookie("race1") == i){
@ -259,7 +259,7 @@ function renderRaces() {
resHtml += "</center></div>";
if(raceCount >= 2){
resHtml += "<div class='col-xs-4'><center><h2>Second race</h2>";
resHtml += "<div class='col-xs-3'><center><h2>Second race</h2>";
for(var i = 1; i <= 9; i++){
var selected = "raceNotSelected";
if($.cookie("race2") == i){
@ -272,7 +272,7 @@ function renderRaces() {
}
if(raceCount >= 3){
resHtml += "<div class='col-xs-4'><center><h2>Third race</h2>";
resHtml += "<div class='col-xs-3'><center><h2>Third race</h2>";
for(var i = 1; i <= 9; i++){
var selected = "raceNotSelected";
var banned = "";
@ -285,6 +285,20 @@ function renderRaces() {
}
resHtml += "</center></div>";
}
if(raceCount >= 4){
resHtml += "<div class='col-xs-3'><center><h2>Fourth race</h2>";
for(var i = 1; i <= 9; i++){
var selected = "raceNotSelected";
var banned = "";
if($.cookie("race4") == i){
selected = "raceSelected";
banned = "bannedRace";
selectedFourthRace = i;
}
resHtml += '<a href = "#" class="'+selected+' thirdRaceIcon" onclick="selectFourthRace(this, ' +i+')"><img class="raceIcon" src="'+getRaceImageByNumber(i)+'"></a> ';
}
resHtml += "</center></div>";
}
resHtml += "<div class='col-xs-4'></div>";
resHtml += "<div style='clear: both;'></div></br>";
@ -296,6 +310,7 @@ function renderRaces() {
var selectedMainRace = 0;
var selectedSecondRace = 0;
var selectedThirdRace = 0;
var selectedFourthRace = 0;
function selectMainRace(button, race){
selectedMainRace = race;
@ -334,9 +349,21 @@ function selectThirdRace(button, race){
checkRaceSelectFinish();
}
function selectFourthRace(button, race){
selectedFourthRace = race;
$.cookie("race4", race, { expires: 1 });
_.each($(".fourthRaceIcon"), function (el){
$(el).removeClass("raceSelected");
$(el).addClass("raceNotSelected");
});
$(button).removeClass("raceNotSelected");
$(button).addClass("raceSelected");
checkRaceSelectFinish();
}
function checkRaceSelectFinish(){
if(selectedMainRace !== 0 && (raceCount < 2 || selectedSecondRace !== 0) && (raceCount < 3 || selectedThirdRace !== 0)){
if(selectedMainRace !== 0 && (raceCount < 2 || selectedSecondRace !== 0) && (raceCount < 3 || selectedThirdRace !== 0) && (raceCount < 4 || selectedFourthRace !== 0)){
$("#selectRace").removeAttr("disabled")
}
}
@ -347,6 +374,7 @@ function sendSelectedRacesToServer(){
raceFirst: selectedMainRace,
raceSecond: selectedSecondRace,
raceThird: selectedThirdRace,
raceFourth: selectedFourthRace
}));
$("#mapList").html("<center>Waiting another player...</center>");
}
@ -407,6 +435,9 @@ function renderFinish(maps, firstPlayerInfo, secondPlayerInfo) {
if(raceCount >= 3){
resHtml += "<img class=\"raceIcon\" src="+getRaceImageByNumber(firstPlayerInfo.selectedRaces.thirdRace)+"> ";
}
if(raceCount >= 4){
resHtml += "<img class=\"raceIcon\" src="+getRaceImageByNumber(firstPlayerInfo.selectedRaces.fourthRace)+"> ";
}
resHtml += "<h2>" + secondPlayerInfo.name + "</h2>";
resHtml += "<img class=\"raceIcon\" src="+getRaceImageByNumber(secondPlayerInfo.selectedRaces.firstRace)+"> ";
@ -416,6 +447,9 @@ function renderFinish(maps, firstPlayerInfo, secondPlayerInfo) {
if(raceCount >= 3){
resHtml += "<img class=\"raceIcon\" src="+getRaceImageByNumber(secondPlayerInfo.selectedRaces.thirdRace)+"> ";
}
if(raceCount >= 4){
resHtml += "<img class=\"raceIcon\" src="+getRaceImageByNumber(secondPlayerInfo.selectedRaces.fourthRace)+"> ";
}
resHtml += "</center>"
@ -545,6 +579,9 @@ function renderPlayersAndStats(lobby) {
if(raceCount > 2){
resHtml += "<img class=\"raceIcon\" src="+getRaceImageByNumber(lobby.user1Info.selectedRaces.thirdRace)+"> ";
}
if(raceCount > 3){
resHtml += "<img class=\"raceIcon\" src="+getRaceImageByNumber(lobby.user1Info.selectedRaces.fourthRace)+"> ";
}
resHtml += " <span style='font-size: 14px'>VS</span> ";
resHtml += "<img class=\"raceIcon\" src="+getRaceImageByNumber(lobby.user2Info.selectedRaces.firstRace)+">";
if(raceCount > 1){
@ -553,6 +590,9 @@ function renderPlayersAndStats(lobby) {
if(raceCount > 2){
resHtml += "<img class=\"raceIcon\" src="+getRaceImageByNumber(lobby.user2Info.selectedRaces.thirdRace)+"> ";
}
if(raceCount > 3){
resHtml += "<img class=\"raceIcon\" src="+getRaceImageByNumber(lobby.user2Info.selectedRaces.fourthRace)+"> ";
}
break;
case "Finish()":
renderFinish(lobby.maps, lobby.user1Info, lobby.user2Info);

View File

@ -213,7 +213,21 @@ deciders{
name = "Shoulder to shoulder cup"
rules = """Классическая Double elimination с сеткой лузеров. В сетке виннеров - БО3, в сетке лузеров - БО1, в суперфинале - БО5. Игрок, прошедший в суперфинал из верхней сетки, имеет +1 очко. Игрок из нижней сетки начинает с лузерпиком. """
}
shouldercup4x4{
description = true
raceCount = 4
maps = [["8p_burial_grounds", "Количество стратегических/реликтовых/критических точек: 32/2/4\nСпорных точек: 4/2/2\nТермогенераторы: 3"],
["8p_daturias_pits", "Количество стратегических/реликтовых/критических точек: 26/6/1\nСпорных точек: 2/2/1\nТермогенераторы: 0"],
["8p_forbidden_jungle", "Количество стратегических/реликтовых/критических точек: 36/5/0\nСпорных точек: 12/5/0\nТермогенераторы: 4"],
["8p_demes_northlands", "Количество стратегических/реликтовых/критических точек: 32/4/3\nСпорных точек: 3/2/2\nТермогенераторы: 2"],
["8p_glacier", "Количество стратегических/реликтовых/критических точек: 24/4/5\nСпорных точек: 0/0/4\nТермогенераторы: 4"],
["8p_jalaganda_lowlands", "Количество стратегических/реликтовых/критических точек: 26/5/3\nСпорных точек: 2/1/3\nТермогенераторы: 0"],
["8p_monse", "Количество стратегических/реликтовых/критических точек: 26/4/4\nСпорных точек: 2/2/4\nТермогенераторы: 1t"],
["8p_thurabis_plateau", "Количество стратегических/реликтовых/критических точек: 32/2/0\nСпорных точек: 12/2/0\nТермогенераторы: 0"],
["8p_verdant_isles_ed", "Количество стратегических/реликтовых/критических точек: 32/4/3\nСпорных точек: 0/4/3\nТермогенераторы: 0"]]
name = "Shoulder to shoulder cup"
rules = """Классическая Double elimination с сеткой лузеров. В сетке виннеров - БО3, в сетке лузеров - БО1, в суперфинале - БО5. Игрок, прошедший в суперфинал из верхней сетки, имеет +1 очко. Игрок из нижней сетки начинает с лузерпиком. """
}
springcup{
description = true
maps = [["4p_biffys_peril"],
@ -315,6 +329,27 @@ deciders{
name = "Frenetic map pool"
rules = """ """
}
freneticmappool{
raceCount = 2
description = true
maps =[["2p_battle_marshes"],
["2p_fallen_city_[Rem]"],
["2p_fata_morgana_[Rem]"],
["2p_emerald_river"],
["2p_quests_triumph"],
["2p_shrine_of_excellion_[Rem]"],
["2p_titan_fall_[Rem]"],
["2p_tranquilitys_end_[Rem]"],
["2p_fraziersdemise"],
["2p_bloody_hell_[Ed]"],
["2p_blood_river_[Rem]"],
["2p_deadly_fun_archeology"],
["2p_sugaroasis"],
["2p_outer_reaches"],
["2p_meeting_of_minds"]]
name = "Frenetic map pool"
rules = """ """
}
freneticmappool2{
raceCount = 2
description = true