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:Random Standard
Name:Random Modern
Name:Random Commander
Name:Amonkhet|Dir:Amonkhet|Sets:AKH, HOU
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 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<>();
int id = 0;
for (int i=0;i<5;++i) {
QuestEventChallenge qc = getFormatChallenge(FModel.getFormats().getModern());
QuestEventChallenge qc = getFormatChallenge(formatMedium);
qc.setId(Integer.valueOf(id).toString());
qc.setCreditsReward(1000);
qc.setWinsReqd(MyRandom.getRandom().nextInt(5));
@@ -36,7 +49,7 @@ public class QuestChallengeGenerator {
id++;
}
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.setCreditsReward(5000);
qc.setCardReward("2 multicolor rares");
@@ -56,7 +69,7 @@ public class QuestChallengeGenerator {
id++;
}
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.setCreditsReward(10000);
qc.setCardReward("3 multicolor rares");
@@ -78,7 +91,7 @@ public class QuestChallengeGenerator {
return new QuestEventChallengeList(challenges);
}
public static QuestEventChallenge getFormatChallenge(GameFormat format){
public QuestEventChallenge getFormatChallenge(GameFormat format){
QuestEventChallenge qc = new QuestEventChallenge();
qc.setAiLife(20);
@@ -92,11 +105,11 @@ public class QuestChallengeGenerator {
return qc;
}
public static QuestEventChallenge getAIHeadstartChallenge(int extras){
public QuestEventChallenge getAIHeadstartChallenge(int extras){
QuestEventChallenge qc = new QuestEventChallenge();
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.setName(qc.getEventDeck().getName() + " headstart challenge");
qc.setOpponentName(qc.getEventDeck().getName());
@@ -117,7 +130,7 @@ public class QuestChallengeGenerator {
return qc;
}
public static class QuestEventChallengeList implements IStorage<QuestEventChallenge>{
public class QuestEventChallengeList implements IStorage<QuestEventChallenge>{
private Map<String,QuestEventChallenge> challenges;

View File

@@ -446,9 +446,12 @@ public class QuestController {
if (world != null) {
if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)) {
this.duelManager = new QuestEventLDADuelManager();
this.duelManager = new QuestEventLDADuelManager(FModel.getFormats().getStandard());
return;
} else if (world.isCustom()) {
} else if (world.getName().equals(QuestWorld.MODERNWORLDNAME)) {
this.duelManager = new QuestEventLDADuelManager(FModel.getFormats().getModern());
return;
}else if (world.isCustom()) {
path = world.getDuelsDir() == null ? ForgeConstants.DEFAULT_DUELS_DIR : ForgeConstants.USER_QUEST_WORLD_DIR + world.getDuelsDir();
} else {
path = world.getDuelsDir() == null ? ForgeConstants.DEFAULT_DUELS_DIR : ForgeConstants.QUEST_WORLD_DIR + world.getDuelsDir();
@@ -475,7 +478,12 @@ public class QuestController {
if (world != null) {
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;
} else if (world.isCustom()) {
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.io.Archetype;
import forge.game.GameFormat;
import forge.model.FModel;
/**
@@ -32,14 +33,16 @@ import forge.model.FModel;
public class QuestEventLDADuel extends QuestEventDuel {
private Archetype archetype;
private GameFormat baseFormat;
/**
* Instantiates a new quest duel.
*/
public QuestEventLDADuel(Archetype archetype) {
public QuestEventLDADuel(Archetype archetype, GameFormat baseFormat) {
super();
this.baseFormat = baseFormat;
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.io.Archetype;
import forge.game.GameFormat;
import forge.model.FModel;
import forge.quest.data.QuestPreferences;
import forge.quest.data.QuestPreferences.DifficultyPrefs;
@@ -42,9 +43,11 @@ public class QuestEventLDADuelManager implements QuestEventDuelManagerInterface
private List<Archetype> archetypes;
private final MapOfLists<QuestEventDifficulty, QuestEventDuel> sortedDuels = new EnumMapOfLists<>(QuestEventDifficulty.class, CollectionSuppliers.<QuestEventDuel>arrayLists());
private GameFormat baseFormat;
public QuestEventLDADuelManager(){
archetypes = CardArchetypeLDAGenerator.ldaArchetypes.get(FModel.getFormats().getStandard().getName());
public QuestEventLDADuelManager(GameFormat baseFormat){
this.baseFormat = baseFormat;
archetypes = CardArchetypeLDAGenerator.ldaArchetypes.get(baseFormat.getName());
assembleDuelDifficultyLists();
}
@@ -58,7 +61,7 @@ public class QuestEventLDADuelManager implements QuestEventDuelManagerInterface
int i=0;
for(Archetype archetype : archetypes){
QuestEventLDADuel duel = new QuestEventLDADuel((archetype));
QuestEventLDADuel duel = new QuestEventLDADuel(archetype,baseFormat);
duel.setDescription("Randomly generated "+archetype.getName()+" archetype deck.");
duel.setName(archetype.getName());
duel.setTitle(archetype.getName());

View File

@@ -40,6 +40,7 @@ public class QuestWorld implements Comparable<QuestWorld>{
private final String dir;
private final GameFormatQuest format;
public static final String STANDARDWORLDNAME = "Random Standard";
public static final String MODERNWORLDNAME = "Random Modern";
public static final String RANDOMCOMMANDERWORLDNAME = "Random Commander";
private boolean isCustom;
@@ -194,6 +195,12 @@ public class QuestWorld implements Comparable<QuestWorld>{
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)){
useFormat = new GameFormatQuest(QuestWorld.RANDOMCOMMANDERWORLDNAME,
FModel.getFormats().getFormat("Commander").getAllowedSetCodes(),