mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 13:02:06 -08:00
Homarid Drake, reprints, and rewriting his or her to their
This commit is contained in:
parent
03355aee37
commit
00f91391e9
805 changed files with 1553 additions and 1474 deletions
|
|
@ -250,7 +250,7 @@ public abstract class AbilityImpl implements Ability {
|
|||
|
||||
/* 20130201 - 601.2b
|
||||
* If the player wishes to splice any cards onto the spell (see rule 702.45), he
|
||||
* or she reveals those cards in his or her hand.
|
||||
* or she reveals those cards in their hand.
|
||||
*/
|
||||
if (this.abilityType == AbilityType.SPELL) {
|
||||
game.getContinuousEffects().applySpliceEffects(this, game);
|
||||
|
|
@ -313,7 +313,7 @@ public abstract class AbilityImpl implements Ability {
|
|||
for (UUID modeId : this.getModes().getSelectedModes()) {
|
||||
this.getModes().setActiveMode(modeId);
|
||||
//20121001 - 601.2c
|
||||
// 601.2c The player announces his or her choice of an appropriate player, object, or zone for
|
||||
// 601.2c The player announces their choice of an appropriate player, object, or zone for
|
||||
// each target the spell requires. A spell may require some targets only if an alternative or
|
||||
// additional cost (such as a buyback or kicker cost), or a particular mode, was chosen for it;
|
||||
// otherwise, the spell is cast as though it did not require those targets. If the spell has a
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import mage.players.Player;
|
|||
import mage.util.CardUtil;
|
||||
|
||||
/**
|
||||
* Condition for - Controller has X or more cards in his or her graveyard
|
||||
* Condition for - Controller has X or more cards in their graveyard
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import java.util.UUID;
|
|||
|
||||
/**
|
||||
* Condition for -
|
||||
* Any opponent has X or more cards in his or her graveyard
|
||||
* Any opponent has X or more cards in their graveyard
|
||||
* @author Loki
|
||||
*/
|
||||
public class CardsInOpponentGraveCondition implements Condition {
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public class PayLifeCost extends CostImpl {
|
|||
@Override
|
||||
public boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game) {
|
||||
//118.4. If a cost or effect allows a player to pay an amount of life greater than 0,
|
||||
//the player may do so only if his or her life total is greater than or equal to the
|
||||
//the player may do so only if their life total is greater than or equal to the
|
||||
//amount of the payment. If a player pays life, the payment is subtracted from his or
|
||||
//her life total; in other words, the player loses that much life. (Players can always pay 0 life.)
|
||||
int lifeToPayAmount = amount.calculate(game, ability, null);
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public class ParleyCount implements DynamicValue, MageSingleton {
|
|||
|
||||
@Override
|
||||
public int calculate(Game game, Ability sourceAbility, Effect effect) {
|
||||
// Each player reveals the top card of his or her library. For each nonland card revealed this way
|
||||
// Each player reveals the top card of their library. For each nonland card revealed this way
|
||||
int parleyValue = 0;
|
||||
MageObject sourceObject = game.getObject(sourceAbility.getSourceId());
|
||||
if (sourceObject != null) {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class AddManaAnyColorAttachedControllerEffect extends ManaEffect {
|
|||
|
||||
public AddManaAnyColorAttachedControllerEffect() {
|
||||
super();
|
||||
staticText = "its controller adds one mana of any color to his or her mana pool";
|
||||
staticText = "its controller adds one mana of any color to their mana pool";
|
||||
}
|
||||
|
||||
public AddManaAnyColorAttachedControllerEffect(final AddManaAnyColorAttachedControllerEffect effect) {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ public class AddManaOfAnyColorToManaPoolTargetPlayerEffect extends ManaEffect {
|
|||
|
||||
public AddManaOfAnyColorToManaPoolTargetPlayerEffect(String textManaPoolOwner) {
|
||||
super();
|
||||
this.staticText = (textManaPoolOwner.equals("his or her") ? "that player adds " : "add ") + "one mana of any color" + " to " + textManaPoolOwner + " mana pool";
|
||||
this.staticText = (textManaPoolOwner.equals("their") ? "that player adds " : "add ") + "one mana of any color" + " to " + textManaPoolOwner + " mana pool";
|
||||
}
|
||||
|
||||
public AddManaOfAnyColorToManaPoolTargetPlayerEffect(final AddManaOfAnyColorToManaPoolTargetPlayerEffect effect) {
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class AddManaOfAnyTypeProducedEffect extends ManaEffect {
|
|||
|
||||
public AddManaOfAnyTypeProducedEffect() {
|
||||
super();
|
||||
staticText = "that player adds one mana to his or her mana pool of any type that land produced";
|
||||
staticText = "that player adds one mana to their mana pool of any type that land produced";
|
||||
}
|
||||
|
||||
public AddManaOfAnyTypeProducedEffect(final AddManaOfAnyTypeProducedEffect effect) {
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public class AddManaToManaPoolTargetControllerEffect extends ManaEffect {
|
|||
super();
|
||||
this.mana = mana;
|
||||
this.emptyOnlyOnTurnsEnd = emptyOnTurnsEnd;
|
||||
this.staticText = (textManaPoolOwner.equals("his or her")?"that player adds ":"add ") + mana.toString() + " to " + textManaPoolOwner + " mana pool";
|
||||
this.staticText = (textManaPoolOwner.equals("their")?"that player adds ":"add ") + mana.toString() + " to " + textManaPoolOwner + " mana pool";
|
||||
}
|
||||
|
||||
public AddManaToManaPoolTargetControllerEffect(final AddManaToManaPoolTargetControllerEffect effect) {
|
||||
|
|
|
|||
|
|
@ -49,9 +49,9 @@ import mage.target.common.TargetOpponent;
|
|||
/**
|
||||
* 1. The controller of the spell or ability chooses an opponent. (This doesn't
|
||||
* target the opponent.) 2. Each player involved in the clash reveals the top
|
||||
* card of his or her library. 3. The converted mana costs of the revealed cards
|
||||
* card of their library. 3. The converted mana costs of the revealed cards
|
||||
* are noted. 4. In turn order, each player involved in the clash chooses to put
|
||||
* his or her revealed card on either the top or bottom of his or her library.
|
||||
* their revealed card on either the top or bottom of their library.
|
||||
* (Note that the player whose turn it is does this first, not necessarily the
|
||||
* controller of the clash spell or ability.) When the second player makes this
|
||||
* decision, he or she will know what the first player chose. Then all cards are
|
||||
|
|
|
|||
|
|
@ -141,6 +141,6 @@ public class DontUntapInPlayersNextUntapStepAllEffect extends ContinuousRuleModi
|
|||
if (!staticText.isEmpty()) {
|
||||
return staticText;
|
||||
}
|
||||
return filter.getMessage() + " target opponent controls don't untap during his or her next untap step.";
|
||||
return filter.getMessage() + " target opponent controls don't untap during their next untap step.";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class ExileCardYouChooseTargetOpponentEffect extends OneShotEffect {
|
|||
|
||||
public ExileCardYouChooseTargetOpponentEffect(FilterCard filter) {
|
||||
super(Outcome.Discard);
|
||||
staticText = new StringBuilder("Target opponent reveals his or her hand. You choose ")
|
||||
staticText = new StringBuilder("Target opponent reveals their hand. You choose ")
|
||||
.append(filter.getMessage()).append(" from it and exile that card").toString();
|
||||
this.filter = filter;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public class ExileCardsFromTopOfLibraryTargetEffect extends OneShotEffect {
|
|||
this.amount = amount;
|
||||
this.staticText = (targetName == null ? "that player" : targetName) + " exiles the top "
|
||||
+ CardUtil.numberToText(amount, "")
|
||||
+ (amount == 1 ? "card" : " cards") + " of his or her library";
|
||||
+ (amount == 1 ? "card" : " cards") + " of their library";
|
||||
}
|
||||
|
||||
public ExileCardsFromTopOfLibraryTargetEffect(final ExileCardsFromTopOfLibraryTargetEffect effect) {
|
||||
|
|
|
|||
|
|
@ -107,6 +107,6 @@ public class ExileFromZoneTargetEffect extends OneShotEffect {
|
|||
}
|
||||
|
||||
private void setText() {
|
||||
staticText = "target player exiles " + CardUtil.numberToText(amount, "a") + ' ' + filter.getMessage() + " from his or her " + zone.toString().toLowerCase(Locale.ENGLISH);
|
||||
staticText = "target player exiles " + CardUtil.numberToText(amount, "a") + ' ' + filter.getMessage() + " from their " + zone.toString().toLowerCase(Locale.ENGLISH);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public class LoseHalfLifeTargetEffect extends OneShotEffect {
|
|||
|
||||
public LoseHalfLifeTargetEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "that player loses half his or her life, rounded up";
|
||||
staticText = "that player loses half their life, rounded up";
|
||||
}
|
||||
|
||||
public LoseHalfLifeTargetEffect(final LoseHalfLifeTargetEffect effect) {
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ public class PutLibraryIntoGraveTargetEffect extends OneShotEffect {
|
|||
} else {
|
||||
sb.append(" X cards ");
|
||||
}
|
||||
sb.append("of his or her library into his or her graveyard");
|
||||
sb.append("of their library into their graveyard");
|
||||
|
||||
if (!message.isEmpty()) {
|
||||
sb.append(", where X is the number of ");
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public class PutPermanentOnBattlefieldEffect extends OneShotEffect {
|
|||
}
|
||||
|
||||
if (useTargetController) {
|
||||
return "that player may put " + filter.getMessage() + " from his or her hand onto the battlefield";
|
||||
return "that player may put " + filter.getMessage() + " from their hand onto the battlefield";
|
||||
} else {
|
||||
return "you may put " + filter.getMessage() + " from your hand onto the battlefield";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ public class PutTopCardOfLibraryIntoGraveEachPlayerEffect extends OneShotEffect
|
|||
sb.append(CardUtil.numberToText(numberCards.toString()));
|
||||
sb.append(" cards");
|
||||
}
|
||||
sb.append(" of his or her library into his or her graveyard");
|
||||
sb.append(" of their library into their graveyard");
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ public class PutTopCardOfLibraryIntoGraveTargetEffect extends OneShotEffect {
|
|||
sb.append(CardUtil.numberToText(numberCards.toString()));
|
||||
sb.append(" cards");
|
||||
}
|
||||
sb.append(" of his or her library into his or her graveyard");
|
||||
sb.append(" of their library into their graveyard");
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public class ReplaceOpponentCardsInHandWithSelectedEffect extends OneShotEffect
|
|||
|
||||
public ReplaceOpponentCardsInHandWithSelectedEffect() {
|
||||
super(Outcome.Detriment);
|
||||
this.staticText = "Target opponent puts the cards from his or her hand on top of his or her library. Search that player's library for that many cards. The player puts those cards into his or her hand, then shuffles his or her library.";
|
||||
this.staticText = "Target opponent puts the cards from their hand on top of their library. Search that player's library for that many cards. The player puts those cards into their hand, then shuffles their library.";
|
||||
}
|
||||
|
||||
public ReplaceOpponentCardsInHandWithSelectedEffect(final ReplaceOpponentCardsInHandWithSelectedEffect effect) {
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public class ReturnToHandFromGraveyardAllEffect extends OneShotEffect {
|
|||
public ReturnToHandFromGraveyardAllEffect(FilterCard filter) {
|
||||
super(Outcome.ReturnToHand);
|
||||
this.filter = filter;
|
||||
staticText = "Each player returns all " + filter.getMessage() + " from his or her graveyard to his or her hand";
|
||||
staticText = "Each player returns all " + filter.getMessage() + " from their graveyard to their hand";
|
||||
}
|
||||
|
||||
public ReturnToHandFromGraveyardAllEffect(final ReturnToHandFromGraveyardAllEffect effect) {
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ public class RevealCardsFromLibraryUntilEffect extends OneShotEffect {
|
|||
}
|
||||
case LIBRARY: {
|
||||
if (shuffleRestInto) {
|
||||
sb.append(", then shuffles the rest into his or her library.");
|
||||
sb.append(", then shuffles the rest into their library.");
|
||||
} else {
|
||||
sb.append(" and the rest on the bottom of your library in ");
|
||||
if (anyOrder) {
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ public class RevealHandTargetEffect extends OneShotEffect {
|
|||
default:
|
||||
break;
|
||||
}
|
||||
sb.append(" reveals his or her hand");
|
||||
sb.append(" reveals their hand");
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class ShuffleIntoLibraryGraveOfSourceOwnerEffect extends OneShotEffect {
|
|||
|
||||
public ShuffleIntoLibraryGraveOfSourceOwnerEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "its owner shuffles his or her graveyard into his or her library";
|
||||
staticText = "its owner shuffles their graveyard into their library";
|
||||
}
|
||||
|
||||
public ShuffleIntoLibraryGraveOfSourceOwnerEffect(final ShuffleIntoLibraryGraveOfSourceOwnerEffect effect) {
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ public class ShuffleIntoLibraryTargetEffect extends OneShotEffect {
|
|||
if (staticText != null && !staticText.isEmpty()) {
|
||||
return staticText;
|
||||
} else {
|
||||
return "choose target " + mode.getTargets().get(0).getTargetName() + ". Its owner shuffles it into his or her library";
|
||||
return "choose target " + mode.getTargets().get(0).getTargetName() + ". Its owner shuffles it into their library";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class ShuffleLibraryTargetEffect extends OneShotEffect {
|
|||
|
||||
public ShuffleLibraryTargetEffect() {
|
||||
super(Outcome.Neutral);
|
||||
this.staticText = "Target player shuffles his or her library";
|
||||
this.staticText = "Target player shuffles their library";
|
||||
}
|
||||
|
||||
public ShuffleLibraryTargetEffect(final ShuffleLibraryTargetEffect effect) {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public class SkipNextCombatEffect extends OneShotEffect {
|
|||
|
||||
public SkipNextCombatEffect() {
|
||||
super(Outcome.Detriment);
|
||||
staticText = "target opponent skips his or her next combat phase";
|
||||
staticText = "target opponent skips their next combat phase";
|
||||
}
|
||||
|
||||
public SkipNextCombatEffect(SkipNextCombatEffect effect) {
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ public class SkipNextPlayerUntapStepEffect extends OneShotEffect {
|
|||
public String getText(Mode mode) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (!staticText.isEmpty()) {
|
||||
sb.append(staticText).append(" player skips his or her next untap step");
|
||||
sb.append(staticText).append(" player skips their next untap step");
|
||||
} else {
|
||||
sb.append("You skip your next untap step");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ public class CommanderReplacementEffect extends ReplacementEffectImpl {
|
|||
if (player != null && player.chooseUse(Outcome.Benefit, "Move commander to command zone?", source, game)) {
|
||||
((ZoneChangeEvent) event).setToZone(Zone.COMMAND);
|
||||
if (!game.isSimulation()) {
|
||||
game.informPlayers(player.getLogName() + " has moved his or her commander to the command zone");
|
||||
game.informPlayers(player.getLogName() + " has moved their commander to the command zone");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -163,7 +163,7 @@ public class CommanderReplacementEffect extends ReplacementEffectImpl {
|
|||
if (player != null && player.chooseUse(Outcome.Benefit, "Move commander to command zone?", source, game)) {
|
||||
((ZoneChangeEvent) event).setToZone(Zone.COMMAND);
|
||||
if (!game.isSimulation()) {
|
||||
game.informPlayers(player.getLogName() + " has moved his or her commander to the command zone");
|
||||
game.informPlayers(player.getLogName() + " has moved their commander to the command zone");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ import mage.game.Game;
|
|||
import mage.players.Player;
|
||||
|
||||
/**
|
||||
* Each player may play an additional land on each of his or her turns.
|
||||
* Each player may play an additional land on each of their turns.
|
||||
*
|
||||
* @author nantuko
|
||||
*/
|
||||
|
|
@ -46,7 +46,7 @@ public class PlayAdditionalLandsAllEffect extends ContinuousEffectImpl {
|
|||
|
||||
public PlayAdditionalLandsAllEffect() {
|
||||
super(Duration.WhileOnBattlefield, Layer.PlayerEffects, SubLayer.NA, Outcome.Benefit);
|
||||
staticText = "Each player may play an additional land on each of his or her turns";
|
||||
staticText = "Each player may play an additional land on each of their turns";
|
||||
}
|
||||
|
||||
public PlayAdditionalLandsAllEffect(final PlayAdditionalLandsAllEffect effect) {
|
||||
|
|
|
|||
|
|
@ -194,14 +194,14 @@ public class DiscardCardYouChooseTargetEffect extends OneShotEffect {
|
|||
throw new UnsupportedOperationException("target controller not supported");
|
||||
}
|
||||
if (revealAllCards) {
|
||||
sb.append(" reveals his or her hand");
|
||||
sb.append(" reveals their hand");
|
||||
} else {
|
||||
if (numberCardsToReveal instanceof StaticValue) {
|
||||
sb.append(" reveals ");
|
||||
sb.append(numberCardsToReveal.getMessage());
|
||||
sb.append(" from his or her hand");
|
||||
sb.append(" from their hand");
|
||||
} else {
|
||||
sb.append(" reveals a number of cards from his or her hand equal to ");
|
||||
sb.append(" reveals a number of cards from their hand equal to ");
|
||||
sb.append(numberCardsToReveal.getMessage());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class DiscardHandAllEffect extends OneShotEffect {
|
|||
|
||||
public DiscardHandAllEffect() {
|
||||
super(Outcome.Discard);
|
||||
this.staticText = "Each player discards his or her hand";
|
||||
this.staticText = "Each player discards their hand";
|
||||
}
|
||||
|
||||
public DiscardHandAllEffect(final DiscardHandAllEffect effect) {
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ public class DiscardHandTargetEffect extends OneShotEffect {
|
|||
} else {
|
||||
sb.append("target ").append(mode.getTargets().get(0).getTargetName());
|
||||
}
|
||||
sb.append(" discards his or her hand");
|
||||
sb.append(" discards their hand");
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -89,7 +89,7 @@ public class SearchLibraryPutInPlayTargetPlayerEffect extends SearchEffect {
|
|||
|
||||
private void setText() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("target player searches his or her library for ");
|
||||
sb.append("target player searches their library for ");
|
||||
if (target.getNumberOfTargets() == 0 && target.getMaxNumberOfTargets() > 0) {
|
||||
if (target.getMaxNumberOfTargets() == Integer.MAX_VALUE) {
|
||||
sb.append("any number of ").append(' ');
|
||||
|
|
@ -104,9 +104,9 @@ public class SearchLibraryPutInPlayTargetPlayerEffect extends SearchEffect {
|
|||
sb.append(" tapped");
|
||||
}
|
||||
if (forceShuffle) {
|
||||
sb.append(". Then that player shuffles his or her library");
|
||||
sb.append(". Then that player shuffles their library");
|
||||
} else {
|
||||
sb.append(". If that player does, he or she shuffles his or her library");
|
||||
sb.append(". If that player does, he or she shuffles their library");
|
||||
}
|
||||
staticText = sb.toString();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ public abstract class SearchTargetGraveyardHandLibraryForCardNameAndExileEffect
|
|||
sb.append("search ").append(this.searchWhatText);
|
||||
sb.append(" graveyard, hand, and library for ");
|
||||
sb.append(this.searchForText);
|
||||
sb.append(" and exile them. Then that player shuffles his or her library");
|
||||
sb.append(" and exile them. Then that player shuffles their library");
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -112,11 +112,11 @@ public class ManifestTargetPlayerEffect extends OneShotEffect {
|
|||
} else {
|
||||
sb.append("card ");
|
||||
}
|
||||
sb.append("of his or her library. ");
|
||||
sb.append("of their library. ");
|
||||
if (amount > 1) {
|
||||
sb.append("<i>(To manifest a card, put it onto the battlefield face down as a 2/2 creature. The controller may turn it face up at any time for its mana cost if it's a creature card.)</i>");
|
||||
} else {
|
||||
sb.append("<i>(That player puts the top card of his or her library onto the battlefield face down as a 2/2 creature. If it's a creature card, it can be turned face up any time for its mana cost.)</i>");
|
||||
sb.append("<i>(That player puts the top card of their library onto the battlefield face down as a 2/2 creature. If it's a creature card, it can be turned face up any time for its mana cost.)</i>");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@ import mage.game.Game;
|
|||
*
|
||||
* 702.56b A forecast ability may be activated only during the upkeep step of
|
||||
* the card's owner and only once each turn. The controller of the forecast
|
||||
* ability reveals the card with that ability from his or her hand as the
|
||||
* ability is activated. That player plays with that card revealed in his or her
|
||||
* ability reveals the card with that ability from their hand as the
|
||||
* ability is activated. That player plays with that card revealed in their
|
||||
* hand until it leaves the player's hand or until a step or phase that isn't an
|
||||
* upkeep step begins, whichever comes first.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ public class IngestAbility extends DealsCombatDamageToAPlayerTriggeredAbility {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Ingest <i>(Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)</i>";
|
||||
return "Ingest <i>(Whenever this creature deals combat damage to a player, that player exiles the top card of their library.)</i>";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -44,7 +44,7 @@ class IngestEffect extends OneShotEffect {
|
|||
|
||||
public IngestEffect() {
|
||||
super(Outcome.Exile);
|
||||
this.staticText = "that player exiles the top card of his or her library";
|
||||
this.staticText = "that player exiles the top card of their library";
|
||||
}
|
||||
|
||||
public IngestEffect(final IngestEffect effect) {
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ import mage.players.Player;
|
|||
* first ability is applied.
|
||||
*
|
||||
* "Madness [cost]" means "If a player would discard this card, that player
|
||||
* discards it, but may exile it instead of putting it into his or her
|
||||
* discards it, but may exile it instead of putting it into their
|
||||
* graveyard" and "When this card is exiled this way, its owner may cast it by
|
||||
* paying [cost] rather than paying its mana cost. If that player doesn't, he or
|
||||
* she puts this card into his or her graveyard.
|
||||
* she puts this card into their graveyard.
|
||||
*
|
||||
* 702.33b. Casting a spell using its madness ability follows the rules for
|
||||
* paying alternative costs in rules 601.2b and 601.2e-g.
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ import mage.watchers.common.MiracleWatcher;
|
|||
* cost."
|
||||
*
|
||||
* 702.92b If a player chooses to reveal a card using its miracle ability, he or
|
||||
* she plays with that card revealed until that card leaves his or her hand,
|
||||
* she plays with that card revealed until that card leaves their hand,
|
||||
* that ability resolves, or that ability otherwise leaves the stack.
|
||||
*
|
||||
* You can cast a card for its miracle cost only as the miracle triggered
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ import java.util.UUID;
|
|||
* card involves an additional cost, the card's owner must pay that cost if
|
||||
* able. If he or she can't, the card remains removed from the game. If the
|
||||
* additional cost includes mana, the situation is more complex. If the player
|
||||
* has enough mana in his or her mana pool to pay the cost, that player must do
|
||||
* has enough mana in their mana pool to pay the cost, that player must do
|
||||
* so. If the player can't possibly pay the cost, the card remains removed from
|
||||
* the game. However, if the player has the means to produce enough mana to pay
|
||||
* the cost, then he or she has a choice: The player may play the spell, produce
|
||||
|
|
|
|||
|
|
@ -97,10 +97,10 @@ public abstract class GameCommanderImpl extends GameImpl {
|
|||
|
||||
//20130711
|
||||
/*903.8. The Commander variant uses an alternate mulligan rule.
|
||||
* Each time a player takes a mulligan, rather than shuffling his or her entire hand of cards into his or her library, that player exiles any number of cards from his or her hand face down.
|
||||
* Each time a player takes a mulligan, rather than shuffling their entire hand of cards into their library, that player exiles any number of cards from their hand face down.
|
||||
* Then the player draws a number of cards equal to one less than the number of cards he or she exiled this way.
|
||||
* That player may look at all cards exiled this way while taking mulligans.
|
||||
* Once a player keeps an opening hand, that player shuffles all cards he or she exiled this way into his or her library.
|
||||
* Once a player keeps an opening hand, that player shuffles all cards he or she exiled this way into their library.
|
||||
* */
|
||||
//TODO implement may look at exile cards
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -41,12 +41,12 @@ import mage.target.common.TargetOpponent;
|
|||
* @author spjspj
|
||||
*/
|
||||
public class JaceTelepathUnboundEmblem extends Emblem {
|
||||
// You get an emblem with "Whenever you cast a spell, target opponent puts the top five cards of his or her library into his or her graveyard".
|
||||
// You get an emblem with "Whenever you cast a spell, target opponent puts the top five cards of their library into their graveyard".
|
||||
|
||||
public JaceTelepathUnboundEmblem() {
|
||||
this.setName("Emblem Jace");
|
||||
Effect effect = new PutTopCardOfLibraryIntoGraveTargetEffect(5);
|
||||
effect.setText("target opponent puts the top five cards of his or her library into his or her graveyard");
|
||||
effect.setText("target opponent puts the top five cards of their library into their graveyard");
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(Zone.COMMAND, effect, new FilterSpell("a spell"), false, false);
|
||||
ability.addTarget(new TargetOpponent());
|
||||
getAbilities().add(ability);
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ import mage.watchers.common.SpellsCastWatcher;
|
|||
public class JaceUnravelerOfSecretsEmblem extends Emblem {
|
||||
|
||||
/**
|
||||
* Emblem: "Whenever an opponent casts his or her first spell each turn,
|
||||
* Emblem: "Whenever an opponent casts their first spell each turn,
|
||||
* counter that spell."
|
||||
*/
|
||||
public JaceUnravelerOfSecretsEmblem() {
|
||||
|
|
@ -93,6 +93,6 @@ class JaceUnravelerOfSecretsTriggeredAbility extends SpellCastOpponentTriggeredA
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever an opponent casts his or her first spell each turn, counter that spell.";
|
||||
return "Whenever an opponent casts their first spell each turn, counter that spell.";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ public class Turn implements Serializable {
|
|||
}
|
||||
|
||||
if (game.getState().getTurnMods().skipTurn(activePlayer.getId())) {
|
||||
game.informPlayers(activePlayer.getLogName() + " skips his or her turn.");
|
||||
game.informPlayers(activePlayer.getLogName() + " skips their turn.");
|
||||
return true;
|
||||
}
|
||||
logStartOfTurn(game, activePlayer);
|
||||
|
|
|
|||
|
|
@ -2313,7 +2313,7 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
Library searchedLibrary = null;
|
||||
String searchInfo = null;
|
||||
if (targetPlayerId.equals(playerId)) {
|
||||
searchInfo = getLogName() + " searches his or her library";
|
||||
searchInfo = getLogName() + " searches their library";
|
||||
searchedLibrary = library;
|
||||
} else {
|
||||
Player targetPlayer = game.getPlayer(targetPlayerId);
|
||||
|
|
@ -3460,7 +3460,7 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
game.informPlayers(getLogName() + " puts "
|
||||
+ (withName ? card.getLogName() : (card.isFaceDown(game) ? "a face down card" : "a card"))
|
||||
+ " from " + fromZone.toString().toLowerCase(Locale.ENGLISH) + ' '
|
||||
+ (card.getOwnerId().equals(this.getId()) ? "into his or her hand" : "into its owner's hand")
|
||||
+ (card.getOwnerId().equals(this.getId()) ? "into their hand" : "into its owner's hand")
|
||||
);
|
||||
}
|
||||
result = true;
|
||||
|
|
@ -3555,7 +3555,7 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
.append(" puts ").append(card.getLogName()).append(' ').append(card.isCopy() ? "(Copy) " : "")
|
||||
.append(fromZone != null ? "from " + fromZone.toString().toLowerCase(Locale.ENGLISH) + ' ' : "");
|
||||
if (card.getOwnerId().equals(getId())) {
|
||||
sb.append("into his or her graveyard");
|
||||
sb.append("into their graveyard");
|
||||
} else {
|
||||
sb.append("it into its owner's graveyard");
|
||||
}
|
||||
|
|
@ -3587,7 +3587,7 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
}
|
||||
sb.append("to the ").append(toTop ? "top" : "bottom");
|
||||
if (card.getOwnerId().equals(getId())) {
|
||||
sb.append(" of his or her library");
|
||||
sb.append(" of their library");
|
||||
} else {
|
||||
Player player = game.getPlayer(card.getOwnerId());
|
||||
if (player != null) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue