Any errors that now occur during processing response from server (JS bugs) will now display an error message and instruct to reload the page.

This commit is contained in:
marcins78@gmail.com
2013-01-17 23:07:54 +00:00
parent c87a4381f8
commit 84abeccc0f

View File

@@ -536,15 +536,15 @@ var GempLotrGameUI = Class.extend({
var tar = $(event.target); var tar = $(event.target);
if (tar.hasClass("actionArea")) { if (tar.hasClass("actionArea")) {
var selectedCardElem = tar.closest(".card"); var selectedCardElem = tar.closest(".card");
if (event.which == 1) { if (event.which == 1) {
var cardData = selectedCardElem.data("card"); var cardData = selectedCardElem.data("card");
if (cardData) { if (cardData) {
this.dragCardId = cardData.cardId; this.dragCardId = cardData.cardId;
this.dragStartX = event.clientX; this.dragStartX = event.clientX;
this.dragStartY = event.clientY; this.dragStartY = event.clientY;
return false; return false;
}
} }
}
} }
return true; return true;
}, },
@@ -936,7 +936,7 @@ var GempLotrGameUI = Class.extend({
buttons: buttons buttons: buttons
}).text(text); }).text(text);
}, },
getCardModifiersFunction:function (cardId, func) { getCardModifiersFunction:function (cardId, func) {
var that = this; var that = this;
this.communication.getGameCardModifiers(cardId, this.communication.getGameCardModifiers(cardId,
@@ -1058,46 +1058,50 @@ var GempLotrGameUI = Class.extend({
}, },
processGameEventsXml:function (element, animate) { processGameEventsXml:function (element, animate) {
this.channelNumber = element.getAttribute("cn"); try {
this.channelNumber = element.getAttribute("cn");
var gameEvents = element.getElementsByTagName("ge"); var gameEvents = element.getElementsByTagName("ge");
var hasDecision = false; var hasDecision = false;
// Go through all the events // Go through all the events
for (var i = 0; i < gameEvents.length; i++) { for (var i = 0; i < gameEvents.length; i++) {
var gameEvent = gameEvents[i]; var gameEvent = gameEvents[i];
this.processGameEvent(gameEvent, animate); this.processGameEvent(gameEvent, animate);
var eventType = gameEvent.getAttribute("type"); var eventType = gameEvent.getAttribute("type");
if (eventType == "D") if (eventType == "D")
hasDecision = true; hasDecision = true;
} }
if (this.allPlayerIds != null) { if (this.allPlayerIds != null) {
var clocksXml = element.getElementsByTagName("clocks"); var clocksXml = element.getElementsByTagName("clocks");
if (clocksXml.length > 0) { if (clocksXml.length > 0) {
var clocks = clocksXml[0].getElementsByTagName("clock"); var clocks = clocksXml[0].getElementsByTagName("clock");
for (var i = 0; i < clocks.length; i++) { for (var i = 0; i < clocks.length; i++) {
var clock = clocks[i]; var clock = clocks[i];
var participantId = clock.getAttribute("participantId"); var participantId = clock.getAttribute("participantId");
var index = this.getPlayerIndex(participantId); var index = this.getPlayerIndex(participantId);
var value = parseInt(clock.childNodes[0].nodeValue); var value = parseInt(clock.childNodes[0].nodeValue);
var sign = (value < 0) ? "-" : ""; var sign = (value < 0) ? "-" : "";
value = Math.abs(value); value = Math.abs(value);
var minutes = Math.floor(value / 60); var minutes = Math.floor(value / 60);
var seconds = value % 60; var seconds = value % 60;
$("#clock" + index).text(sign + minutes + ":" + ((seconds < 10) ? ("0" + seconds) : seconds)); $("#clock" + index).text(sign + minutes + ":" + ((seconds < 10) ? ("0" + seconds) : seconds));
}
} }
} }
}
if (!hasDecision) { if (!hasDecision) {
this.animations.updateGameState(animate); this.animations.updateGameState(animate);
} else { } else {
this.startAnimatingTitle(); this.startAnimatingTitle();
}
} catch (e) {
this.showErrorDialog("Game error", "There was an error while processing game events in your browser. Reload the game to continue", true, false, false);
} }
}, },
@@ -1481,7 +1485,7 @@ var GempLotrGameUI = Class.extend({
var tar = $(event.target); var tar = $(event.target);
if (tar.hasClass("actionArea")) { if (tar.hasClass("actionArea")) {
var selectedCardElem = tar.closest(".card"); var selectedCardElem = tar.closest(".card");
that.displayCardInfo(selectedCardElem.data("card")); that.displayCardInfo(selectedCardElem.data("card"));
} }
return false; return false;
}, },
@@ -1976,7 +1980,7 @@ var GempLotrGameUI = Class.extend({
if (card.assign != null) if (card.assign != null)
assignmentMap[card.assign] += " " + card.cardId; assignmentMap[card.assign] += " " + card.cardId;
else else
atLeastOnMinionUnassigned=true; atLeastOnMinionUnassigned = true;
}); });
if (atLeastOnMinionUnassigned && !confirm("At least one minion has not been assigned, do you want to proceed?")) if (atLeastOnMinionUnassigned && !confirm("At least one minion has not been assigned, do you want to proceed?"))