renamed gender class to pronoun class

This commit is contained in:
Evan Kranzler 2022-01-27 20:36:53 -05:00
parent 47bbb70675
commit 6eda309765
10 changed files with 57 additions and 49 deletions

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.ObjectColor; import mage.ObjectColor;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.Gender; import mage.abilities.Pronoun;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.condition.common.SourceDealtDamageCondition; import mage.abilities.condition.common.SourceDealtDamageCondition;
@ -53,7 +53,7 @@ public final class ChandraFireOfKaladesh extends CardImpl {
// {T}: Chandra, Fire of Kaladesh deals 1 damage to target player. If Chandra has dealt 3 or more damage this turn, exile her, then return her to the battlefield transformed under her owner's control. // {T}: Chandra, Fire of Kaladesh deals 1 damage to target player. If Chandra has dealt 3 or more damage this turn, exile her, then return her to the battlefield transformed under her owner's control.
this.addAbility(new TransformAbility()); this.addAbility(new TransformAbility());
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost());
ability.addEffect(new ConditionalOneShotEffect(new ExileAndReturnTransformedSourceEffect(Gender.FEMALE), new SourceDealtDamageCondition(3))); ability.addEffect(new ConditionalOneShotEffect(new ExileAndReturnTransformedSourceEffect(Pronoun.SHE), new SourceDealtDamageCondition(3)));
ability.addTarget(new TargetPlayerOrPlaneswalker()); ability.addTarget(new TargetPlayerOrPlaneswalker());
this.addAbility(ability); this.addAbility(ability);

View file

@ -1,7 +1,7 @@
package mage.cards.c; package mage.cards.c;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Gender; import mage.abilities.Pronoun;
import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility; import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
@ -33,7 +33,7 @@ public final class ConquerorsGalleon extends CardImpl {
this.addAbility(new TransformAbility()); this.addAbility(new TransformAbility());
this.addAbility(new AttacksTriggeredAbility( this.addAbility(new AttacksTriggeredAbility(
new CreateDelayedTriggeredAbilityEffect( new CreateDelayedTriggeredAbilityEffect(
new AtTheEndOfCombatDelayedTriggeredAbility(new ExileAndReturnTransformedSourceEffect(Gender.NEUTRAL, null, true))), new AtTheEndOfCombatDelayedTriggeredAbility(new ExileAndReturnTransformedSourceEffect(Pronoun.IT, null, true))),
false, false,
"When {this} attacks, exile it at the end of combat, then return it to the battlefield transformed under your control.")); "When {this} attacks, exile it at the end of combat, then return it to the battlefield transformed under your control."));

View file

@ -4,7 +4,7 @@ package mage.cards.j;
import java.util.UUID; import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.Gender; import mage.abilities.Pronoun;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.CardsInControllerGraveyardCondition; import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.common.TapSourceCost;
@ -39,7 +39,7 @@ public final class JaceVrynsProdigy extends CardImpl {
// {T}: Draw a card, then discard a card. If there are five or more cards in your graveyard, exile Jace, Vryn's Prodigy, then return him to the battefield transformed under his owner's control. // {T}: Draw a card, then discard a card. If there are five or more cards in your graveyard, exile Jace, Vryn's Prodigy, then return him to the battefield transformed under his owner's control.
this.addAbility(new TransformAbility()); this.addAbility(new TransformAbility());
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawDiscardControllerEffect(1, 1), new TapSourceCost()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawDiscardControllerEffect(1, 1), new TapSourceCost());
Effect effect = new ConditionalOneShotEffect(new ExileAndReturnTransformedSourceEffect(Gender.MALE), new CardsInControllerGraveyardCondition(5)); Effect effect = new ConditionalOneShotEffect(new ExileAndReturnTransformedSourceEffect(Pronoun.HE), new CardsInControllerGraveyardCondition(5));
ability.addEffect(effect); ability.addEffect(effect);
this.addAbility(ability); this.addAbility(ability);

View file

@ -6,7 +6,7 @@ import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.MageObjectReference; import mage.MageObjectReference;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.Gender; import mage.abilities.Pronoun;
import mage.abilities.common.EndOfCombatTriggeredAbility; import mage.abilities.common.EndOfCombatTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.Condition; import mage.abilities.condition.Condition;
@ -45,7 +45,7 @@ public final class KytheonHeroOfAkros extends CardImpl {
// At end of combat, if Kytheon, Hero of Akros and at least two other creatures attacked this combat, exile Kytheon, // At end of combat, if Kytheon, Hero of Akros and at least two other creatures attacked this combat, exile Kytheon,
// then return him to the battlefield transformed under his owner's control. // then return him to the battlefield transformed under his owner's control.
this.addAbility(new TransformAbility()); this.addAbility(new TransformAbility());
this.addAbility(new ConditionalInterveningIfTriggeredAbility(new EndOfCombatTriggeredAbility(new ExileAndReturnTransformedSourceEffect(Gender.MALE), false), this.addAbility(new ConditionalInterveningIfTriggeredAbility(new EndOfCombatTriggeredAbility(new ExileAndReturnTransformedSourceEffect(Pronoun.HE), false),
new KytheonHeroOfAkrosCondition(), "At end of combat, if {this} and at least two other creatures attacked this combat, exile {this}, " new KytheonHeroOfAkrosCondition(), "At end of combat, if {this} and at least two other creatures attacked this combat, exile {this}, "
+ "then return him to the battlefield transformed under his owner's control."), new AttackedOrBlockedThisCombatWatcher()); + "then return him to the battlefield transformed under his owner's control."), new AttackedOrBlockedThisCombatWatcher());

View file

@ -3,7 +3,7 @@ package mage.cards.l;
import java.util.UUID; import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Gender; import mage.abilities.Pronoun;
import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.ExileAndReturnTransformedSourceEffect; import mage.abilities.effects.common.ExileAndReturnTransformedSourceEffect;
@ -49,7 +49,7 @@ public final class LilianaHereticalHealer extends CardImpl {
this.addAbility(LifelinkAbility.getInstance()); this.addAbility(LifelinkAbility.getInstance());
// Whenever another nontoken creature you control dies, exile Liliana Heretical Healer, then return her to the battlefield transformed under her owner's control. If you do, create a 2/2 black Zombie creature token. // Whenever another nontoken creature you control dies, exile Liliana Heretical Healer, then return her to the battlefield transformed under her owner's control. If you do, create a 2/2 black Zombie creature token.
this.addAbility(new DiesCreatureTriggeredAbility(new ExileAndReturnTransformedSourceEffect(Gender.FEMALE, this.addAbility(new DiesCreatureTriggeredAbility(new ExileAndReturnTransformedSourceEffect(Pronoun.SHE,
new CreateTokenEffect(new ZombieToken())), false, filter)); new CreateTokenEffect(new ZombieToken())), false, filter));
} }

View file

@ -2,7 +2,7 @@ package mage.cards.n;
import java.util.UUID; import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Gender; import mage.abilities.Pronoun;
import mage.abilities.common.ActivateAsSorceryActivatedAbility; import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.costs.mana.ManaCostsImpl;
@ -46,7 +46,7 @@ public final class NicolBolasTheRavager extends CardImpl {
this.addAbility(new TransformAbility()); this.addAbility(new TransformAbility());
this.addAbility(new ActivateAsSorceryActivatedAbility( this.addAbility(new ActivateAsSorceryActivatedAbility(
Zone.BATTLEFIELD, Zone.BATTLEFIELD,
new ExileAndReturnTransformedSourceEffect(Gender.MALE), new ExileAndReturnTransformedSourceEffect(Pronoun.HE),
new ManaCostsImpl("{4}{U}{B}{R}") new ManaCostsImpl("{4}{U}{B}{R}")
)); ));
} }

View file

@ -3,7 +3,7 @@ package mage.cards.n;
import java.util.UUID; import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Gender; import mage.abilities.Pronoun;
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
@ -49,7 +49,7 @@ public final class NissaVastwoodSeer extends CardImpl {
// Whenever a land enters the battlefield under your control, if you control seven or more lands, exile Nissa, then return her to the battlefield transformed under her owner's control. // Whenever a land enters the battlefield under your control, if you control seven or more lands, exile Nissa, then return her to the battlefield transformed under her owner's control.
this.addAbility(new TransformAbility()); this.addAbility(new TransformAbility());
this.addAbility(new ConditionalInterveningIfTriggeredAbility( this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new EntersBattlefieldControlledTriggeredAbility(new ExileAndReturnTransformedSourceEffect(Gender.FEMALE), new FilterLandPermanent()), new EntersBattlefieldControlledTriggeredAbility(new ExileAndReturnTransformedSourceEffect(Pronoun.SHE), new FilterLandPermanent()),
new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.MORE_THAN, 6, true), new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.MORE_THAN, 6, true),
"Whenever a land enters the battlefield under your control, if you control seven or more lands, exile {this}, then return her to the battlefield transformed under her owner's control.")); "Whenever a land enters the battlefield under your control, if you control seven or more lands, exile {this}, then return her to the battlefield transformed under her owner's control."));
} }

View file

@ -1,25 +0,0 @@
package mage.abilities;
/**
* Created by IGOUDT on 5-3-2017.
*/
public enum Gender {
MALE("his", "him"), FEMALE("her", "her"), NEUTRAL("its", "it");
String personalPronoun;
String possesivePronoun;
Gender(String possessive, String personal) {
personalPronoun = personal;
possesivePronoun = possessive;
}
public String getPersonalPronoun() {
return personalPronoun;
}
public String getPossesivePronoun() {
return possesivePronoun;
}
}

View file

@ -0,0 +1,33 @@
package mage.abilities;
/**
* Created by IGOUDT on 5-3-2017.
*/
public enum Pronoun {
HE("he", "him", "his"),
SHE("she", "her", "her"),
THEY("they", "them", "their"),
IT("it", "it", "its");
private final String subjective;
private final String objective;
private final String possessive;
Pronoun(String subjective, String objective, String possessive) {
this.subjective = subjective;
this.objective = objective;
this.possessive = possessive;
}
public String getSubjective() {
return subjective;
}
public String getObjective() {
return objective;
}
public String getPossessive() {
return possessive;
}
}

View file

@ -1,7 +1,7 @@
package mage.abilities.effects.common; package mage.abilities.effects.common;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.Gender; import mage.abilities.Pronoun;
import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
@ -22,28 +22,28 @@ public class ExileAndReturnTransformedSourceEffect extends OneShotEffect {
protected boolean returnUnderYourControl; protected boolean returnUnderYourControl;
public ExileAndReturnTransformedSourceEffect() { public ExileAndReturnTransformedSourceEffect() {
this(Gender.NEUTRAL); this(Pronoun.IT);
} }
public ExileAndReturnTransformedSourceEffect(Gender gender) { public ExileAndReturnTransformedSourceEffect(Pronoun pronoun) {
this(gender, null); this(pronoun, null);
} }
public ExileAndReturnTransformedSourceEffect(Gender gender, Effect additionalEffect) { public ExileAndReturnTransformedSourceEffect(Pronoun pronoun, Effect additionalEffect) {
this(gender, additionalEffect, false); this(pronoun, additionalEffect, false);
} }
/** /**
* @param gender * @param pronoun
* @param additionalEffect that effect is applies as source is exiled * @param additionalEffect that effect is applies as source is exiled
* @param returnUnderYourControl return under your or owner control * @param returnUnderYourControl return under your or owner control
*/ */
public ExileAndReturnTransformedSourceEffect(Gender gender, Effect additionalEffect, boolean returnUnderYourControl) { public ExileAndReturnTransformedSourceEffect(Pronoun pronoun, Effect additionalEffect, boolean returnUnderYourControl) {
super(Outcome.Benefit); super(Outcome.Benefit);
this.additionalEffect = additionalEffect; this.additionalEffect = additionalEffect;
this.returnUnderYourControl = returnUnderYourControl; this.returnUnderYourControl = returnUnderYourControl;
this.staticText = "exile {this}, then return " + gender.getPersonalPronoun() this.staticText = "exile {this}, then return " + pronoun.getObjective()
+ " to the battlefield transformed under " + gender.getPossesivePronoun() + " to the battlefield transformed under " + pronoun.getPossessive()
+ " " + (this.returnUnderYourControl ? "your" : "owner's") + " control"; + " " + (this.returnUnderYourControl ? "your" : "owner's") + " control";
} }