mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Show badges based on highest tier of each square you've beaten
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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++;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user