mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Fix so commanders unlocked when you unlock their card
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package forge.planarconquest;
|
package forge.planarconquest;
|
||||||
|
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.deck.generation.DeckGenPool;
|
|
||||||
import forge.item.InventoryItem;
|
import forge.item.InventoryItem;
|
||||||
import forge.item.PaperCard;
|
import forge.item.PaperCard;
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
@@ -17,11 +16,8 @@ public class ConquestCommander implements InventoryItem, IXmlWritable {
|
|||||||
|
|
||||||
private Deck deck;
|
private Deck deck;
|
||||||
|
|
||||||
public ConquestCommander(PaperCard card0) {
|
public ConquestCommander(PaperCard card0, Deck deck0) {
|
||||||
this(card0, new Deck(card0.getName()), null);
|
this(card0, deck0, null);
|
||||||
}
|
|
||||||
public ConquestCommander(PaperCard card0, DeckGenPool cardPool0, boolean forAi) {
|
|
||||||
this(card0, ConquestUtil.generateDeck(card0, cardPool0, forAi), null);
|
|
||||||
}
|
}
|
||||||
private ConquestCommander(PaperCard card0, Deck deck0, ConquestRecord record0) {
|
private ConquestCommander(PaperCard card0, Deck deck0, ConquestRecord record0) {
|
||||||
card = card0;
|
card = card0;
|
||||||
|
|||||||
@@ -20,6 +20,9 @@ package forge.planarconquest;
|
|||||||
import forge.achievement.PlaneswalkerAchievements;
|
import forge.achievement.PlaneswalkerAchievements;
|
||||||
import forge.assets.ISkinImage;
|
import forge.assets.ISkinImage;
|
||||||
import forge.card.CardDb;
|
import forge.card.CardDb;
|
||||||
|
import forge.card.CardRules;
|
||||||
|
import forge.deck.Deck;
|
||||||
|
import forge.deck.generation.DeckGenPool;
|
||||||
import forge.item.InventoryItem;
|
import forge.item.InventoryItem;
|
||||||
import forge.item.PaperCard;
|
import forge.item.PaperCard;
|
||||||
import forge.itemmanager.ColumnDef;
|
import forge.itemmanager.ColumnDef;
|
||||||
@@ -42,6 +45,7 @@ import java.util.Map;
|
|||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
|
import com.google.common.base.Predicate;
|
||||||
|
|
||||||
public final class ConquestData {
|
public final class ConquestData {
|
||||||
private static final String XML_FILE = "data.xml";
|
private static final String XML_FILE = "data.xml";
|
||||||
@@ -68,12 +72,11 @@ public final class ConquestData {
|
|||||||
aetherShards = FModel.getConquestPreferences().getPrefInt(CQPref.AETHER_START_SHARDS);
|
aetherShards = FModel.getConquestPreferences().getPrefInt(CQPref.AETHER_START_SHARDS);
|
||||||
currentLocation = new ConquestLocation(startingPlane0, 0, 0, 0);
|
currentLocation = new ConquestLocation(startingPlane0, 0, 0, 0);
|
||||||
setPlaneswalker(startingPlaneswalker0);
|
setPlaneswalker(startingPlaneswalker0);
|
||||||
unlockCard(startingPlaneswalker0);
|
|
||||||
|
|
||||||
//generate deck for starting commander and add all cards to collection
|
//unlock starting commander, starting planeswalker, and all cards in generated deck
|
||||||
ConquestCommander commander = new ConquestCommander(startingCommander0, startingPlane0.getCardPool(), false);
|
|
||||||
commanders.add(commander);
|
|
||||||
unlockCard(startingCommander0);
|
unlockCard(startingCommander0);
|
||||||
|
unlockCard(startingPlaneswalker0);
|
||||||
|
ConquestCommander commander = getSelectedCommander();
|
||||||
for (Entry<PaperCard, Integer> entry : commander.getDeck().getMain()) {
|
for (Entry<PaperCard, Integer> entry : commander.getDeck().getMain()) {
|
||||||
PaperCard card = entry.getKey();
|
PaperCard card = entry.getKey();
|
||||||
if (!card.getRules().getType().isBasicLand()) { //ignore basic lands
|
if (!card.getRules().getType().isBasicLand()) { //ignore basic lands
|
||||||
@@ -174,6 +177,29 @@ public final class ConquestData {
|
|||||||
public void unlockCard(PaperCard card) {
|
public void unlockCard(PaperCard card) {
|
||||||
if (unlockedCards.add(card)) {
|
if (unlockedCards.add(card)) {
|
||||||
newCards.add(card);
|
newCards.add(card);
|
||||||
|
|
||||||
|
//add card to available commanders if eligible
|
||||||
|
if (card.getRules().canBeCommander()) {
|
||||||
|
Deck deck;
|
||||||
|
if (commanders.isEmpty()) { //generate deck for starting commander
|
||||||
|
DeckGenPool pool = new DeckGenPool(getCurrentPlane().getCardPool().getAllCards(new Predicate<PaperCard>() {
|
||||||
|
@Override
|
||||||
|
public boolean apply(PaperCard pc) {
|
||||||
|
CardRules rules = pc.getRules();
|
||||||
|
if (rules.canBeCommander() || rules.getType().isPlaneswalker()) {
|
||||||
|
return false; //prevent including additional commanders or planeswalkers in starting deck
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
deck = ConquestUtil.generateDeck(card, pool, false);
|
||||||
|
selectedCommanderIndex = 0;
|
||||||
|
}
|
||||||
|
else { //create blank deck for subsequent commanders
|
||||||
|
deck = new Deck(card.getName());
|
||||||
|
}
|
||||||
|
commanders.add(new ConquestCommander(card, deck));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void unlockCards(Iterable<PaperCard> cards) {
|
public void unlockCards(Iterable<PaperCard> cards) {
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
*/
|
*/
|
||||||
package forge.properties;
|
package forge.properties;
|
||||||
|
|
||||||
import forge.ai.AiProfileUtil;
|
|
||||||
import forge.game.GameLogEntryType;
|
import forge.game.GameLogEntryType;
|
||||||
|
|
||||||
public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
|
public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import com.google.common.collect.ImmutableMap;
|
|||||||
import forge.FThreads;
|
import forge.FThreads;
|
||||||
import forge.GuiBase;
|
import forge.GuiBase;
|
||||||
import forge.LobbyPlayer;
|
import forge.LobbyPlayer;
|
||||||
import forge.ai.LobbyPlayerAi;
|
|
||||||
import forge.assets.FSkinProp;
|
import forge.assets.FSkinProp;
|
||||||
import forge.card.CardDb.SetPreference;
|
import forge.card.CardDb.SetPreference;
|
||||||
import forge.card.CardEdition;
|
import forge.card.CardEdition;
|
||||||
|
|||||||
Reference in New Issue
Block a user