Added Random Modern World

This commit is contained in:
austinio7116
2019-06-19 06:40:15 +01:00
committed by maustin
parent 74d3af3c20
commit 49d57a0365
6 changed files with 51 additions and 16 deletions

View File

@@ -1,5 +1,6 @@
Name:Main world Name:Main world
Name:Random Standard Name:Random Standard
Name:Random Modern
Name:Random Commander Name:Random Commander
Name:Amonkhet|Dir:Amonkhet|Sets:AKH, HOU Name:Amonkhet|Dir:Amonkhet|Sets:AKH, HOU
Name:Jamuraa|Dir:jamuraa|Sets:5ED, ARN, MIR, VIS, WTH|Banned:Chaos Orb; Falling Star Name:Jamuraa|Dir:jamuraa|Sets:5ED, ARN, MIR, VIS, WTH|Banned:Chaos Orb; Falling Star

View File

@@ -12,11 +12,24 @@ import java.util.*;
public class QuestChallengeGenerator { public class QuestChallengeGenerator {
public static QuestEventChallengeList generateChallenges(){ private GameFormat formatMedium=FModel.getFormats().getModern();
private GameFormat formatHard=FModel.getFormats().get("Legacy");
private GameFormat formatExpert=FModel.getFormats().get("Vintage");
private GameFormat baseFormat;
QuestChallengeGenerator(GameFormat baseFormat){
this.baseFormat=baseFormat;
if(baseFormat.getName().equals((FModel.getFormats().getModern().getName()))){
formatMedium=FModel.getFormats().get("Legacy");
formatHard=FModel.getFormats().get("Vintage");
}
}
public QuestEventChallengeList generateChallenges(){
Map<String,QuestEventChallenge> challenges = new HashMap<>(); Map<String,QuestEventChallenge> challenges = new HashMap<>();
int id = 0; int id = 0;
for (int i=0;i<5;++i) { for (int i=0;i<5;++i) {
QuestEventChallenge qc = getFormatChallenge(FModel.getFormats().getModern()); QuestEventChallenge qc = getFormatChallenge(formatMedium);
qc.setId(Integer.valueOf(id).toString()); qc.setId(Integer.valueOf(id).toString());
qc.setCreditsReward(1000); qc.setCreditsReward(1000);
qc.setWinsReqd(MyRandom.getRandom().nextInt(5)); qc.setWinsReqd(MyRandom.getRandom().nextInt(5));
@@ -36,7 +49,7 @@ public class QuestChallengeGenerator {
id++; id++;
} }
for (int i=0;i<5;++i) { for (int i=0;i<5;++i) {
QuestEventChallenge qc = getFormatChallenge(FModel.getFormats().get("Legacy")); QuestEventChallenge qc = getFormatChallenge(formatHard);
qc.setId(Integer.valueOf(id).toString()); qc.setId(Integer.valueOf(id).toString());
qc.setCreditsReward(5000); qc.setCreditsReward(5000);
qc.setCardReward("2 multicolor rares"); qc.setCardReward("2 multicolor rares");
@@ -56,7 +69,7 @@ public class QuestChallengeGenerator {
id++; id++;
} }
for (int i=0;i<5;++i) { for (int i=0;i<5;++i) {
QuestEventChallenge qc = getFormatChallenge(FModel.getFormats().get("Vintage")); QuestEventChallenge qc = getFormatChallenge(formatExpert);
qc.setId(Integer.valueOf(id).toString()); qc.setId(Integer.valueOf(id).toString());
qc.setCreditsReward(10000); qc.setCreditsReward(10000);
qc.setCardReward("3 multicolor rares"); qc.setCardReward("3 multicolor rares");
@@ -78,7 +91,7 @@ public class QuestChallengeGenerator {
return new QuestEventChallengeList(challenges); return new QuestEventChallengeList(challenges);
} }
public static QuestEventChallenge getFormatChallenge(GameFormat format){ public QuestEventChallenge getFormatChallenge(GameFormat format){
QuestEventChallenge qc = new QuestEventChallenge(); QuestEventChallenge qc = new QuestEventChallenge();
qc.setAiLife(20); qc.setAiLife(20);
@@ -92,11 +105,11 @@ public class QuestChallengeGenerator {
return qc; return qc;
} }
public static QuestEventChallenge getAIHeadstartChallenge(int extras){ public QuestEventChallenge getAIHeadstartChallenge(int extras){
QuestEventChallenge qc = new QuestEventChallenge(); QuestEventChallenge qc = new QuestEventChallenge();
qc.setAiLife(20); qc.setAiLife(20);
qc.setEventDeck(DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getStandard(),true)); qc.setEventDeck(DeckgenUtil.buildLDACArchetypeDeck(baseFormat,true));
qc.setTitle(qc.getEventDeck().getName() + " headstart challenge"); qc.setTitle(qc.getEventDeck().getName() + " headstart challenge");
qc.setName(qc.getEventDeck().getName() + " headstart challenge"); qc.setName(qc.getEventDeck().getName() + " headstart challenge");
qc.setOpponentName(qc.getEventDeck().getName()); qc.setOpponentName(qc.getEventDeck().getName());
@@ -117,7 +130,7 @@ public class QuestChallengeGenerator {
return qc; return qc;
} }
public static class QuestEventChallengeList implements IStorage<QuestEventChallenge>{ public class QuestEventChallengeList implements IStorage<QuestEventChallenge>{
private Map<String,QuestEventChallenge> challenges; private Map<String,QuestEventChallenge> challenges;

View File

@@ -446,7 +446,10 @@ public class QuestController {
if (world != null) { if (world != null) {
if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)) { if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)) {
this.duelManager = new QuestEventLDADuelManager(); this.duelManager = new QuestEventLDADuelManager(FModel.getFormats().getStandard());
return;
} else if (world.getName().equals(QuestWorld.MODERNWORLDNAME)) {
this.duelManager = new QuestEventLDADuelManager(FModel.getFormats().getModern());
return; return;
}else if (world.isCustom()) { }else if (world.isCustom()) {
path = world.getDuelsDir() == null ? ForgeConstants.DEFAULT_DUELS_DIR : ForgeConstants.USER_QUEST_WORLD_DIR + world.getDuelsDir(); path = world.getDuelsDir() == null ? ForgeConstants.DEFAULT_DUELS_DIR : ForgeConstants.USER_QUEST_WORLD_DIR + world.getDuelsDir();
@@ -475,7 +478,12 @@ public class QuestController {
if (world != null) { if (world != null) {
if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)) { if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)) {
allChallenges = QuestChallengeGenerator.generateChallenges(); QuestChallengeGenerator gen = new QuestChallengeGenerator(FModel.getFormats().getStandard());
allChallenges = gen.generateChallenges();
return;
}else if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)) {
QuestChallengeGenerator gen = new QuestChallengeGenerator(FModel.getFormats().getModern());
allChallenges = gen.generateChallenges();
return; return;
} else if (world.isCustom()) { } else if (world.isCustom()) {
path = world.getChallengesDir() == null ? ForgeConstants.DEFAULT_CHALLENGES_DIR : ForgeConstants.USER_QUEST_WORLD_DIR + world.getChallengesDir(); path = world.getChallengesDir() == null ? ForgeConstants.DEFAULT_CHALLENGES_DIR : ForgeConstants.USER_QUEST_WORLD_DIR + world.getChallengesDir();

View File

@@ -20,6 +20,7 @@ package forge.quest;
import forge.deck.DeckgenUtil; import forge.deck.DeckgenUtil;
import forge.deck.io.Archetype; import forge.deck.io.Archetype;
import forge.game.GameFormat;
import forge.model.FModel; import forge.model.FModel;
/** /**
@@ -32,14 +33,16 @@ import forge.model.FModel;
public class QuestEventLDADuel extends QuestEventDuel { public class QuestEventLDADuel extends QuestEventDuel {
private Archetype archetype; private Archetype archetype;
private GameFormat baseFormat;
/** /**
* Instantiates a new quest duel. * Instantiates a new quest duel.
*/ */
public QuestEventLDADuel(Archetype archetype) { public QuestEventLDADuel(Archetype archetype, GameFormat baseFormat) {
super(); super();
this.baseFormat = baseFormat;
this.archetype = archetype; this.archetype = archetype;
this.eventDeck = DeckgenUtil.buildLDACArchetypeDeck(archetype, FModel.getFormats().getStandard(),true); this.eventDeck = DeckgenUtil.buildLDACArchetypeDeck(archetype, baseFormat,true);
} }
} }

View File

@@ -19,6 +19,7 @@ package forge.quest;
import forge.deck.CardArchetypeLDAGenerator; import forge.deck.CardArchetypeLDAGenerator;
import forge.deck.io.Archetype; import forge.deck.io.Archetype;
import forge.game.GameFormat;
import forge.model.FModel; import forge.model.FModel;
import forge.quest.data.QuestPreferences; import forge.quest.data.QuestPreferences;
import forge.quest.data.QuestPreferences.DifficultyPrefs; import forge.quest.data.QuestPreferences.DifficultyPrefs;
@@ -42,9 +43,11 @@ public class QuestEventLDADuelManager implements QuestEventDuelManagerInterface
private List<Archetype> archetypes; private List<Archetype> archetypes;
private final MapOfLists<QuestEventDifficulty, QuestEventDuel> sortedDuels = new EnumMapOfLists<>(QuestEventDifficulty.class, CollectionSuppliers.<QuestEventDuel>arrayLists()); private final MapOfLists<QuestEventDifficulty, QuestEventDuel> sortedDuels = new EnumMapOfLists<>(QuestEventDifficulty.class, CollectionSuppliers.<QuestEventDuel>arrayLists());
private GameFormat baseFormat;
public QuestEventLDADuelManager(){ public QuestEventLDADuelManager(GameFormat baseFormat){
archetypes = CardArchetypeLDAGenerator.ldaArchetypes.get(FModel.getFormats().getStandard().getName()); this.baseFormat = baseFormat;
archetypes = CardArchetypeLDAGenerator.ldaArchetypes.get(baseFormat.getName());
assembleDuelDifficultyLists(); assembleDuelDifficultyLists();
} }
@@ -58,7 +61,7 @@ public class QuestEventLDADuelManager implements QuestEventDuelManagerInterface
int i=0; int i=0;
for(Archetype archetype : archetypes){ for(Archetype archetype : archetypes){
QuestEventLDADuel duel = new QuestEventLDADuel((archetype)); QuestEventLDADuel duel = new QuestEventLDADuel(archetype,baseFormat);
duel.setDescription("Randomly generated "+archetype.getName()+" archetype deck."); duel.setDescription("Randomly generated "+archetype.getName()+" archetype deck.");
duel.setName(archetype.getName()); duel.setName(archetype.getName());
duel.setTitle(archetype.getName()); duel.setTitle(archetype.getName());

View File

@@ -40,6 +40,7 @@ public class QuestWorld implements Comparable<QuestWorld>{
private final String dir; private final String dir;
private final GameFormatQuest format; private final GameFormatQuest format;
public static final String STANDARDWORLDNAME = "Random Standard"; public static final String STANDARDWORLDNAME = "Random Standard";
public static final String MODERNWORLDNAME = "Random Modern";
public static final String RANDOMCOMMANDERWORLDNAME = "Random Commander"; public static final String RANDOMCOMMANDERWORLDNAME = "Random Commander";
private boolean isCustom; private boolean isCustom;
@@ -194,6 +195,12 @@ public class QuestWorld implements Comparable<QuestWorld>{
FModel.getFormats().getStandard().getBannedCardNames(),false); FModel.getFormats().getStandard().getBannedCardNames(),false);
} }
if (useName.equalsIgnoreCase(QuestWorld.MODERNWORLDNAME)){
useFormat = new GameFormatQuest(QuestWorld.MODERNWORLDNAME,
FModel.getFormats().getModern().getAllowedSetCodes(),
FModel.getFormats().getModern().getBannedCardNames(),false);
}
if (useName.equalsIgnoreCase(QuestWorld.RANDOMCOMMANDERWORLDNAME)){ if (useName.equalsIgnoreCase(QuestWorld.RANDOMCOMMANDERWORLDNAME)){
useFormat = new GameFormatQuest(QuestWorld.RANDOMCOMMANDERWORLDNAME, useFormat = new GameFormatQuest(QuestWorld.RANDOMCOMMANDERWORLDNAME,
FModel.getFormats().getFormat("Commander").getAllowedSetCodes(), FModel.getFormats().getFormat("Commander").getAllowedSetCodes(),