mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Few tournament tweaks and fixes.
This commit is contained in:
@@ -38,6 +38,7 @@ import forge.screens.deckeditor.views.VAllDecks;
|
||||
import forge.screens.deckeditor.views.VCurrentDeck;
|
||||
import forge.screens.deckeditor.views.VDeckgen;
|
||||
import forge.screens.home.quest.CSubmenuQuestDraft;
|
||||
import forge.screens.home.quest.VSubmenuQuestDraft;
|
||||
import forge.toolbox.FOptionPane;
|
||||
import forge.toolbox.FSkin;
|
||||
import forge.util.ItemPool;
|
||||
@@ -293,6 +294,8 @@ public class CEditorQuestDraftingProcess extends ACEditorBase<PaperCard, DeckGro
|
||||
FModel.getQuest().getAssets().addCredits(draft.getEntryFee());
|
||||
FModel.getQuest().getAchievements().deleteDraft(draft);
|
||||
FModel.getQuest().save();
|
||||
CSubmenuQuestDraft.SINGLETON_INSTANCE.update();
|
||||
VSubmenuQuestDraft.SINGLETON_INSTANCE.populate();
|
||||
}
|
||||
return leave;
|
||||
}
|
||||
|
||||
@@ -392,6 +392,10 @@ public enum CSubmenuQuestDraft implements ICDoc {
|
||||
VSubmenuQuestDraft view = VSubmenuQuestDraft.SINGLETON_INSTANCE;
|
||||
QuestAchievements achievements = FModel.getQuest().getAchievements();
|
||||
|
||||
if (view.getMode().equals(Mode.EMPTY)) {
|
||||
view.getPnlTournaments().removeAll();
|
||||
}
|
||||
|
||||
view.getLblFirst().setText("1st Place: " + achievements.getWinsForPlace(1) + " time" + (achievements.getWinsForPlace(1) == 1 ? "" : "s"));
|
||||
view.getLblSecond().setText("2nd Place: " + achievements.getWinsForPlace(2) + " time" + (achievements.getWinsForPlace(2) == 1 ? "" : "s"));
|
||||
view.getLblThird().setText("3rd Place: " + achievements.getWinsForPlace(3) + " time" + (achievements.getWinsForPlace(3) == 1 ? "" : "s"));
|
||||
|
||||
@@ -73,6 +73,7 @@ public class QuestEventDraft {
|
||||
private int[] aiIcons = new int[7];
|
||||
|
||||
private boolean started = false;
|
||||
private int age = 0;
|
||||
|
||||
public QuestEventDraft(final String title) {
|
||||
this.title = title;
|
||||
@@ -138,6 +139,18 @@ public class QuestEventDraft {
|
||||
aiIcons = icons;
|
||||
}
|
||||
|
||||
public int getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public void setAge(final int age) {
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
public void addWin() {
|
||||
age++;
|
||||
}
|
||||
|
||||
public int getHumanLatestStanding() {
|
||||
int humanIndex = 0;
|
||||
for (int i = getStandings().length - 1; i >= 0; i--) {
|
||||
|
||||
@@ -22,8 +22,7 @@ public class QuestAchievements {
|
||||
|
||||
private QuestEventDraftContainer drafts = new QuestEventDraftContainer();
|
||||
private int currentDraft = -1;
|
||||
private int draftTokensAvailable = 3;
|
||||
private int winCountAtEndOfDraft = 0;
|
||||
private int draftTokensAvailable = 1;
|
||||
|
||||
private int win;
|
||||
private int winstreakBest = 0;
|
||||
@@ -47,13 +46,15 @@ public class QuestAchievements {
|
||||
}
|
||||
|
||||
public void deleteDraft(QuestEventDraft draft) {
|
||||
if (currentDraft == drafts.indexOf(draft)) {
|
||||
currentDraft = -1;
|
||||
}
|
||||
drafts.remove(draft);
|
||||
}
|
||||
|
||||
public void endCurrentTournament(final int place) {
|
||||
drafts.remove(drafts.get(currentDraft));
|
||||
currentDraft = -1;
|
||||
winCountAtEndOfDraft = win;
|
||||
addDraftFinish(place);
|
||||
FModel.getQuest().save();
|
||||
}
|
||||
@@ -66,16 +67,14 @@ public class QuestAchievements {
|
||||
* Adds the win.
|
||||
*/
|
||||
public void addWin() { // changes getRank()
|
||||
|
||||
this.win++;
|
||||
this.winstreakCurrent++;
|
||||
|
||||
//Every 5 wins, allow a tournament to be generated.
|
||||
if ((win - winCountAtEndOfDraft) % 5 == 0) {
|
||||
if (draftTokensAvailable < 3) {
|
||||
draftTokensAvailable++;
|
||||
}
|
||||
for (QuestEventDraft draft : drafts) {
|
||||
draft.addWin();
|
||||
}
|
||||
|
||||
|
||||
if (this.winstreakCurrent > this.winstreakBest) {
|
||||
this.winstreakBest = this.winstreakCurrent;
|
||||
}
|
||||
@@ -214,7 +213,43 @@ public class QuestAchievements {
|
||||
|
||||
if (drafts == null) {
|
||||
drafts = new QuestEventDraftContainer();
|
||||
draftTokensAvailable = 3;
|
||||
draftTokensAvailable = 1;
|
||||
}
|
||||
|
||||
QuestEventDraft toRemove = null;
|
||||
for (QuestEventDraft draft : drafts) { //Pick the oldest draft first
|
||||
if (draft.getAge() >= 5 && currentDraft == -1 && drafts.size() == 3) {
|
||||
toRemove = draft;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (toRemove != null) {
|
||||
drafts.remove(toRemove);
|
||||
draftTokensAvailable++;
|
||||
for (QuestEventDraft draft : drafts) {
|
||||
draft.setAge(draft.getAge() - 5);
|
||||
}
|
||||
} else {
|
||||
|
||||
if (drafts.size() < 3) {
|
||||
|
||||
int oldest = -100;
|
||||
for (QuestEventDraft draft : drafts) {
|
||||
if (draft.getAge() > oldest) {
|
||||
oldest = draft.getAge();
|
||||
}
|
||||
}
|
||||
|
||||
if (oldest >= 5) {
|
||||
draftTokensAvailable++;
|
||||
for (QuestEventDraft draft : drafts) {
|
||||
draft.setAge(draft.getAge() - 5);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int draftsToGenerate = 3 - drafts.size();
|
||||
|
||||
@@ -548,6 +548,10 @@ public class QuestDataIO {
|
||||
writer.setValue("" + draft.isStarted());
|
||||
writer.endNode();
|
||||
|
||||
writer.startNode("age");
|
||||
writer.setValue("" + draft.getAge());
|
||||
writer.endNode();
|
||||
|
||||
writer.endNode();
|
||||
|
||||
}
|
||||
@@ -567,6 +571,7 @@ public class QuestDataIO {
|
||||
String draftName = null;
|
||||
String boosterConfiguration = null;
|
||||
int entryFee = 1500;
|
||||
int age = 0;
|
||||
String block = null;
|
||||
String[] standings = new String[15];
|
||||
String[] aiNames = new String[7];
|
||||
@@ -617,6 +622,9 @@ public class QuestDataIO {
|
||||
case "started":
|
||||
started = Boolean.parseBoolean(reader.getValue());
|
||||
break;
|
||||
case "age":
|
||||
age = Integer.parseInt(reader.getValue());
|
||||
break;
|
||||
}
|
||||
|
||||
reader.moveUp();
|
||||
@@ -631,6 +639,7 @@ public class QuestDataIO {
|
||||
draft.setAINames(aiNames);
|
||||
draft.setAIIcons(aiIcons);
|
||||
draft.setStarted(started);
|
||||
draft.setAge(age);
|
||||
|
||||
output.add(draft);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user