Adding skirmish strength visualisation.
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
package com.gempukku.lotro.game;
|
package com.gempukku.lotro.game;
|
||||||
|
|
||||||
import com.gempukku.lotro.common.CardType;
|
import com.gempukku.lotro.common.CardType;
|
||||||
|
import com.gempukku.lotro.game.state.GameState;
|
||||||
|
import com.gempukku.lotro.game.state.Skirmish;
|
||||||
import com.gempukku.lotro.logic.decisions.AwaitingDecision;
|
import com.gempukku.lotro.logic.decisions.AwaitingDecision;
|
||||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||||
@@ -155,6 +157,23 @@ public class LotroGameMediator {
|
|||||||
secondsLeft.put(player, _maxSecondsForGamePerPlayer - playerClock.getValue() - getCurrentUserPendingTime(player));
|
secondsLeft.put(player, _maxSecondsForGamePerPlayer - playerClock.getValue() - getCurrentUserPendingTime(player));
|
||||||
}
|
}
|
||||||
visitor.visitClock(secondsLeft);
|
visitor.visitClock(secondsLeft);
|
||||||
|
|
||||||
|
GameState gameState = _lotroGame.getGameState();
|
||||||
|
if (gameState != null) {
|
||||||
|
Skirmish skirmish = gameState.getSkirmish();
|
||||||
|
if (skirmish != null) {
|
||||||
|
int fpStrength = 0;
|
||||||
|
PhysicalCard fpChar = skirmish.getFellowshipCharacter();
|
||||||
|
if (fpChar != null)
|
||||||
|
fpStrength = _lotroGame.getModifiersQuerying().getStrength(gameState, fpChar);
|
||||||
|
|
||||||
|
int minionStrength = 0;
|
||||||
|
for (PhysicalCard minion : skirmish.getShadowCharacters())
|
||||||
|
minionStrength += _lotroGame.getModifiersQuerying().getStrength(gameState, minion);
|
||||||
|
|
||||||
|
visitor.visitSkirmishStats(fpStrength, minionStrength);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
visitor.visitGameEvent(new GameEvent(GameEvent.Type.WARNING).message("Your browser was inactive for too long, please refresh your browser window to continue playing"));
|
visitor.visitGameEvent(new GameEvent(GameEvent.Type.WARNING).message("Your browser was inactive for too long, please refresh your browser window to continue playing"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,4 +10,6 @@ public interface ParticipantCommunicationVisitor {
|
|||||||
public void visitAwaitingDecision(AwaitingDecision awaitingDecision);
|
public void visitAwaitingDecision(AwaitingDecision awaitingDecision);
|
||||||
|
|
||||||
public void visitGameEvent(GameEvent gameEvent);
|
public void visitGameEvent(GameEvent gameEvent);
|
||||||
|
|
||||||
|
public void visitSkirmishStats(int fpStrength, int shadowStrength);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -517,6 +517,14 @@ public class ServerResource {
|
|||||||
public void visitClock(Map<String, Integer> secondsLeft) {
|
public void visitClock(Map<String, Integer> secondsLeft) {
|
||||||
_element.appendChild(serializeClocks(_doc, secondsLeft));
|
_element.appendChild(serializeClocks(_doc, secondsLeft));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void visitSkirmishStats(int fpStrength, int shadowStrength) {
|
||||||
|
Element skirmish = _doc.createElement("skirmish");
|
||||||
|
skirmish.setAttribute("fpStrength", String.valueOf(fpStrength));
|
||||||
|
skirmish.setAttribute("shadowStrength", String.valueOf(shadowStrength));
|
||||||
|
_element.appendChild(skirmish);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Node serializeClocks(Document doc, Map<String, Integer> secondsLeft) {
|
private Node serializeClocks(Document doc, Map<String, Integer> secondsLeft) {
|
||||||
|
|||||||
@@ -55,8 +55,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.skirmish {
|
.skirmish {
|
||||||
border-width: 3px;
|
}
|
||||||
border-color: #ff0000;
|
|
||||||
|
.fpStrength, .shadowStrength {
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
background-color: #ffffff;
|
||||||
|
opacity: 0.5;
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#chatBox {
|
#chatBox {
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ var GempLotrGameUI = Class.extend({
|
|||||||
specialGroup: null,
|
specialGroup: null,
|
||||||
|
|
||||||
skirmishGroupDiv: null,
|
skirmishGroupDiv: null,
|
||||||
|
fpStrengthDiv: null,
|
||||||
|
shadowStrengthDiv: null,
|
||||||
skirmishShadowGroup: null,
|
skirmishShadowGroup: null,
|
||||||
skirmishFellowshipGroup: null,
|
skirmishFellowshipGroup: null,
|
||||||
|
|
||||||
@@ -302,9 +304,13 @@ var GempLotrGameUI = Class.extend({
|
|||||||
if (currentPlayerTurn) {
|
if (currentPlayerTurn) {
|
||||||
this.skirmishShadowGroup.setBounds(x + 3, y + 3, groupWidth - 6, heightScales[2] * heightPerScale - 6);
|
this.skirmishShadowGroup.setBounds(x + 3, y + 3, groupWidth - 6, heightScales[2] * heightPerScale - 6);
|
||||||
this.skirmishFellowshipGroup.setBounds(x + 3, y + heightScales[2] * heightPerScale + padding + 3, groupWidth - 6, heightScales[3] * heightPerScale - 6);
|
this.skirmishFellowshipGroup.setBounds(x + 3, y + heightScales[2] * heightPerScale + padding + 3, groupWidth - 6, heightScales[3] * heightPerScale - 6);
|
||||||
|
this.fpStrengthDiv.css({left: 2 + "px", top: groupWidth - 20 - 2 + "px", width: 20, height: 20});
|
||||||
|
this.shadowStrengthDiv.css({left: 2 + "px", top: 2 + "px", width: 20, height: 20});
|
||||||
} else {
|
} else {
|
||||||
this.skirmishFellowshipGroup.setBounds(x + 3, y + 3, groupWidth - 6, heightScales[1] * heightPerScale - 6);
|
this.skirmishFellowshipGroup.setBounds(x + 3, y + 3, groupWidth - 6, heightScales[1] * heightPerScale - 6);
|
||||||
this.skirmishShadowGroup.setBounds(x + 3, y + heightScales[1] * heightPerScale + padding + 3, groupWidth - 6, heightScales[2] * heightPerScale - 6);
|
this.skirmishShadowGroup.setBounds(x + 3, y + heightScales[1] * heightPerScale + padding + 3, groupWidth - 6, heightScales[2] * heightPerScale - 6);
|
||||||
|
this.shadowStrengthDiv.css({left: 2 + "px", top: groupWidth - 20 - 2 + "px", width: 20, height: 20});
|
||||||
|
this.fpStrengthDiv.css({left: 2 + "px", top: 2 + "px", width: 20, height: 20});
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
@@ -395,6 +401,12 @@ var GempLotrGameUI = Class.extend({
|
|||||||
this.warning(gameEvent);
|
this.warning(gameEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var skirmish = element.getElementsByTagName("skirmish")
|
||||||
|
if (skirmish.length > 0) {
|
||||||
|
this.fpStrengthDiv.text(skirmish[0].getAttribute("fpStrength"));
|
||||||
|
this.shadowStrengthDiv.text(skirmish[1].getAttribute("shadowStrength"));
|
||||||
|
}
|
||||||
|
|
||||||
if (gameEvents.length > 0)
|
if (gameEvents.length > 0)
|
||||||
this.layoutUI(true);
|
this.layoutUI(true);
|
||||||
|
|
||||||
@@ -474,14 +486,21 @@ var GempLotrGameUI = Class.extend({
|
|||||||
$(this).data("card").skirmish = true;
|
$(this).data("card").skirmish = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.fpStrengthDiv = $("<div class='fpStrength'></div>");
|
||||||
|
this.shadowStrengthDiv = $("<div class='shadowStrength'></div>");
|
||||||
|
|
||||||
this.skirmishGroupDiv = $("<div class='ui-widget-content skirmish'></div>");
|
this.skirmishGroupDiv = $("<div class='ui-widget-content skirmish'></div>");
|
||||||
this.skirmishGroupDiv.css({"border-radius": "7px", "border-color": "#ff0000"});
|
this.skirmishGroupDiv.css({"border-radius": "7px", "border-color": "#ff0000"});
|
||||||
|
this.skirmishGroupDiv.append(this.fpStrengthDiv);
|
||||||
|
this.skirmishGroupDiv.append(this.shadowStrengthDiv);
|
||||||
$("#main").append(this.skirmishGroupDiv);
|
$("#main").append(this.skirmishGroupDiv);
|
||||||
},
|
},
|
||||||
|
|
||||||
endSkirmish: function() {
|
endSkirmish: function() {
|
||||||
this.skirmishGroupDiv.remove();
|
this.skirmishGroupDiv.remove();
|
||||||
this.skirmishGroupDiv = null;
|
this.skirmishGroupDiv = null;
|
||||||
|
this.fpStrengthDiv = null;
|
||||||
|
this.shadowStrengthDiv = null;
|
||||||
|
|
||||||
$(".card").each(function() {
|
$(".card").each(function() {
|
||||||
var cardData = $(this).data("card");
|
var cardData = $(this).data("card");
|
||||||
|
|||||||
Reference in New Issue
Block a user