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.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -70,16 +71,19 @@ public class SoloDraftRequestHandler extends LotroServerRequestHandler implement
|
|||||||
Player resourceOwner = getResourceOwnerSafely(request, participantId);
|
Player resourceOwner = getResourceOwnerSafely(request, participantId);
|
||||||
|
|
||||||
CardCollection collection = _collectionsManager.getPlayerCollection(resourceOwner, collectionType.getCode());
|
CardCollection collection = _collectionsManager.getPlayerCollection(resourceOwner, collectionType.getCode());
|
||||||
|
|
||||||
|
Iterable<SoloDraft.DraftChoice> availableChoices;
|
||||||
|
|
||||||
boolean finished = (Boolean) collection.getExtraInformation().get("finished");
|
boolean finished = (Boolean) collection.getExtraInformation().get("finished");
|
||||||
if (finished)
|
if (!finished) {
|
||||||
responseWriter.writeError(404);
|
int stage = ((Number) collection.getExtraInformation().get("stage")).intValue();
|
||||||
|
long playerSeed = ((Number) collection.getExtraInformation().get("seed")).longValue();
|
||||||
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);
|
|
||||||
|
|
||||||
|
SoloDraft soloDraft = soloDraftLeagueData.getSoloDraft();
|
||||||
|
availableChoices = soloDraft.getAvailableChoices(playerSeed, stage);
|
||||||
|
} else {
|
||||||
|
availableChoices = Collections.emptyList();
|
||||||
|
}
|
||||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||||
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
<appender name="R" class="org.apache.log4j.RollingFileAppender">
|
<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="MaxFileSize" value="10MB"/>
|
||||||
<param name="MaxBackupIndex" value="20"/>
|
<param name="MaxBackupIndex" value="20"/>
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
<layout class="org.apache.log4j.PatternLayout">
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<appender name="chat" class="org.apache.log4j.RollingFileAppender">
|
<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"/>
|
<param name="MaxFileSize" value="10MB"/>
|
||||||
<!-- Keep one backup file -->
|
<!-- Keep one backup file -->
|
||||||
<param name="MaxBackupIndex" value="20"/>
|
<param name="MaxBackupIndex" value="20"/>
|
||||||
|
|||||||
@@ -73,3 +73,9 @@ body {
|
|||||||
#filtering select {
|
#filtering select {
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#messageDiv {
|
||||||
|
text-align: center;
|
||||||
|
color: #ffffff;
|
||||||
|
font-size: 180%;
|
||||||
|
}
|
||||||
|
|||||||
@@ -654,5 +654,30 @@ var GempLotrCommunication = Class.extend({
|
|||||||
error:this.errorCheck(errorMap),
|
error:this.errorCheck(errorMap),
|
||||||
dataType:"html"
|
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 draftBut = $("<button>Go to draft</button>").button();
|
||||||
var draftFunc = (function (leagueCode) {
|
var draftFunc = (function (leagueCode) {
|
||||||
return function() {
|
return function() {
|
||||||
var participantId = getUrlParam("participantId");
|
location.href = "/gemp-lotr/soloDraft.html?leagueType="+leagueCode;
|
||||||
location.href = "/gemp-lotr/soloDraft.html?leagueType="+leagueCode+"&participantId="+participantId;
|
|
||||||
};
|
};
|
||||||
})(leagueType);
|
})(leagueType);
|
||||||
draftBut.click(draftFunc);
|
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/>
|
</select><br/>
|
||||||
Series duration in days: <input type="text" name="serieDuration"><br/>
|
Series duration in days: <input type="text" name="serieDuration"><br/>
|
||||||
Maximum matches in series: <input type="text" name="maxMatches"><br/>
|
Maximum matches in series: <input type="text" name="maxMatches"><br/>
|
||||||
<input id="previewSoloDraft" type="button" value="Preview sealed league">
|
<input id="previewSoloDraft" type="button" value="Preview solo draft league">
|
||||||
<input type="submit" value="Add sealed league">
|
<input type="submit" value="Add solo draft league">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<h2>Add constructed league</h2>
|
<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.chat.ChatServer;
|
||||||
import com.gempukku.lotro.collection.CollectionsManager;
|
import com.gempukku.lotro.collection.CollectionsManager;
|
||||||
import com.gempukku.lotro.collection.TransferDAO;
|
import com.gempukku.lotro.collection.TransferDAO;
|
||||||
|
import com.gempukku.lotro.common.ApplicationConfiguration;
|
||||||
import com.gempukku.lotro.db.CollectionDAO;
|
import com.gempukku.lotro.db.CollectionDAO;
|
||||||
import com.gempukku.lotro.db.DeckDAO;
|
import com.gempukku.lotro.db.DeckDAO;
|
||||||
import com.gempukku.lotro.db.GameHistoryDAO;
|
import com.gempukku.lotro.db.GameHistoryDAO;
|
||||||
@@ -135,14 +136,21 @@ public class ServerBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void constructObjects(Map<Type, Object> objectMap) {
|
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, HallServer.class).startServer();
|
||||||
extract(objectMap, LotroServer.class).startServer();
|
extract(objectMap, LotroServer.class).startServer();
|
||||||
extract(objectMap, ChatServer.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) {
|
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, HallServer.class).stopServer();
|
||||||
extract(objectMap, LotroServer.class).stopServer();
|
extract(objectMap, LotroServer.class).stopServer();
|
||||||
extract(objectMap, ChatServer.class).stopServer();
|
extract(objectMap, ChatServer.class).stopServer();
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
"data": {
|
"data": {
|
||||||
"seed": 0,
|
"seed": 0,
|
||||||
"randomResult": [
|
"randomResult": [
|
||||||
["card1", "card2"],
|
["1_1", "1_2"],
|
||||||
["card1", "card2"]
|
["1_3", "1_4"]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -19,12 +19,12 @@
|
|||||||
{
|
{
|
||||||
"choiceId": "starter1",
|
"choiceId": "starter1",
|
||||||
"url": "/images/draft1_starter1.jpg",
|
"url": "/images/draft1_starter1.jpg",
|
||||||
"cards": ["card1", "card2"]
|
"cards": ["1_5", "1_6"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"choiceId": "starter2",
|
"choiceId": "starter2",
|
||||||
"url": "/images/draft1_starter2.jpg",
|
"url": "/images/draft1_starter2.jpg",
|
||||||
"cards": ["card1", "card2"]
|
"cards": ["1_7", "1_8"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
"data": {
|
"data": {
|
||||||
"seed": 2,
|
"seed": 2,
|
||||||
"count": 3,
|
"count": 3,
|
||||||
"availableCards": ["card1", "card2", "card3", "card4"]
|
"availableCards": ["1_9", "1_10", "1_11", "1_12"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
"data": {
|
"data": {
|
||||||
"seed": 2,
|
"seed": 2,
|
||||||
"count": 3,
|
"count": 3,
|
||||||
"availableCards": ["card1", "card2", "card3", "card4"]
|
"availableCards": ["1_13", "1_14", "1_15", "1_16"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user