Rewrote draft generation and rotations.

This commit is contained in:
Krazy
2014-06-03 23:58:50 +00:00
parent b874b39241
commit 423a9f1687
5 changed files with 34 additions and 41 deletions

View File

@@ -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();

View File

@@ -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);

View File

@@ -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() {

View File

@@ -72,8 +72,14 @@ public class QuestAchievements {
this.winstreakCurrent++; this.winstreakCurrent++;
for (QuestEventDraft draft : drafts) { for (QuestEventDraft draft : drafts) {
if (!(currentDraft != -1 && drafts.get(currentDraft) == draft)) {
draft.addWin(); draft.addWin();
} }
}
if (win % 5 == 0) {
draftTokensAvailable++;
}
if (this.winstreakCurrent > this.winstreakBest) { if (this.winstreakCurrent > this.winstreakBest) {
this.winstreakBest = this.winstreakCurrent; this.winstreakBest = this.winstreakCurrent;
@@ -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) { for (int i = 0; i < draftTokensAvailable; i++) {
draftTokensAvailable++;
for (QuestEventDraft draft : drafts) {
draft.setAge(draft.getAge() - 5);
}
}
}
}
int draftsToGenerate = 3 - drafts.size();
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);

View File

@@ -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];