Show badges based on highest tier of each square you've beaten

This commit is contained in:
drdev
2016-01-07 03:49:54 +00:00
parent a198b911b3
commit 52803dd93a
5 changed files with 55 additions and 15 deletions

View File

@@ -8,16 +8,22 @@ import forge.planarconquest.ConquestController.GameRunner;
public abstract class ConquestEvent {
private final ConquestLocation location;
private final int tier;
private Deck opponentDeck;
public ConquestEvent(ConquestLocation location0) {
public ConquestEvent(ConquestLocation location0, int tier0) {
location = location0;
tier = tier0;
}
public ConquestLocation getLocation() {
return location;
}
public int getTier() {
return tier;
}
public Deck getOpponentDeck() {
if (opponentDeck == null) {
opponentDeck = buildOpponentDeck();

View File

@@ -115,7 +115,7 @@ public class ConquestLocation implements IXmlWritable {
public ConquestEvent getEvent() {
//TODO: Make this pull from predefined events
return new ConquestEvent(this) {
return new ConquestEvent(this, 1) {
private final PaperCard commander = Aggregates.random(getRegion().getCommanders());
@Override

View File

@@ -38,6 +38,13 @@ public class ConquestPlaneData implements IXmlWritable {
return result != null && result.getWins() > 0;
}
public ConquestRecord getEventRecord(ConquestLocation loc) {
return getEventRecord(loc.getRegionIndex(), loc.getRow(), loc.getCol());
}
public ConquestRecord getEventRecord(int regionIndex, int row, int col) {
return eventResults[regionIndex * Region.ROWS_PER_REGION * Region.COLS_PER_REGION + row * Region.COLS_PER_REGION + col];
}
private ConquestRecord getOrCreateResult(ConquestEvent event) {
ConquestLocation loc = event.getLocation();
int index = loc.getRegionIndex() * Region.ROWS_PER_REGION * Region.COLS_PER_REGION + loc.getRow() * Region.COLS_PER_REGION + loc.getCol();
@@ -50,7 +57,7 @@ public class ConquestPlaneData implements IXmlWritable {
}
public void addWin(ConquestEvent event) {
getOrCreateResult(event).addWin();
getOrCreateResult(event).addWin(event.getTier());
}
public void addLoss(ConquestEvent event) {

View File

@@ -5,7 +5,7 @@ import forge.util.XmlWriter;
import forge.util.XmlWriter.IXmlWritable;
public class ConquestRecord implements IXmlWritable {
private int wins, losses, level;
private int wins, losses, tier;
public ConquestRecord() {
}
@@ -13,13 +13,13 @@ public class ConquestRecord implements IXmlWritable {
public ConquestRecord(XmlReader xml) {
wins = xml.read("wins", 0);
losses = xml.read("losses", 0);
level = xml.read("level", 0);
tier = xml.read("tier", 0);
}
@Override
public void saveToXml(XmlWriter xml) {
xml.write("wins", wins);
xml.write("losses", losses);
xml.write("level", level);
xml.write("tier", tier);
}
public int getWins() {
@@ -30,19 +30,18 @@ public class ConquestRecord implements IXmlWritable {
return losses;
}
public int getLevel() {
return level;
public int getTier() {
return tier;
}
public void addWin() {
public void addWin(int tier0) {
wins++;
if (tier0 > tier) {
tier = tier0;
}
}
public void addLoss() {
losses++;
}
public void levelUp() {
level++;
}
}