Drafting appears to be working
This commit is contained in:
@@ -23,6 +23,7 @@ import org.w3c.dom.Element;
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -70,16 +71,19 @@ public class SoloDraftRequestHandler extends LotroServerRequestHandler implement
|
||||
Player resourceOwner = getResourceOwnerSafely(request, participantId);
|
||||
|
||||
CardCollection collection = _collectionsManager.getPlayerCollection(resourceOwner, collectionType.getCode());
|
||||
|
||||
Iterable<SoloDraft.DraftChoice> availableChoices;
|
||||
|
||||
boolean finished = (Boolean) collection.getExtraInformation().get("finished");
|
||||
if (finished)
|
||||
responseWriter.writeError(404);
|
||||
|
||||
int stage = ((Number) collection.getExtraInformation().get("stage")).intValue();
|
||||
long playerSeed = ((Number) collection.getExtraInformation().get("seed")).longValue();
|
||||
|
||||
SoloDraft soloDraft = soloDraftLeagueData.getSoloDraft();
|
||||
Iterable<SoloDraft.DraftChoice> availableChoices = soloDraft.getAvailableChoices(playerSeed, stage);
|
||||
if (!finished) {
|
||||
int stage = ((Number) collection.getExtraInformation().get("stage")).intValue();
|
||||
long playerSeed = ((Number) collection.getExtraInformation().get("seed")).longValue();
|
||||
|
||||
SoloDraft soloDraft = soloDraftLeagueData.getSoloDraft();
|
||||
availableChoices = soloDraft.getAvailableChoices(playerSeed, stage);
|
||||
} else {
|
||||
availableChoices = Collections.emptyList();
|
||||
}
|
||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</layout>
|
||||
</appender>
|
||||
<appender name="R" class="org.apache.log4j.RollingFileAppender">
|
||||
<param name="file" value="${catalina.base}/logs/gemp-lotr.log"/>
|
||||
<param name="file" value="logs/gemp-lotr.log"/>
|
||||
<param name="MaxFileSize" value="10MB"/>
|
||||
<param name="MaxBackupIndex" value="20"/>
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
@@ -17,7 +17,7 @@
|
||||
</appender>
|
||||
|
||||
<appender name="chat" class="org.apache.log4j.RollingFileAppender">
|
||||
<param name="file" value="${catalina.base}/logs/chat.log"/>
|
||||
<param name="file" value="logs/chat.log"/>
|
||||
<param name="MaxFileSize" value="10MB"/>
|
||||
<!-- Keep one backup file -->
|
||||
<param name="MaxBackupIndex" value="20"/>
|
||||
|
||||
@@ -73,3 +73,9 @@ body {
|
||||
#filtering select {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
#messageDiv {
|
||||
text-align: center;
|
||||
color: #ffffff;
|
||||
font-size: 180%;
|
||||
}
|
||||
|
||||
@@ -654,5 +654,30 @@ var GempLotrCommunication = Class.extend({
|
||||
error:this.errorCheck(errorMap),
|
||||
dataType:"html"
|
||||
});
|
||||
},
|
||||
getDraft:function (leagueType, callback, errorMap) {
|
||||
$.ajax({
|
||||
type:"GET",
|
||||
url:this.url + "/soloDraft/"+leagueType,
|
||||
cache:false,
|
||||
data:{
|
||||
participantId:getUrlParam("participantId")},
|
||||
success:callback,
|
||||
error:this.errorCheck(errorMap),
|
||||
dataType:"xml"
|
||||
});
|
||||
},
|
||||
makeDraftPick:function (leagueType, choiceId, callback, errorMap) {
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:this.url + "/soloDraft/"+leagueType,
|
||||
cache:false,
|
||||
data:{
|
||||
choiceId:choiceId,
|
||||
participantId:getUrlParam("participantId")},
|
||||
success:callback,
|
||||
error:this.errorCheck(errorMap),
|
||||
dataType:"xml"
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -66,8 +66,7 @@ var LeagueResultsUI = Class.extend({
|
||||
var draftBut = $("<button>Go to draft</button>").button();
|
||||
var draftFunc = (function (leagueCode) {
|
||||
return function() {
|
||||
var participantId = getUrlParam("participantId");
|
||||
location.href = "/gemp-lotr/soloDraft.html?leagueType="+leagueCode+"&participantId="+participantId;
|
||||
location.href = "/gemp-lotr/soloDraft.html?leagueType="+leagueCode;
|
||||
};
|
||||
})(leagueType);
|
||||
draftBut.click(draftFunc);
|
||||
|
||||
@@ -0,0 +1,299 @@
|
||||
var GempLotrSoloDraftUI = Class.extend({
|
||||
comm:null,
|
||||
|
||||
topDiv:null,
|
||||
bottomDiv:null,
|
||||
|
||||
messageDiv:null,
|
||||
picksDiv:null,
|
||||
draftedDiv:null,
|
||||
|
||||
picksCardGroup:null,
|
||||
draftedCardGroup:null,
|
||||
|
||||
leagueType:null,
|
||||
|
||||
init:function () {
|
||||
var that = this;
|
||||
|
||||
this.comm = new GempLotrCommunication("/gemp-lotr-server", that.processError);
|
||||
|
||||
this.leagueType = getUrlParam("leagueType");
|
||||
|
||||
this.topDiv = $("#topDiv");
|
||||
this.bottomDiv = $("#bottomDiv");
|
||||
|
||||
this.messageDiv = $("#messageDiv");
|
||||
this.picksDiv = $("#picksDiv");
|
||||
this.draftedDiv = $("#draftedDiv");
|
||||
|
||||
this.picksCardGroup = new NormalCardGroup(this.picksDiv, function (card) {
|
||||
return true;
|
||||
});
|
||||
this.picksCardGroup.maxCardHeight = 200;
|
||||
|
||||
this.draftedCardGroup = new NormalCardGroup(this.draftedDiv, function (card) {
|
||||
return true;
|
||||
});
|
||||
this.draftedCardGroup.maxCardHeight = 200;
|
||||
|
||||
this.selectionFunc = this.addCardToDeckAndLayout;
|
||||
|
||||
$("body").click(
|
||||
function (event) {
|
||||
return that.clickCardFunction(event);
|
||||
});
|
||||
$("body").mousedown(
|
||||
function (event) {
|
||||
return that.dragStartCardFunction(event);
|
||||
});
|
||||
$("body").mouseup(
|
||||
function (event) {
|
||||
return that.dragStopCardFunction(event);
|
||||
});
|
||||
|
||||
var width = $(window).width();
|
||||
var height = $(window).height();
|
||||
|
||||
this.infoDialog = $("<div></div>")
|
||||
.dialog({
|
||||
autoOpen:false,
|
||||
closeOnEscape:true,
|
||||
resizable:false,
|
||||
title:"Card information"
|
||||
});
|
||||
|
||||
var swipeOptions = {
|
||||
threshold:20,
|
||||
swipeUp:function (event) {
|
||||
that.infoDialog.prop({ scrollTop:that.infoDialog.prop("scrollHeight") });
|
||||
return false;
|
||||
},
|
||||
swipeDown:function (event) {
|
||||
that.infoDialog.prop({ scrollTop:0 });
|
||||
return false;
|
||||
}
|
||||
};
|
||||
this.infoDialog.swipe(swipeOptions);
|
||||
|
||||
this.getDraftState();
|
||||
},
|
||||
|
||||
getDraftState:function () {
|
||||
var that = this;
|
||||
this.comm.getDraft(this.leagueType,
|
||||
function (xml) {
|
||||
var root = xml.documentElement;
|
||||
if (root.tagName == "availablePicks") {
|
||||
var availablePicks = root.getElementsByTagName("availablePick");
|
||||
for (var i = 0; i < availablePicks.length; i++) {
|
||||
var availablePick = availablePicks[i];
|
||||
var id = availablePick.getAttribute("id");
|
||||
var url = availablePick.getAttribute("url");
|
||||
var blueprintId = availablePick.getAttribute("blueprintId");
|
||||
|
||||
if (blueprintId != null) {
|
||||
var card = new Card(blueprintId, "picks", "deck", "player");
|
||||
var cardDiv = createCardDiv(card.imageUrl, null, card.isFoil(), false, false, card.hasErrata());
|
||||
cardDiv.data("card", card);
|
||||
cardDiv.data("choiceId", id);
|
||||
that.picksDiv.append(cardDiv);
|
||||
} else {
|
||||
var card = new Card("rules", "picks", "deck", "player");
|
||||
var cardDiv = createCardDiv(url, null, false, false, true, false);
|
||||
cardDiv.data("card", card);
|
||||
cardDiv.data("choiceId", id);
|
||||
that.picksDiv.append(cardDiv);
|
||||
}
|
||||
}
|
||||
that.picksCardGroup.layoutCards();
|
||||
if (availablePicks.length > 0)
|
||||
that.messageDiv.text("Make a pick");
|
||||
else
|
||||
that.messageDiv.text("Draft is finished");
|
||||
}
|
||||
});
|
||||
|
||||
this.comm.getCollection(this.leagueType, null, 0, 1000,
|
||||
function (xml) {
|
||||
var root = xml.documentElement;
|
||||
if (root.tagName == "collection") {
|
||||
var cards = root.getElementsByTagName("card");
|
||||
for (var i=0; i<cards.length; i++) {
|
||||
var card = cards[i];
|
||||
var count = card.getAttribute("count");
|
||||
var blueprintId = card.getAttribute("blueprintId");
|
||||
for (var no = 0; no < count; no++) {
|
||||
var card = new Card(blueprintId, "drafted", "deck", "player");
|
||||
var cardDiv = createCardDiv(card.imageUrl, null, card.isFoil(), false, false, card.hasErrata());
|
||||
cardDiv.data("card", card);
|
||||
that.draftedDiv.append(cardDiv);
|
||||
}
|
||||
}
|
||||
that.draftedCardGroup.layoutCards();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
clickCardFunction:function (event) {
|
||||
var that = this;
|
||||
|
||||
var tar = $(event.target);
|
||||
if (tar.length == 1 && tar[0].tagName == "A")
|
||||
return true;
|
||||
|
||||
if (!this.successfulDrag && this.infoDialog.dialog("isOpen")) {
|
||||
this.infoDialog.dialog("close");
|
||||
event.stopPropagation();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (tar.hasClass("actionArea")) {
|
||||
var selectedCardElem = tar.closest(".card");
|
||||
if (event.which == 1) {
|
||||
if (!this.successfulDrag) {
|
||||
if (event.shiftKey) {
|
||||
this.displayCardInfo(selectedCardElem.data("card"));
|
||||
} else {
|
||||
if (selectedCardElem.data("card").zone == "picks") {
|
||||
var choiceId = selectedCardElem.data("choiceId");
|
||||
that.comm.makeDraftPick(that.leagueType, choiceId, function (xml) {
|
||||
var root = xml.documentElement;
|
||||
if (root.tagName == "pickResult") {
|
||||
var pickedCards = root.getElementsByTagName("pickedCard");
|
||||
for (var i = 0; i < pickedCards.length; i++) {
|
||||
var pickedCard = pickedCards[i];
|
||||
var blueprintId = pickedCard.getAttribute("blueprintId");
|
||||
var count = pickedCard.getAttribute("count");
|
||||
for (var no = 0; no < count; no++) {
|
||||
var card = new Card(blueprintId, "drafted", "deck", "player");
|
||||
var cardDiv = createCardDiv(card.imageUrl, null, card.isFoil(), false, false, card.hasErrata());
|
||||
cardDiv.data("card", card);
|
||||
that.draftedDiv.append(cardDiv);
|
||||
}
|
||||
}
|
||||
that.draftedCardGroup.layoutCards();
|
||||
|
||||
var availablePicks = root.getElementsByTagName("availablePick");
|
||||
for (var i = 0; i < availablePicks.length; i++) {
|
||||
var availablePick = availablePicks[i];
|
||||
var id = availablePick.getAttribute("id");
|
||||
var url = availablePick.getAttribute("url");
|
||||
var blueprintId = availablePick.getAttribute("blueprintId");
|
||||
|
||||
if (blueprintId != null) {
|
||||
var card = new Card(blueprintId, "picks", "deck", "player");
|
||||
var cardDiv = createCardDiv(card.imageUrl, null, card.isFoil(), false, false, card.hasErrata());
|
||||
cardDiv.data("card", card);
|
||||
cardDiv.data("choiceId", id);
|
||||
that.picksDiv.append(cardDiv);
|
||||
} else {
|
||||
var card = new Card("rules", "picks", "deck", "player");
|
||||
var cardDiv = createCardDiv(url, null, false, false, true, false);
|
||||
cardDiv.data("card", card);
|
||||
cardDiv.data("choiceId", id);
|
||||
that.picksDiv.append(cardDiv);
|
||||
}
|
||||
}
|
||||
that.picksCardGroup.layoutCards();
|
||||
if (availablePicks.length > 0)
|
||||
that.messageDiv.text("Make a pick");
|
||||
else
|
||||
that.messageDiv.text("Draft is finished");
|
||||
}
|
||||
});
|
||||
$(".card", that.picksDiv).remove();
|
||||
}
|
||||
}
|
||||
|
||||
event.stopPropagation();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
dragCardData:null,
|
||||
dragStartX:null,
|
||||
dragStartY:null,
|
||||
successfulDrag:null,
|
||||
|
||||
dragStartCardFunction:function (event) {
|
||||
this.successfulDrag = false;
|
||||
var tar = $(event.target);
|
||||
if (tar.hasClass("actionArea")) {
|
||||
var selectedCardElem = tar.closest(".card");
|
||||
if (event.which == 1) {
|
||||
this.dragCardData = selectedCardElem.data("card");
|
||||
this.dragStartX = event.clientX;
|
||||
this.dragStartY = event.clientY;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
dragStopCardFunction:function (event) {
|
||||
if (this.dragCardData != null) {
|
||||
if (this.dragStartY - event.clientY >= 20) {
|
||||
this.displayCardInfo(this.dragCardData);
|
||||
this.successfulDrag = true;
|
||||
}
|
||||
this.dragCardData = null;
|
||||
this.dragStartX = null;
|
||||
this.dragStartY = null;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
displayCardInfo:function (card) {
|
||||
this.infoDialog.html("");
|
||||
this.infoDialog.html("<div style='scroll: auto'></div>");
|
||||
this.infoDialog.append(createFullCardDiv(card.imageUrl, card.foil, card.horizontal, card.isPack()));
|
||||
if (card.hasWikiInfo())
|
||||
this.infoDialog.append("<div><a href='" + card.getWikiLink() + "' target='_blank'>Wiki</a></div>");
|
||||
var windowWidth = $(window).width();
|
||||
var windowHeight = $(window).height();
|
||||
|
||||
var horSpace = 30;
|
||||
var vertSpace = 45;
|
||||
|
||||
if (card.horizontal) {
|
||||
// 500x360
|
||||
this.infoDialog.dialog({width:Math.min(500 + horSpace, windowWidth), height:Math.min(380 + vertSpace, windowHeight)});
|
||||
} else {
|
||||
// 360x500
|
||||
this.infoDialog.dialog({width:Math.min(360 + horSpace, windowWidth), height:Math.min(520 + vertSpace, windowHeight)});
|
||||
}
|
||||
this.infoDialog.dialog("open");
|
||||
},
|
||||
|
||||
layoutUI:function (layoutDivs) {
|
||||
if (layoutDivs) {
|
||||
var messageHeight = 40;
|
||||
var padding = 5;
|
||||
|
||||
var topWidth = this.topDiv.width();
|
||||
var topHeight = this.topDiv.height();
|
||||
|
||||
var bottomWidth = this.bottomDiv.width();
|
||||
var bottomHeight = this.bottomDiv.height();
|
||||
|
||||
this.picksDiv.css({position:"absolute", left:padding, top:messageHeight+padding, width:topWidth-padding*2, height:topHeight-messageHeight-padding*2});
|
||||
this.picksCardGroup.setBounds(0, 0, topWidth-padding*2, topHeight-messageHeight-padding*2);
|
||||
|
||||
this.draftedDiv.css({position:"absolute", left:padding, top:padding, width:bottomWidth-padding*2, height:bottomHeight-padding*2});
|
||||
this.draftedCardGroup.setBounds(0, 0, bottomWidth-padding*2, bottomHeight-padding*2);
|
||||
} else {
|
||||
this.picksCardGroup.layoutCards();
|
||||
this.draftedCardGroup.layoutCards();
|
||||
}
|
||||
},
|
||||
|
||||
processError:function (xhr, ajaxOptions, thrownError) {
|
||||
if (thrownError != "abort")
|
||||
alert("There was a problem during communication with server");
|
||||
}
|
||||
});
|
||||
@@ -207,8 +207,8 @@
|
||||
</select><br/>
|
||||
Series duration in days: <input type="text" name="serieDuration"><br/>
|
||||
Maximum matches in series: <input type="text" name="maxMatches"><br/>
|
||||
<input id="previewSoloDraft" type="button" value="Preview sealed league">
|
||||
<input type="submit" value="Add sealed league">
|
||||
<input id="previewSoloDraft" type="button" value="Preview solo draft league">
|
||||
<input type="submit" value="Add solo draft league">
|
||||
</form>
|
||||
|
||||
<h2>Add constructed league</h2>
|
||||
|
||||
81
gemp-lotr/gemp-lotr-async/src/main/web/soloDraft.html
Normal file
81
gemp-lotr/gemp-lotr-async/src/main/web/soloDraft.html
Normal file
@@ -0,0 +1,81 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Gemp-LotR</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/gemp-001/deckBuild.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/dark-hive/jquery-ui-1.8.16.custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/jquery.contextMenu.css">
|
||||
<link rel="stylesheet" type="text/css" href="js/jquery/styles/jquery.spinnercontrol.css">
|
||||
|
||||
<script type="text/javascript" src="js/jquery/jquery-1.6.2.js"></script>
|
||||
<script type="text/javascript" src="js/jquery/jquery-ui-1.8.16.custom.min.js"></script>
|
||||
<script type="text/javascript" src="js/jquery/jquery.cookie.js"></script>
|
||||
<script type="text/javascript" src="js/jquery/jquery.spinnercontrol.js"></script>
|
||||
<script type="text/javascript" src="js/jquery/jquery.layout.js"></script>
|
||||
<script type="text/javascript" src="js/jquery/jquery.touchSwipe.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/gemp-019/inheritance.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/common.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/logging.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/chat.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/communication.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/deliveryService.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/commonUi.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/cardFilter.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/gemp-019/jCardGroup.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/set20.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/hobbit.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/jCards.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/gemp-019/hallUi.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/leagueResultsUi.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/tournamentResultsUi.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/statsUi.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/playerStatsUi.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/gameHistoryUi.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/deckBuildingUi.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/gameUi.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/gameAnimations.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/merchantUi.js"></script>
|
||||
<script type="text/javascript" src="js/gemp-019/soloDraftUi.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(
|
||||
function () {
|
||||
var ui = new GempLotrSoloDraftUI();
|
||||
|
||||
$('body').layout({
|
||||
applyDefaultStyles:true,
|
||||
onresize:function () {
|
||||
ui.layoutUI(true);
|
||||
},
|
||||
north__minSize:"30%"
|
||||
});
|
||||
|
||||
$(".ui-layout-pane").css({"background-color":"#000000"});
|
||||
|
||||
$(window).resize(function () {
|
||||
ui.layoutUI(true);
|
||||
});
|
||||
|
||||
ui.layoutUI(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topDiv" class="ui-layout-north">
|
||||
<div id="messageDiv"></div>
|
||||
<div id="picksDiv"></div>
|
||||
</div>
|
||||
<div id="bottomDiv" class="ui-layout-center">
|
||||
<div id="draftedDiv"></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -4,6 +4,7 @@ import com.gempukku.lotro.cards.CardSets;
|
||||
import com.gempukku.lotro.chat.ChatServer;
|
||||
import com.gempukku.lotro.collection.CollectionsManager;
|
||||
import com.gempukku.lotro.collection.TransferDAO;
|
||||
import com.gempukku.lotro.common.ApplicationConfiguration;
|
||||
import com.gempukku.lotro.db.CollectionDAO;
|
||||
import com.gempukku.lotro.db.DeckDAO;
|
||||
import com.gempukku.lotro.db.GameHistoryDAO;
|
||||
@@ -135,14 +136,21 @@ public class ServerBuilder {
|
||||
}
|
||||
|
||||
public static void constructObjects(Map<Type, Object> objectMap) {
|
||||
extract(objectMap, MtgCardServer.class).startServer();
|
||||
if (isMtgEnabled())
|
||||
extract(objectMap, MtgCardServer.class).startServer();
|
||||
extract(objectMap, HallServer.class).startServer();
|
||||
extract(objectMap, LotroServer.class).startServer();
|
||||
extract(objectMap, ChatServer.class).startServer();
|
||||
}
|
||||
|
||||
private static boolean isMtgEnabled() {
|
||||
String mtgEnabled = ApplicationConfiguration.getProperty("mtg.enabled");
|
||||
return mtgEnabled == null || mtgEnabled.equals("true");
|
||||
}
|
||||
|
||||
public static void destroyObjects(Map<Type, Object> objectMap) {
|
||||
extract(objectMap, MtgCardServer.class).stopServer();
|
||||
if (isMtgEnabled())
|
||||
extract(objectMap, MtgCardServer.class).stopServer();
|
||||
extract(objectMap, HallServer.class).stopServer();
|
||||
extract(objectMap, LotroServer.class).stopServer();
|
||||
extract(objectMap, ChatServer.class).stopServer();
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
"data": {
|
||||
"seed": 0,
|
||||
"randomResult": [
|
||||
["card1", "card2"],
|
||||
["card1", "card2"]
|
||||
["1_1", "1_2"],
|
||||
["1_3", "1_4"]
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -19,12 +19,12 @@
|
||||
{
|
||||
"choiceId": "starter1",
|
||||
"url": "/images/draft1_starter1.jpg",
|
||||
"cards": ["card1", "card2"]
|
||||
"cards": ["1_5", "1_6"]
|
||||
},
|
||||
{
|
||||
"choiceId": "starter2",
|
||||
"url": "/images/draft1_starter2.jpg",
|
||||
"cards": ["card1", "card2"]
|
||||
"cards": ["1_7", "1_8"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -40,7 +40,7 @@
|
||||
"data": {
|
||||
"seed": 2,
|
||||
"count": 3,
|
||||
"availableCards": ["card1", "card2", "card3", "card4"]
|
||||
"availableCards": ["1_9", "1_10", "1_11", "1_12"]
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -48,7 +48,7 @@
|
||||
"data": {
|
||||
"seed": 2,
|
||||
"count": 3,
|
||||
"availableCards": ["card1", "card2", "card3", "card4"]
|
||||
"availableCards": ["1_13", "1_14", "1_15", "1_16"]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user