mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Added Random Modern World
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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(),
|
||||||
|
|||||||
Reference in New Issue
Block a user