mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Rewrote draft generation and rotations.
This commit is contained in:
@@ -85,7 +85,7 @@ public enum CSubmenuQuestDraft implements ICDoc {
|
|||||||
if (achievements == null) {
|
if (achievements == null) {
|
||||||
view.setMode(Mode.EMPTY);
|
view.setMode(Mode.EMPTY);
|
||||||
} else if (achievements.getDraftEvents() == null || achievements.getDraftEvents().isEmpty()) {
|
} else if (achievements.getDraftEvents() == null || achievements.getDraftEvents().isEmpty()) {
|
||||||
achievements.generateNewTournaments();
|
achievements.generateDrafts();
|
||||||
if (achievements.getDraftEvents().isEmpty()) {
|
if (achievements.getDraftEvents().isEmpty()) {
|
||||||
view.setMode(Mode.EMPTY);
|
view.setMode(Mode.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
@@ -307,7 +307,7 @@ public enum CSubmenuQuestDraft implements ICDoc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QuestAchievements achievements = FModel.getQuest().getAchievements();
|
QuestAchievements achievements = FModel.getQuest().getAchievements();
|
||||||
achievements.generateNewTournaments();
|
achievements.generateDrafts();
|
||||||
|
|
||||||
if (FModel.getQuest().getAchievements().getDraftEvents().isEmpty()) {
|
if (FModel.getQuest().getAchievements().getDraftEvents().isEmpty()) {
|
||||||
view.setMode(Mode.EMPTY);
|
view.setMode(Mode.EMPTY);
|
||||||
@@ -354,7 +354,7 @@ public enum CSubmenuQuestDraft implements ICDoc {
|
|||||||
|
|
||||||
view.getLblCredits().setText("Available Credits: " + NUMBER_FORMATTER.format(FModel.getQuest().getAssets().getCredits()));
|
view.getLblCredits().setText("Available Credits: " + NUMBER_FORMATTER.format(FModel.getQuest().getAssets().getCredits()));
|
||||||
|
|
||||||
FModel.getQuest().getAchievements().generateNewTournaments();
|
FModel.getQuest().getAchievements().generateDrafts();
|
||||||
|
|
||||||
view.getPnlTournaments().removeAll();
|
view.getPnlTournaments().removeAll();
|
||||||
JXButtonPanel grpPanel = new JXButtonPanel();
|
JXButtonPanel grpPanel = new JXButtonPanel();
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ public class QuestWinLose extends ControlWinLose {
|
|||||||
if (this.wonMatch || difficulty == 0) {
|
if (this.wonMatch || difficulty == 0) {
|
||||||
final int outcome = this.wonMatch ? wins : qData.getAchievements().getLost();
|
final int outcome = this.wonMatch ? wins : qData.getAchievements().getLost();
|
||||||
int winsPerBooster = FModel.getQuestPreferences().getPrefInt(DifficultyPrefs.WINS_BOOSTER, qData.getAchievements().getDifficulty());
|
int winsPerBooster = FModel.getQuestPreferences().getPrefInt(DifficultyPrefs.WINS_BOOSTER, qData.getAchievements().getDifficulty());
|
||||||
if (winsPerBooster > 0 && outcome % winsPerBooster == 0) {
|
if (winsPerBooster > 0 && (outcome + 1) % winsPerBooster == 0) {
|
||||||
this.awardBooster();
|
this.awardBooster();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -514,6 +514,7 @@ public class QuestWinLose extends ControlWinLose {
|
|||||||
final List<PaperCard> cardsWon = new ArrayList<>();
|
final List<PaperCard> cardsWon = new ArrayList<>();
|
||||||
List<PaperCard> cardsToAdd;
|
List<PaperCard> cardsToAdd;
|
||||||
String typeWon = "";
|
String typeWon = "";
|
||||||
|
boolean addDraftToken = false;
|
||||||
|
|
||||||
switch (currentStreak) {
|
switch (currentStreak) {
|
||||||
case 3:
|
case 3:
|
||||||
@@ -547,6 +548,7 @@ public class QuestWinLose extends ControlWinLose {
|
|||||||
cardsWon.addAll(qData.getCards().addRandomRareNotMythic(15));
|
cardsWon.addAll(qData.getCards().addRandomRareNotMythic(15));
|
||||||
typeWon = "rare";
|
typeWon = "rare";
|
||||||
}
|
}
|
||||||
|
addDraftToken = true;
|
||||||
break;
|
break;
|
||||||
case 0: //The 50th win in the streak is 0, since (50 % 50 == 0)
|
case 0: //The 50th win in the streak is 0, since (50 % 50 == 0)
|
||||||
cardsToAdd = qData.getCards().addRandomMythicRare(10);
|
cardsToAdd = qData.getCards().addRandomMythicRare(10);
|
||||||
@@ -562,6 +564,19 @@ public class QuestWinLose extends ControlWinLose {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (addDraftToken) {
|
||||||
|
TitleLabel title = new TitleLabel("25 Win Streak Bonus Reward");
|
||||||
|
SkinnedLabel contents = new SkinnedLabel("For achieving a 25 win streak, a new tournament has been made available!");
|
||||||
|
contents.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
contents.setFont(FSkin.getFont(14));
|
||||||
|
contents.setForeground(Color.white);
|
||||||
|
contents.setIcon(FSkin.getImage(FSkinProp.ICO_QUEST_COIN));
|
||||||
|
contents.setIconTextGap(50);
|
||||||
|
this.getView().getPnlCustom().add(title, QuestWinLose.CONSTRAINTS_TITLE);
|
||||||
|
this.getView().getPnlCustom().add(contents, QuestWinLose.CONSTRAINTS_TEXT);
|
||||||
|
qData.getAchievements().addDraftToken();
|
||||||
|
}
|
||||||
|
|
||||||
this.lblTemp1 = new TitleLabel("You have achieved a " + (currentStreak == 0 ? "50" : currentStreak) + " win streak and won " + cardsWon.size() + " " + typeWon + " card" + ((cardsWon.size() != 1) ? "s" : "") + "!");
|
this.lblTemp1 = new TitleLabel("You have achieved a " + (currentStreak == 0 ? "50" : currentStreak) + " win streak and won " + cardsWon.size() + " " + typeWon + " card" + ((cardsWon.size() != 1) ? "s" : "") + "!");
|
||||||
final QuestWinLoseCardViewer cv = new QuestWinLoseCardViewer(cardsWon);
|
final QuestWinLoseCardViewer cv = new QuestWinLoseCardViewer(cardsWon);
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +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;
|
private int age = 15;
|
||||||
|
|
||||||
public QuestEventDraft(final String title) {
|
public QuestEventDraft(final String title) {
|
||||||
this.title = title;
|
this.title = title;
|
||||||
@@ -148,7 +148,7 @@ public class QuestEventDraft {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addWin() {
|
public void addWin() {
|
||||||
age++;
|
age--;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getHumanLatestStanding() {
|
public int getHumanLatestStanding() {
|
||||||
|
|||||||
@@ -72,7 +72,13 @@ public class QuestAchievements {
|
|||||||
this.winstreakCurrent++;
|
this.winstreakCurrent++;
|
||||||
|
|
||||||
for (QuestEventDraft draft : drafts) {
|
for (QuestEventDraft draft : drafts) {
|
||||||
draft.addWin();
|
if (!(currentDraft != -1 && drafts.get(currentDraft) == draft)) {
|
||||||
|
draft.addWin();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (win % 5 == 0) {
|
||||||
|
draftTokensAvailable++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.winstreakCurrent > this.winstreakBest) {
|
if (this.winstreakCurrent > this.winstreakBest) {
|
||||||
@@ -209,7 +215,7 @@ public class QuestAchievements {
|
|||||||
return drafts;
|
return drafts;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void generateNewTournaments() {
|
public void generateDrafts() {
|
||||||
|
|
||||||
if (drafts == null) {
|
if (drafts == null) {
|
||||||
drafts = new QuestEventDraftContainer();
|
drafts = new QuestEventDraftContainer();
|
||||||
@@ -217,8 +223,9 @@ public class QuestAchievements {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QuestEventDraft toRemove = null;
|
QuestEventDraft toRemove = null;
|
||||||
for (QuestEventDraft draft : drafts) { //Pick the oldest draft first
|
for (QuestEventDraft draft : drafts) {
|
||||||
if (draft.getAge() >= 5 && currentDraft == -1 && drafts.size() == 3) {
|
if (draft.getAge() <= 0
|
||||||
|
&& !(currentDraft != -1 && drafts.get(currentDraft) == draft)) {
|
||||||
toRemove = draft;
|
toRemove = draft;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -226,38 +233,9 @@ public class QuestAchievements {
|
|||||||
|
|
||||||
if (toRemove != null) {
|
if (toRemove != null) {
|
||||||
drafts.remove(toRemove);
|
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();
|
for (int i = 0; i < draftTokensAvailable; i++) {
|
||||||
if (draftsToGenerate > draftTokensAvailable) {
|
|
||||||
draftsToGenerate = draftTokensAvailable;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < draftsToGenerate; i++) {
|
|
||||||
QuestEventDraft draft = QuestEventDraft.getRandomDraftOrNull(FModel.getQuest());
|
QuestEventDraft draft = QuestEventDraft.getRandomDraftOrNull(FModel.getQuest());
|
||||||
if (draft != null) {
|
if (draft != null) {
|
||||||
drafts.add(draft);
|
drafts.add(draft);
|
||||||
|
|||||||
@@ -571,7 +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;
|
int age = 15;
|
||||||
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];
|
||||||
|
|||||||
Reference in New Issue
Block a user