mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
Merge branch 'momirvariant' into 'master'
Added MoJhoSto variant See merge request core-developers/forge!338
This commit is contained in:
@@ -42,6 +42,25 @@ public enum GameType {
|
||||
.getCard("Momir Vig, Simic Visionary Avatar"), 1);
|
||||
return deck;
|
||||
}
|
||||
}),
|
||||
MoJhoSto (DeckFormat.Constructed, false, false, false, "MoJhoSto", "Each player has a deck containing 60 basic lands and the Momir Vig, Jhoira of the Ghitu, and Stonehewer Giant avatars.", new Function<RegisteredPlayer, Deck>() {
|
||||
@Override
|
||||
public Deck apply(RegisteredPlayer player) {
|
||||
Deck deck = new Deck();
|
||||
CardPool mainDeck = deck.getMain();
|
||||
mainDeck.add("Plains", 12);
|
||||
mainDeck.add("Island", 12);
|
||||
mainDeck.add("Swamp", 12);
|
||||
mainDeck.add("Mountain", 12);
|
||||
mainDeck.add("Forest", 12);
|
||||
deck.getOrCreate(DeckSection.Avatar).add(StaticData.instance().getVariantCards()
|
||||
.getCard("Momir Vig, Simic Visionary Avatar"), 1);
|
||||
deck.getOrCreate(DeckSection.Avatar).add(StaticData.instance().getVariantCards()
|
||||
.getCard("Jhoira of the Ghitu Avatar"), 1);
|
||||
deck.getOrCreate(DeckSection.Avatar).add(StaticData.instance().getVariantCards()
|
||||
.getCard("Stonehewer Giant Avatar"), 1);
|
||||
return deck;
|
||||
}
|
||||
});
|
||||
|
||||
private final DeckFormat deckFormat;
|
||||
|
||||
@@ -2591,8 +2591,10 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
PlayerZone com = getZone(ZoneType.Command);
|
||||
|
||||
// Vanguard
|
||||
if (registeredPlayer.getVanguardAvatar() != null) {
|
||||
com.add(Card.fromPaperCard(registeredPlayer.getVanguardAvatar(), this));
|
||||
if (registeredPlayer.getVanguardAvatars() != null) {
|
||||
for(PaperCard avatar:registeredPlayer.getVanguardAvatars()) {
|
||||
com.add(Card.fromPaperCard(avatar, this));
|
||||
}
|
||||
}
|
||||
|
||||
// Schemes
|
||||
|
||||
@@ -30,7 +30,7 @@ public class RegisteredPlayer {
|
||||
private Iterable<PaperCard> planes = null;
|
||||
private Iterable<PaperCard> conspiracies = null;
|
||||
private List<PaperCard> commanders = Lists.newArrayList();
|
||||
private PaperCard vanguardAvatar = null;
|
||||
private List<PaperCard> vanguardAvatars = null;
|
||||
private PaperCard planeswalker = null;
|
||||
private int teamNumber = -1; // members of teams with negative id will play FFA.
|
||||
private boolean randomFoil = false;
|
||||
@@ -104,7 +104,7 @@ public class RegisteredPlayer {
|
||||
public static RegisteredPlayer forVariants(final int playerCount,
|
||||
final Set<GameType> appliedVariants, final Deck deck, //General vars
|
||||
final Iterable<PaperCard> schemes, final boolean playerIsArchenemy, //Archenemy specific vars
|
||||
final Iterable<PaperCard> planes, final PaperCard vanguardAvatar) { //Planechase and Vanguard
|
||||
final Iterable<PaperCard> planes, final CardPool vanguardAvatar) { //Planechase and Vanguard
|
||||
|
||||
RegisteredPlayer start = new RegisteredPlayer(deck);
|
||||
if (appliedVariants.contains(GameType.Archenemy) && playerIsArchenemy) {
|
||||
@@ -131,8 +131,9 @@ public class RegisteredPlayer {
|
||||
if (appliedVariants.contains(GameType.Planechase)) {
|
||||
start.planes = planes;
|
||||
}
|
||||
if (appliedVariants.contains(GameType.Vanguard) || appliedVariants.contains(GameType.MomirBasic)) {
|
||||
start.setVanguardAvatar(vanguardAvatar);
|
||||
if (appliedVariants.contains(GameType.Vanguard) || appliedVariants.contains(GameType.MomirBasic)
|
||||
|| appliedVariants.contains(GameType.MoJhoSto)) {
|
||||
start.setVanguardAvatars(vanguardAvatar.toFlatList());
|
||||
}
|
||||
return start;
|
||||
}
|
||||
@@ -153,19 +154,21 @@ public class RegisteredPlayer {
|
||||
commanders = currentDeck.getCommanders();
|
||||
}
|
||||
|
||||
public PaperCard getVanguardAvatar() {
|
||||
return vanguardAvatar;
|
||||
public List<PaperCard> getVanguardAvatars() {
|
||||
return vanguardAvatars;
|
||||
}
|
||||
public void assignVanguardAvatar() {
|
||||
CardPool section = currentDeck.get(DeckSection.Avatar);
|
||||
setVanguardAvatar(section == null ? null : section.get(0));
|
||||
setVanguardAvatars(section == null ? null : section.toFlatList());
|
||||
}
|
||||
private void setVanguardAvatar(PaperCard vanguardAvatar0) {
|
||||
vanguardAvatar = vanguardAvatar0;
|
||||
if (vanguardAvatar == null) { return; }
|
||||
private void setVanguardAvatars(List<PaperCard> vanguardAvatars0) {
|
||||
vanguardAvatars = vanguardAvatars0;
|
||||
if (vanguardAvatars == null) { return; }
|
||||
for(PaperCard avatar: vanguardAvatars){
|
||||
setStartingLife(getStartingLife() + avatar.getRules().getLife());
|
||||
setStartingHand(getStartingHand() + avatar.getRules().getHand());
|
||||
}
|
||||
|
||||
setStartingLife(getStartingLife() + vanguardAvatar.getRules().getLife());
|
||||
setStartingHand(getStartingHand() + vanguardAvatar.getRules().getHand());
|
||||
}
|
||||
|
||||
public PaperCard getPlaneswalker() {
|
||||
|
||||
Reference in New Issue
Block a user