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.VCurrentDeck;
|
||||||
import forge.screens.deckeditor.views.VDeckgen;
|
import forge.screens.deckeditor.views.VDeckgen;
|
||||||
import forge.screens.home.quest.CSubmenuQuestDraft;
|
import forge.screens.home.quest.CSubmenuQuestDraft;
|
||||||
|
import forge.screens.home.quest.VSubmenuQuestDraft;
|
||||||
import forge.toolbox.FOptionPane;
|
import forge.toolbox.FOptionPane;
|
||||||
import forge.toolbox.FSkin;
|
import forge.toolbox.FSkin;
|
||||||
import forge.util.ItemPool;
|
import forge.util.ItemPool;
|
||||||
@@ -293,6 +294,8 @@ public class CEditorQuestDraftingProcess extends ACEditorBase<PaperCard, DeckGro
|
|||||||
FModel.getQuest().getAssets().addCredits(draft.getEntryFee());
|
FModel.getQuest().getAssets().addCredits(draft.getEntryFee());
|
||||||
FModel.getQuest().getAchievements().deleteDraft(draft);
|
FModel.getQuest().getAchievements().deleteDraft(draft);
|
||||||
FModel.getQuest().save();
|
FModel.getQuest().save();
|
||||||
|
CSubmenuQuestDraft.SINGLETON_INSTANCE.update();
|
||||||
|
VSubmenuQuestDraft.SINGLETON_INSTANCE.populate();
|
||||||
}
|
}
|
||||||
return leave;
|
return leave;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -392,6 +392,10 @@ public enum CSubmenuQuestDraft implements ICDoc {
|
|||||||
VSubmenuQuestDraft view = VSubmenuQuestDraft.SINGLETON_INSTANCE;
|
VSubmenuQuestDraft view = VSubmenuQuestDraft.SINGLETON_INSTANCE;
|
||||||
QuestAchievements achievements = FModel.getQuest().getAchievements();
|
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.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.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"));
|
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 int[] aiIcons = new int[7];
|
||||||
|
|
||||||
private boolean started = false;
|
private boolean started = false;
|
||||||
|
private int age = 0;
|
||||||
|
|
||||||
public QuestEventDraft(final String title) {
|
public QuestEventDraft(final String title) {
|
||||||
this.title = title;
|
this.title = title;
|
||||||
@@ -138,6 +139,18 @@ public class QuestEventDraft {
|
|||||||
aiIcons = icons;
|
aiIcons = icons;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getAge() {
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAge(final int age) {
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addWin() {
|
||||||
|
age++;
|
||||||
|
}
|
||||||
|
|
||||||
public int getHumanLatestStanding() {
|
public int getHumanLatestStanding() {
|
||||||
int humanIndex = 0;
|
int humanIndex = 0;
|
||||||
for (int i = getStandings().length - 1; i >= 0; i--) {
|
for (int i = getStandings().length - 1; i >= 0; i--) {
|
||||||
|
|||||||
@@ -22,8 +22,7 @@ public class QuestAchievements {
|
|||||||
|
|
||||||
private QuestEventDraftContainer drafts = new QuestEventDraftContainer();
|
private QuestEventDraftContainer drafts = new QuestEventDraftContainer();
|
||||||
private int currentDraft = -1;
|
private int currentDraft = -1;
|
||||||
private int draftTokensAvailable = 3;
|
private int draftTokensAvailable = 1;
|
||||||
private int winCountAtEndOfDraft = 0;
|
|
||||||
|
|
||||||
private int win;
|
private int win;
|
||||||
private int winstreakBest = 0;
|
private int winstreakBest = 0;
|
||||||
@@ -47,13 +46,15 @@ public class QuestAchievements {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteDraft(QuestEventDraft draft) {
|
public void deleteDraft(QuestEventDraft draft) {
|
||||||
|
if (currentDraft == drafts.indexOf(draft)) {
|
||||||
|
currentDraft = -1;
|
||||||
|
}
|
||||||
drafts.remove(draft);
|
drafts.remove(draft);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void endCurrentTournament(final int place) {
|
public void endCurrentTournament(final int place) {
|
||||||
drafts.remove(drafts.get(currentDraft));
|
drafts.remove(drafts.get(currentDraft));
|
||||||
currentDraft = -1;
|
currentDraft = -1;
|
||||||
winCountAtEndOfDraft = win;
|
|
||||||
addDraftFinish(place);
|
addDraftFinish(place);
|
||||||
FModel.getQuest().save();
|
FModel.getQuest().save();
|
||||||
}
|
}
|
||||||
@@ -66,16 +67,14 @@ public class QuestAchievements {
|
|||||||
* Adds the win.
|
* Adds the win.
|
||||||
*/
|
*/
|
||||||
public void addWin() { // changes getRank()
|
public void addWin() { // changes getRank()
|
||||||
|
|
||||||
this.win++;
|
this.win++;
|
||||||
this.winstreakCurrent++;
|
this.winstreakCurrent++;
|
||||||
|
|
||||||
//Every 5 wins, allow a tournament to be generated.
|
for (QuestEventDraft draft : drafts) {
|
||||||
if ((win - winCountAtEndOfDraft) % 5 == 0) {
|
draft.addWin();
|
||||||
if (draftTokensAvailable < 3) {
|
|
||||||
draftTokensAvailable++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.winstreakCurrent > this.winstreakBest) {
|
if (this.winstreakCurrent > this.winstreakBest) {
|
||||||
this.winstreakBest = this.winstreakCurrent;
|
this.winstreakBest = this.winstreakCurrent;
|
||||||
}
|
}
|
||||||
@@ -214,7 +213,43 @@ public class QuestAchievements {
|
|||||||
|
|
||||||
if (drafts == null) {
|
if (drafts == null) {
|
||||||
drafts = new QuestEventDraftContainer();
|
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();
|
int draftsToGenerate = 3 - drafts.size();
|
||||||
|
|||||||
@@ -548,6 +548,10 @@ public class QuestDataIO {
|
|||||||
writer.setValue("" + draft.isStarted());
|
writer.setValue("" + draft.isStarted());
|
||||||
writer.endNode();
|
writer.endNode();
|
||||||
|
|
||||||
|
writer.startNode("age");
|
||||||
|
writer.setValue("" + draft.getAge());
|
||||||
|
writer.endNode();
|
||||||
|
|
||||||
writer.endNode();
|
writer.endNode();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -567,6 +571,7 @@ public class QuestDataIO {
|
|||||||
String draftName = null;
|
String draftName = null;
|
||||||
String boosterConfiguration = null;
|
String boosterConfiguration = null;
|
||||||
int entryFee = 1500;
|
int entryFee = 1500;
|
||||||
|
int age = 0;
|
||||||
String block = null;
|
String block = null;
|
||||||
String[] standings = new String[15];
|
String[] standings = new String[15];
|
||||||
String[] aiNames = new String[7];
|
String[] aiNames = new String[7];
|
||||||
@@ -617,6 +622,9 @@ public class QuestDataIO {
|
|||||||
case "started":
|
case "started":
|
||||||
started = Boolean.parseBoolean(reader.getValue());
|
started = Boolean.parseBoolean(reader.getValue());
|
||||||
break;
|
break;
|
||||||
|
case "age":
|
||||||
|
age = Integer.parseInt(reader.getValue());
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
reader.moveUp();
|
reader.moveUp();
|
||||||
@@ -631,6 +639,7 @@ public class QuestDataIO {
|
|||||||
draft.setAINames(aiNames);
|
draft.setAINames(aiNames);
|
||||||
draft.setAIIcons(aiIcons);
|
draft.setAIIcons(aiIcons);
|
||||||
draft.setStarted(started);
|
draft.setStarted(started);
|
||||||
|
draft.setAge(age);
|
||||||
|
|
||||||
output.add(draft);
|
output.add(draft);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user