mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
Fixed "unlimited challenge" bug in quest mode.
This commit is contained in:
@@ -59,15 +59,40 @@ public class SSubmenuQuestUtil {
|
||||
final QuestController qData = AllZone.getQuest();
|
||||
final int challengesPlayed = qData.getAchievements().getChallengesPlayed();
|
||||
|
||||
/*
|
||||
int mul = 5;
|
||||
if (qData.getAssets().hasItem(QuestItemType.ZEPPELIN)) {
|
||||
mul = 3;
|
||||
} else if (qData.getAssets().hasItem(QuestItemType.MAP)) {
|
||||
mul = 4;
|
||||
}
|
||||
*/
|
||||
|
||||
final int wins = qData.getAchievements().getWin();
|
||||
final int delta = (wins < 20 ? 20 - wins : (challengesPlayed * mul) - wins);
|
||||
final int delta;
|
||||
|
||||
if (wins < 20) {
|
||||
delta = 20 - wins;
|
||||
}
|
||||
else {
|
||||
// When zepp and map are working properly, this line needs to
|
||||
// be updated to reflect "challenges available more often" promise.
|
||||
// Also, generateChallenges in QuestEventManager needs to be
|
||||
// updated with a similar change.
|
||||
if (wins / 10 > challengesPlayed) {
|
||||
delta = 0;
|
||||
}
|
||||
// This part takes the "unlimited challenge" bug into account;
|
||||
// a player could have an inflated challengesPlayed value.
|
||||
// Added 09-2012, can be removed after a while.
|
||||
else if (wins < challengesPlayed * 10) {
|
||||
delta = (challengesPlayed * 10 - wins) + 10;
|
||||
}
|
||||
// Default case.
|
||||
else {
|
||||
delta = 10 - wins % 10;
|
||||
}
|
||||
}
|
||||
|
||||
return (delta > 0) ? delta : 0;
|
||||
}
|
||||
|
||||
@@ -304,6 +304,9 @@ public class QuestWinLoseHandler extends ControlWinLose {
|
||||
if (!((QuestEventChallenge) qEvent).isRepeatable()) {
|
||||
qData.getAchievements().addLockedChallenge(((QuestEventChallenge) qEvent).getId());
|
||||
}
|
||||
|
||||
// Increment challenge counter to limit challenges available
|
||||
qData.getAchievements().addChallengesPlayed();
|
||||
}
|
||||
|
||||
matchState.reset();
|
||||
@@ -579,10 +582,6 @@ public class QuestWinLoseHandler extends ControlWinLose {
|
||||
*
|
||||
*/
|
||||
private void awardChallengeWin() {
|
||||
// This method should perhaps be called addChallengesWon() since it's
|
||||
// actually used for "wins before next challenge"
|
||||
qData.getAchievements().addChallengesPlayed();
|
||||
|
||||
final List<CardPrinted> cardsWon = ((QuestEventChallenge) qEvent).getCardRewardList();
|
||||
final long questRewardCredits = ((QuestEventChallenge) qEvent).getCreditsReward();
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ public class QuestEventManager {
|
||||
final List<Integer> unlockedChallengeIds = new ArrayList<Integer>();
|
||||
final List<Integer> availableChallengeIds = achievements.getCurrentChallenges();
|
||||
|
||||
int maxChallenges = achievements.getWin() / 10;
|
||||
int maxChallenges = ((achievements.getWin() / 10) - achievements.getChallengesPlayed());
|
||||
if (maxChallenges > 5) {
|
||||
maxChallenges = 5;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user