mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
Tweak the Pillar of the Paruns format (#11197)
This commit is contained in:
parent
1a13dcd091
commit
1acb1d6c9a
4 changed files with 95 additions and 10 deletions
|
|
@ -537,6 +537,9 @@ public class ScryfallImageSupportCards {
|
||||||
add("LCC"); // Lost Caverns of Ixalan Commander
|
add("LCC"); // Lost Caverns of Ixalan Commander
|
||||||
add("REX"); // Jurassic World Collection
|
add("REX"); // Jurassic World Collection
|
||||||
add("SPG"); // Special Guests
|
add("SPG"); // Special Guests
|
||||||
|
|
||||||
|
// Custom sets using Scryfall images - must provide a direct link for each card in directDownloadLinks
|
||||||
|
add("CALC"); // Custom Alchemized versions of existing cards
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -1003,6 +1006,9 @@ public class ScryfallImageSupportCards {
|
||||||
put("PMEI/Jamuraan Lion/10*", "https://api.scryfall.com/cards/pmei/10★/");
|
put("PMEI/Jamuraan Lion/10*", "https://api.scryfall.com/cards/pmei/10★/");
|
||||||
// PRES
|
// PRES
|
||||||
put("PRES/Lathliss, Dragon Queen/149*", "https://api.scryfall.com/cards/pres/149★/");
|
put("PRES/Lathliss, Dragon Queen/149*", "https://api.scryfall.com/cards/pres/149★/");
|
||||||
|
|
||||||
|
// CALC -- custom alchemy version of cards.
|
||||||
|
put("CALC/C-Pillar of the Paruns", "https://api.scryfall.com/cards/dis/176/");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,10 @@ import java.util.UUID;
|
||||||
* To summarize, this uses the default rules for a 1v1 limited match,
|
* To summarize, this uses the default rules for a 1v1 limited match,
|
||||||
* with two additional custom rules: <p>
|
* with two additional custom rules: <p>
|
||||||
* -> At the beginning of each player's first main phase, that player
|
* -> At the beginning of each player's first main phase, that player
|
||||||
* conjure into play a Pillar of the Paruns. This does count as a
|
* conjure into play a custom version of Pillar of the Paruns. This
|
||||||
* land drop for the turn. <p>
|
* does count as a land drop for the turn. The custom Pillar has
|
||||||
* -> The starting hand size is 6, not 7.
|
* hexproof and gain "{T}: add {1}."<p>
|
||||||
|
* -> The starting hand size is 6, and the starting life count is 25.
|
||||||
* <p> <p>
|
* <p> <p>
|
||||||
* I did took the inspiration for the mode from this cube list (not
|
* I did took the inspiration for the mode from this cube list (not
|
||||||
* sure it is the original source for the idea, but i did not found
|
* sure it is the original source for the idea, but i did not found
|
||||||
|
|
@ -49,7 +50,7 @@ import java.util.UUID;
|
||||||
public class CustomPillarOfTheParunsDuel extends GameImpl {
|
public class CustomPillarOfTheParunsDuel extends GameImpl {
|
||||||
|
|
||||||
public CustomPillarOfTheParunsDuel(MultiplayerAttackOption attackOption, RangeOfInfluence range, Mulligan mulligan) {
|
public CustomPillarOfTheParunsDuel(MultiplayerAttackOption attackOption, RangeOfInfluence range, Mulligan mulligan) {
|
||||||
super(attackOption, range, mulligan, 20, 40, 6);
|
super(attackOption, range, mulligan, 25, 40, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -57,7 +58,10 @@ public class CustomPillarOfTheParunsDuel extends GameImpl {
|
||||||
super.init(choosingPlayerId);
|
super.init(choosingPlayerId);
|
||||||
|
|
||||||
getPlayers().forEach((playerId, p) -> {
|
getPlayers().forEach((playerId, p) -> {
|
||||||
addDelayedTriggeredAbility(new AtTheBeginOfPlayerFirstMainPhase(playerId, "Pillar of the Paruns"), null);
|
addDelayedTriggeredAbility(
|
||||||
|
new AtTheBeginOfPlayerFirstMainPhase(playerId, "C-Pillar of the Paruns"),
|
||||||
|
null // TODO: Not sure how to mock something to be displayed instead.
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
state.getTurnMods().add(new TurnMod(startingPlayerId).withSkipStep(PhaseStep.DRAW));
|
state.getTurnMods().add(new TurnMod(startingPlayerId).withSkipStep(PhaseStep.DRAW));
|
||||||
|
|
@ -89,28 +93,28 @@ class InitPillarOfTheParunsEffect extends OneShotEffect {
|
||||||
private UUID playerId;
|
private UUID playerId;
|
||||||
private String cardName;
|
private String cardName;
|
||||||
|
|
||||||
InitPillarOfTheParunsEffect(UUID playerId, String cardName){
|
InitPillarOfTheParunsEffect(UUID playerId, String cardName) {
|
||||||
super(Outcome.PutLandInPlay);
|
super(Outcome.PutLandInPlay);
|
||||||
this.playerId = playerId;
|
this.playerId = playerId;
|
||||||
this.cardName = cardName;
|
this.cardName = cardName;
|
||||||
this.staticText = "conjure " + cardName + " in play. It does count as a land played for the turn.";
|
this.staticText = "conjure " + cardName + " in play. It does count as a land played for the turn.";
|
||||||
}
|
}
|
||||||
|
|
||||||
private InitPillarOfTheParunsEffect(final InitPillarOfTheParunsEffect effect){
|
private InitPillarOfTheParunsEffect(final InitPillarOfTheParunsEffect effect) {
|
||||||
super(effect);
|
super(effect);
|
||||||
this.playerId = effect.playerId;
|
this.playerId = effect.playerId;
|
||||||
this.cardName = effect.cardName;
|
this.cardName = effect.cardName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InitPillarOfTheParunsEffect copy(){
|
public InitPillarOfTheParunsEffect copy() {
|
||||||
return new InitPillarOfTheParunsEffect(this);
|
return new InitPillarOfTheParunsEffect(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, Ability source){
|
public boolean apply(Game game, Ability source) {
|
||||||
Player player = game.getPlayer(playerId);
|
Player player = game.getPlayer(playerId);
|
||||||
if(player == null){
|
if (player == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
46
Mage.Sets/src/mage/cards/p/PillarOfTheParunsCustom.java
Normal file
46
Mage.Sets/src/mage/cards/p/PillarOfTheParunsCustom.java
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
|
||||||
|
package mage.cards.p;
|
||||||
|
|
||||||
|
import mage.abilities.keyword.HexproofAbility;
|
||||||
|
import mage.abilities.mana.ColorlessManaAbility;
|
||||||
|
import mage.abilities.mana.ConditionalAnyColorManaAbility;
|
||||||
|
import mage.abilities.mana.conditional.ConditionalSpellManaBuilder;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom version of Pillar of the Paruns.
|
||||||
|
* Tweaked for the needs of the Pillar of the Paruns custom mode.
|
||||||
|
*
|
||||||
|
* Has Hexproof and "{T}: Add {1}"
|
||||||
|
*
|
||||||
|
* @author Susucr
|
||||||
|
*/
|
||||||
|
public final class PillarOfTheParunsCustom extends CardImpl {
|
||||||
|
|
||||||
|
public PillarOfTheParunsCustom(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||||
|
|
||||||
|
// Custom: Hexproof
|
||||||
|
this.addAbility(HexproofAbility.getInstance());
|
||||||
|
|
||||||
|
// Custom: {T}: Add {1}
|
||||||
|
this.addAbility(new ColorlessManaAbility());
|
||||||
|
|
||||||
|
// {T}: Add one mana of any color. Spend this mana only to cast a multicolored spell.
|
||||||
|
this.addAbility(new ConditionalAnyColorManaAbility(1, new ConditionalSpellManaBuilder(StaticFilters.FILTER_SPELL_A_MULTICOLORED)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private PillarOfTheParunsCustom(final PillarOfTheParunsCustom card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PillarOfTheParunsCustom copy() {
|
||||||
|
return new PillarOfTheParunsCustom(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
29
Mage.Sets/src/mage/sets/CustomAlchemy.java
Normal file
29
Mage.Sets/src/mage/sets/CustomAlchemy.java
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
|
||||||
|
package mage.sets;
|
||||||
|
|
||||||
|
import mage.cards.ExpansionSet;
|
||||||
|
import mage.constants.Rarity;
|
||||||
|
import mage.constants.SetType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom version of the official cards.
|
||||||
|
* Similar to Alchemy tweaks of cards.
|
||||||
|
* @author Susucr
|
||||||
|
*/
|
||||||
|
public final class CustomAlchemy extends ExpansionSet {
|
||||||
|
|
||||||
|
private static final CustomAlchemy instance = new CustomAlchemy();
|
||||||
|
|
||||||
|
public static CustomAlchemy getInstance() {
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
private CustomAlchemy() {
|
||||||
|
super("Custom Alchemy", "CALC", ExpansionSet.buildDate(2023, 9, 24), SetType.CUSTOM_SET);
|
||||||
|
this.hasBoosters = false;
|
||||||
|
this.hasBasicLands = false;
|
||||||
|
|
||||||
|
cards.add(new SetCardInfo("C-Pillar of the Paruns", 1, Rarity.SPECIAL, mage.cards.p.PillarOfTheParunsCustom.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue