mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Implement Planeswalker variant
This commit is contained in:
@@ -9,6 +9,7 @@ import forge.game.GameView;
|
||||
import forge.interfaces.IButton;
|
||||
import forge.interfaces.IGuiGame;
|
||||
import forge.interfaces.IWinLoseView;
|
||||
import forge.item.PaperCard;
|
||||
|
||||
public abstract class ConquestBattle {
|
||||
private final ConquestLocation location;
|
||||
@@ -71,6 +72,7 @@ public abstract class ConquestBattle {
|
||||
|
||||
public abstract String getEventName();
|
||||
public abstract String getOpponentName();
|
||||
public abstract PaperCard getPlaneswalker();
|
||||
public abstract void setOpponentAvatar(LobbyPlayer aiPlayer, IGuiGame gui);
|
||||
public abstract Set<GameType> getVariants();
|
||||
public abstract int gamesPerMatch();
|
||||
|
||||
@@ -11,6 +11,7 @@ import forge.game.GameView;
|
||||
import forge.interfaces.IButton;
|
||||
import forge.interfaces.IGuiGame;
|
||||
import forge.interfaces.IWinLoseView;
|
||||
import forge.item.PaperCard;
|
||||
import forge.model.FModel;
|
||||
import forge.planarconquest.ConquestPreferences.CQPref;
|
||||
import forge.properties.ForgeConstants;
|
||||
@@ -67,6 +68,11 @@ public class ConquestChaosBattle extends ConquestBattle {
|
||||
return duel.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PaperCard getPlaneswalker() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOpponentAvatar(LobbyPlayer aiPlayer, IGuiGame gui) {
|
||||
gui.setPlayerAvatar(aiPlayer, duel);
|
||||
|
||||
@@ -84,8 +84,7 @@ public class ConquestController {
|
||||
public void startBattle(ConquestBattle battle) {
|
||||
if (activeBattle != null) { return; }
|
||||
|
||||
Set<GameType> variants = battle.getVariants();
|
||||
|
||||
final Set<GameType> variants = battle.getVariants();
|
||||
final ConquestCommander commander = model.getSelectedCommander();
|
||||
final RegisteredPlayer humanStart = new RegisteredPlayer(commander.getDeck());
|
||||
final RegisteredPlayer aiStart = new RegisteredPlayer(battle.getOpponentDeck());
|
||||
@@ -103,6 +102,10 @@ public class ConquestController {
|
||||
humanStart.assignVanguardAvatar();
|
||||
aiStart.assignVanguardAvatar();
|
||||
}
|
||||
if (variants.contains(GameType.Planeswalker)) { //account for Planeswalker format
|
||||
humanStart.setPlaneswalker(model.getPlaneswalker());
|
||||
aiStart.setPlaneswalker(battle.getPlaneswalker());
|
||||
}
|
||||
if (variants.contains(GameType.Planechase)) { //generate planar decks if planechase variant being applied
|
||||
List<PaperCard> planes = generatePlanarPool();
|
||||
humanStart.setPlanes(planes);
|
||||
@@ -137,7 +140,7 @@ public class ConquestController {
|
||||
FThreads.invokeInEdtNowOrLater(new Runnable(){
|
||||
@Override
|
||||
public void run() {
|
||||
hostedMatch.startMatch(rules, null, starter, humanStart, gui);
|
||||
hostedMatch.startMatch(rules, variants, starter, humanStart, gui);
|
||||
}
|
||||
});
|
||||
activeBattle = battle;
|
||||
|
||||
@@ -183,6 +183,15 @@ public class ConquestEvent {
|
||||
return ConquestEvent.this.getOpponentName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PaperCard getPlaneswalker() {
|
||||
PaperCard avatarCard = ConquestEvent.this.getAvatarCard();
|
||||
if (avatarCard != null && avatarCard.getRules().getType().isPlaneswalker()) {
|
||||
return avatarCard;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOpponentAvatar(LobbyPlayer aiPlayer, IGuiGame gui) {
|
||||
PaperCard avatarCard = ConquestEvent.this.getAvatarCard();
|
||||
|
||||
Reference in New Issue
Block a user