add isOwned and isControlled methods. remove some null-checks, remove some unnecessary casts

This commit is contained in:
igoudt 2018-07-04 14:24:11 +02:00
parent e46ad02918
commit 9f06046f22
464 changed files with 567 additions and 562 deletions

View file

@ -73,7 +73,7 @@ public class CardsView extends LinkedHashMap<UUID, CardView> {
case BATTLEFIELD:
sourceObject = game.getPermanent(ability.getSourceId());
if (sourceObject == null) {
sourceObject = (Permanent) game.getLastKnownInformation(ability.getSourceId(), Zone.BATTLEFIELD);
sourceObject = game.getLastKnownInformation(ability.getSourceId(), Zone.BATTLEFIELD);
}
isPermanent = true;
break;

View file

@ -136,7 +136,7 @@ public class ComputerPlayer6 extends ComputerPlayer /*implements Player*/ {
sb.setLength(0);
sb.append("-> Permanents: [");
for (Permanent permanent : game.getBattlefield().getAllPermanents()) {
if (permanent.getOwnerId().equals(player.getId())) {
if (permanent.isOwnedBy(player.getId())) {
sb.append(permanent.getName());
if (permanent.isTapped()) {
sb.append("(tapped)");

View file

@ -155,7 +155,7 @@ class AbandonedSarcophagusReplacementEffect extends ReplacementEffectImpl {
Card card = game.getCard(event.getTargetId());
if (card != null
&& watcher != null
&& card.getOwnerId().equals(controller.getId())) {
&& card.isOwnedBy(controller.getId())) {
for (Ability ability : card.getAbilities()) {
if (ability instanceof CyclingAbility) {
cardHasCycling = true;
@ -199,7 +199,7 @@ class AbandonedSarcophagusWatcher extends Watcher {
Player controller = game.getPlayer(event.getPlayerId());
if (card != null
&& controller != null
&& card.getOwnerId().equals(controller.getId())) {
&& card.isOwnedBy(controller.getId())) {
Cards c = getCardsCycledThisTurn(event.getPlayerId());
c.add(card);
cycledCardsThisTurn.put(event.getPlayerId(), c);

View file

@ -108,7 +108,7 @@ class AbbotOfKeralKeepCastFromExileEffect extends AsThoughEffectImpl {
@Override
public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
return source.getControllerId().equals(affectedControllerId)
return source.isControlledBy(affectedControllerId)
&& objectId.equals(getTargetPointer().getFirst(game, source));
}
}

View file

@ -57,7 +57,7 @@ class AcidicSoilEffect extends OneShotEffect {
if (player != null) {
int amount = 0;
for (Permanent permanent : permanents) {
if (permanent.getControllerId().equals(playerId)) {
if (permanent.isControlledBy(playerId)) {
amount++;
}
}

View file

@ -114,7 +114,7 @@ class AerialCaravanCastFromExileEffect extends AsThoughEffectImpl {
@Override
public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
return source.getControllerId().equals(affectedControllerId)
return source.isControlledBy(affectedControllerId)
&& objectId.equals(getTargetPointer().getFirst(game, source));
}
}

View file

@ -70,7 +70,7 @@ class AetherChargeTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
Permanent permanent = game.getPermanent(event.getTargetId());
if (permanent.isCreature() && permanent.hasSubtype(SubType.BEAST, game)
&& permanent.getControllerId().equals(this.controllerId)) {
&& permanent.isControlledBy(this.controllerId)) {
Effect effect = this.getEffects().get(0);
effect.setValue("damageSource", event.getTargetId());
return true;

View file

@ -81,7 +81,7 @@ class AetherspoutsEffect extends OneShotEffect {
List<Permanent> permanentsToTop = new ArrayList<>();
List<Permanent> permanentsToBottom = new ArrayList<>();
for (Permanent permanent:game.getState().getBattlefield().getActivePermanents(new FilterAttackingCreature(), player.getId(), source.getSourceId(), game)) {
if (permanent.getOwnerId().equals(player.getId())) {
if (permanent.isOwnedBy(player.getId())) {
if (player.chooseUse(outcome, "Put " + permanent.getLogName() + " to the top? (else it goes to bottom)", source, game)) {
permanentsToTop.add(permanent);
game.informPlayers(permanent.getLogName() + " goes to the top of " + player.getLogName() + "'s library");

View file

@ -85,7 +85,7 @@ class AjanisLastStandTriggeredAbility extends TriggeredAbilityImpl {
ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
if (zEvent.getFromZone() == Zone.BATTLEFIELD
&& zEvent.getToZone() == Zone.GRAVEYARD) {
if (zEvent.getTarget().getControllerId().equals(controllerId)
if (zEvent.getTarget().isControlledBy(controllerId)
&& (zEvent.getTarget().isCreature()
|| zEvent.getTarget().isPlaneswalker())) {
return true;

View file

@ -79,7 +79,7 @@ class AkoumFirebirdLandfallAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Permanent permanent = game.getPermanent(event.getTargetId());
return permanent != null && permanent.isLand() && permanent.getControllerId().equals(this.controllerId);
return permanent != null && permanent.isLand() && permanent.isControlledBy(this.controllerId);
}
@Override

View file

@ -82,7 +82,7 @@ class AkoumHellkiteTriggeredAbility extends TriggeredAbilityImpl {
Permanent permanent = game.getPermanent(event.getTargetId());
if (permanent != null
&& permanent.isLand()
&& permanent.getControllerId().equals(getControllerId())) {
&& permanent.isControlledBy(getControllerId())) {
Permanent sourcePermanent = game.getPermanent(getSourceId());
if (sourcePermanent != null) {
for (Effect effect : getEffects()) {

View file

@ -87,6 +87,6 @@ class AladdinsLampEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
return source.getControllerId().equals(event.getPlayerId());
return source.isControlledBy(event.getPlayerId());
}
}

View file

@ -75,7 +75,7 @@ class AmbuscadeShamanTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
UUID targetId = event.getTargetId();
Permanent permanent = game.getPermanent(targetId);
if (permanent.getControllerId().equals(this.controllerId)
if (permanent.isControlledBy(this.controllerId)
&& permanent.isCreature()) {
this.getEffects().setTargetPointer(new FixedTarget(permanent, game));
return true;

View file

@ -58,7 +58,7 @@ class AmuletOfVigorTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Permanent p = game.getPermanent(event.getTargetId());
if (p != null && p.isTapped() && p.getControllerId().equals(this.controllerId)) {
if (p != null && p.isTapped() && p.isControlledBy(this.controllerId)) {
for (Effect effect : this.getEffects()) {
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
}

View file

@ -58,7 +58,7 @@ class AngelicChorusTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
Permanent permanent = game.getPermanent(event.getTargetId());
if (permanent.isCreature()
&& permanent.getControllerId().equals(this.controllerId)) {
&& permanent.isControlledBy(this.controllerId)) {
this.getEffects().get(0).setValue("lifeSource", event.getTargetId());
return true;
}

View file

@ -84,7 +84,7 @@ class AnimarCostReductionEffect extends CostModificationEffectImpl {
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify instanceof SpellAbility) {
if (abilityToModify.getControllerId().equals(source.getControllerId())) {
if (abilityToModify.isControlledBy(source.getControllerId())) {
Spell spell = (Spell) game.getStack().getStackObject(abilityToModify.getId());
if (spell != null) {
return spell.isCreature();

View file

@ -84,7 +84,7 @@ class AnimationModuleTriggeredAbility extends TriggeredAbilityImpl {
if (permanent == null) {
permanent = game.getPermanentEntering(event.getTargetId());
}
return permanent != null && permanent.getControllerId().equals(this.getControllerId());
return permanent != null && permanent.isControlledBy(this.getControllerId());
}
return false;
}

View file

@ -110,7 +110,7 @@ class ApexOfPowerCastFromExileEffect extends AsThoughEffectImpl {
@Override
public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
return source.getControllerId().equals(affectedControllerId)
return source.isControlledBy(affectedControllerId)
&& objectId.equals(getTargetPointer().getFirst(game, source));
}
}

View file

@ -89,7 +89,7 @@ class ConspyEffect extends ContinuousEffectImpl {
}
// in Library (e.g. for Mystical Teachings)
for (Card card : controller.getLibrary().getCards(game)) {
if (card.getOwnerId().equals(controller.getId()) && card.isCreature() && !card.hasSubtype(subType, game)) {
if (card.isOwnedBy(controller.getId()) && card.isCreature() && !card.hasSubtype(subType, game)) {
game.getState().getCreateCardAttribute(card, game).getSubtype().add(subType);
}
}
@ -106,7 +106,7 @@ class ConspyEffect extends ContinuousEffectImpl {
for (Iterator<StackObject> iterator = game.getStack().iterator(); iterator.hasNext();) {
StackObject stackObject = iterator.next();
if (stackObject instanceof Spell
&& stackObject.getControllerId().equals(source.getControllerId())
&& stackObject.isControlledBy(source.getControllerId())
&& stackObject.isCreature()
&& !stackObject.hasSubtype(subType, game)) {
Card card = ((Spell) stackObject).getCard();

View file

@ -66,7 +66,7 @@ class ArchonOfRedemptionTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Permanent permanent = game.getPermanent(event.getTargetId());
if (permanent.getControllerId().equals(getControllerId())
if (permanent.isControlledBy(getControllerId())
&& permanent.isCreature()
&& (permanent.getId().equals(getSourceId())
|| (permanent.getAbilities().contains(FlyingAbility.getInstance())))) {

View file

@ -68,7 +68,7 @@ class AsLuckWouldHaveItTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
if (this.getControllerId().equals(event.getPlayerId()) && event.getFlag()) {
if (this.isControlledBy(event.getPlayerId()) && event.getFlag()) {
for (Effect effect : this.getEffects()) {
effect.setValue("rolled", event.getAmount());
}

View file

@ -78,7 +78,7 @@ class AsmiraHolyAvengerWatcher extends Watcher {
public void watch(GameEvent event, Game game) {
if (event.getType() == GameEvent.EventType.ZONE_CHANGE && ((ZoneChangeEvent) event).isDiesEvent()) {
MageObject card = game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD);
if (card != null && ((Card) card).getOwnerId().equals(this.controllerId) && card.isCreature()) {
if (card != null && ((Card) card).isOwnedBy(this.controllerId) && card.isCreature()) {
creaturesCount++;
}
}

View file

@ -80,7 +80,7 @@ class BattlefieldThaumaturgeSpellsCostReductionEffect extends CostModificationEf
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if ((abilityToModify instanceof SpellAbility)
&& abilityToModify.getControllerId().equals(source.getControllerId())) {
&& abilityToModify.isControlledBy(source.getControllerId())) {
Spell spell = (Spell) game.getStack().getStackObject(abilityToModify.getId());
return spell != null && StaticFilters.FILTER_SPELL_INSTANT_OR_SORCERY.match(spell, game);
}

View file

@ -74,7 +74,7 @@ class BidentOfThassaTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
if (((DamagedPlayerEvent) event).isCombatDamage()) {
Permanent creature = game.getPermanent(event.getSourceId());
if (creature != null && creature.getControllerId().equals(controllerId)) {
if (creature != null && creature.isControlledBy(controllerId)) {
return true;
}
}

View file

@ -82,7 +82,7 @@ class MoveCounterFromTargetToTargetEffect extends OneShotEffect {
if (source.getTargets().size() > 1) {
toPermanent = game.getPermanent(source.getTargets().get(1).getFirstTarget());
}
if (fromPermanent == null || toPermanent == null || !fromPermanent.getControllerId().equals(toPermanent.getControllerId())) {
if (fromPermanent == null || toPermanent == null || !fromPermanent.isControlledBy(toPermanent.getControllerId())) {
return false;
}
int amountCounters = fromPermanent.getCounters(game).getCount(CounterType.P1P1);
@ -114,7 +114,7 @@ class SameControllerPredicate implements ObjectSourcePlayerPredicate<ObjectSourc
source.getStackAbility().getTargets().get(0).getTargets().get(0));
Permanent inputPermanent = game.getPermanent(input.getObject().getId());
if (firstTarget != null && inputPermanent != null) {
return firstTarget.getControllerId().equals(inputPermanent.getControllerId());
return firstTarget.isControlledBy(inputPermanent.getControllerId());
}
}
return true;

View file

@ -89,7 +89,7 @@ class BlazeCommandoTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
if (getControllerId().equals(game.getControllerId(event.getSourceId()))) {
if (isControlledBy(game.getControllerId(event.getSourceId()))) {
MageObject damageSource = game.getObject(event.getSourceId());
if (damageSource != null) {
if (damageSource.isInstant()|| damageSource.isSorcery()) {

View file

@ -118,7 +118,7 @@ class BlindingBeamEffect2 extends ContinuousRuleModifyingEffectImpl {
public boolean isInactive(Ability source, Game game) {
// the PRE step part is directly after the UNTAP events for permanents
if (game.getPhase().getStep().getType() == PhaseStep.UNTAP && game.getStep().getStepPart() == Step.StepPart.PRE) {
if (game.getActivePlayerId().equals(targetPlayerId) || game.getPlayer(source.getControllerId()).hasReachedNextTurnAfterLeaving()) {
if (game.isActivePlayer(targetPlayerId) || game.getPlayer(source.getControllerId()).hasReachedNextTurnAfterLeaving()) {
return true;
}
}
@ -135,7 +135,7 @@ class BlindingBeamEffect2 extends ContinuousRuleModifyingEffectImpl {
// prevent untap event of creatures of target player
if (game.getTurn().getStepType() == PhaseStep.UNTAP) {
Permanent permanent = game.getPermanent(event.getTargetId());
if (permanent != null && permanent.getControllerId().equals(targetPlayerId) && filter.match(permanent, game)) {
if (permanent != null && permanent.isControlledBy(targetPlayerId) && filter.match(permanent, game)) {
return true;
}
}

View file

@ -66,7 +66,7 @@ class BloodsporeThrinaxEntersBattlefieldEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget();
return creature != null && creature.getControllerId().equals(source.getControllerId())
return creature != null && creature.isControlledBy(source.getControllerId())
&& creature.isCreature()
&& !event.getTargetId().equals(source.getSourceId());
}

View file

@ -71,7 +71,7 @@ class BloodstoneGoblinTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null && spell.getControllerId().equals(controllerId)) {
if (spell != null && spell.isControlledBy(controllerId)) {
for (Ability ability : spell.getAbilities()) {
if (ability instanceof KickerAbility && ((KickerAbility) ability).getKickedCounter(game, spell.getSpellAbility()) > 0) {
return true;

View file

@ -81,7 +81,7 @@ class BosskTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Permanent permanent = game.getPermanent(event.getTargetId());
if (permanent != null && permanent.isLand() && permanent.getControllerId().equals(this.getControllerId())) {
if (permanent != null && permanent.isLand() && permanent.isControlledBy(this.getControllerId())) {
return true;
}
return false;

View file

@ -111,7 +111,7 @@ class BottledCloisterReturnEffect extends OneShotEffect {
ExileZone exileZone = game.getExile().getExileZone(exileId);
if (exileZone != null) {
for (Card card: exileZone.getCards(game)) {
if (card.getOwnerId().equals(controller.getId())) {
if (card.isOwnedBy(controller.getId())) {
numberOfCards++;
card.moveToZone(Zone.HAND, source.getSourceId(), game, true);
card.setFaceDown(false, game);

View file

@ -141,6 +141,6 @@ class DeterminedEffect extends ContinuousRuleModifyingEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
Spell spell = game.getStack().getSpell(event.getTargetId());
return spell != null && !spell.getSourceId().equals(source.getSourceId()) && spell.getControllerId().equals(source.getControllerId());
return spell != null && !spell.getSourceId().equals(source.getSourceId()) && spell.isControlledBy(source.getControllerId());
}
}

View file

@ -60,7 +60,7 @@ class BowerPassageEffect extends RestrictionEffect {
@Override
public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) {
if (attacker != null && attacker.getControllerId().equals(source.getControllerId()) && blocker.getAbilities().contains(FlyingAbility.getInstance())) {
if (attacker != null && attacker.isControlledBy(source.getControllerId()) && blocker.getAbilities().contains(FlyingAbility.getInstance())) {
return false;
}
return true;

View file

@ -79,7 +79,7 @@ class BramblewoodParagonReplacementEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget();
return creature != null && creature.getControllerId().equals(source.getControllerId())
return creature != null && creature.isControlledBy(source.getControllerId())
&& creature.isCreature()
&& creature.hasSubtype(SubType.WARRIOR, game)
&& !event.getTargetId().equals(source.getSourceId());

View file

@ -62,7 +62,7 @@ class BredForTheHuntTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
if (((DamagedEvent) event).isCombatDamage()) {
Permanent creature = game.getPermanent(event.getSourceId());
if (creature != null && creature.getControllerId().equals(getControllerId()) && creature.getCounters(game).getCount(CounterType.P1P1) > 0) {
if (creature != null && creature.isControlledBy(getControllerId()) && creature.getCounters(game).getCount(CounterType.P1P1) > 0) {
return true;
}
}

View file

@ -88,7 +88,7 @@ class BroodingSaurianControlEffect extends ContinuousEffectImpl {
for (Iterator<MageObjectReference> it = affectedObjectList.iterator(); it.hasNext();) {
Permanent creature = it.next().getPermanent(game);
if (creature != null) {
if (!creature.getControllerId().equals(creature.getOwnerId())) {
if (!creature.isControlledBy(creature.getOwnerId())) {
creature.changeControllerId(creature.getOwnerId(), game);
}
} else {

View file

@ -113,7 +113,7 @@ class BrutalHordechiefTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Permanent source = game.getPermanent(event.getSourceId());
if (source != null && source.getControllerId().equals(controllerId)) {
if (source != null && source.isControlledBy(controllerId)) {
UUID defendingPlayerId = game.getCombat().getDefendingPlayerId(event.getSourceId(), game);
this.getEffects().get(0).setTargetPointer(new FixedTarget(defendingPlayerId));
return true;

View file

@ -82,7 +82,7 @@ class CallerOfTheClawWatcher extends Watcher {
public void watch(GameEvent event, Game game) {
if (event.getType() == GameEvent.EventType.ZONE_CHANGE && ((ZoneChangeEvent) event).isDiesEvent()) {
Permanent card = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD);
if (card != null && card.getOwnerId().equals(this.controllerId) && card.isCreature() && !(card instanceof PermanentToken)) {
if (card != null && card.isOwnedBy(this.controllerId) && card.isCreature() && !(card instanceof PermanentToken)) {
creaturesCount++;
}
}

View file

@ -61,7 +61,7 @@ class CampaignOfVengeanceTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Permanent source = game.getPermanent(event.getSourceId());
if (source != null && source.getControllerId().equals(controllerId)) {
if (source != null && source.isControlledBy(controllerId)) {
UUID defendingPlayerId = game.getCombat().getDefendingPlayerId(event.getSourceId(), game);
this.getEffects().get(0).setTargetPointer(new FixedTarget(defendingPlayerId));
return true;

View file

@ -77,7 +77,7 @@ class GainReboundEffect extends ContinuousEffectImpl {
}
for (Iterator<StackObject> iterator = game.getStack().iterator(); iterator.hasNext();) {
StackObject stackObject = iterator.next();
if (stackObject instanceof Spell && stackObject.getControllerId().equals(source.getControllerId())) {
if (stackObject instanceof Spell && stackObject.isControlledBy(source.getControllerId())) {
Spell spell = (Spell) stackObject;
Card card = spell.getCard();
if (card != null) {

View file

@ -89,7 +89,7 @@ class CatalystStoneCostReductionEffect extends CostModificationEffectImpl {
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify instanceof SpellAbility) {
if (abilityToModify.getControllerId().equals(source.getControllerId())) {
if (abilityToModify.isControlledBy(source.getControllerId())) {
return SpellAbilityCastMode.FLASHBACK.equals(((SpellAbility) abilityToModify).getSpellAbilityCastMode());
}
}

View file

@ -122,13 +122,13 @@ class CelestialDawnToWhiteEffect extends ContinuousEffectImpl {
}
// Stack
for (MageObject object : game.getStack()) {
if (object instanceof Spell && ((Spell) object).getControllerId().equals(controller.getId())) {
if (object instanceof Spell && ((Spell) object).isControlledBy(controller.getId())) {
setColor(object.getColor(game), game);
}
}
// Exile
for (Card card : game.getExile().getAllCards(game)) {
if (card.getOwnerId().equals(controller.getId())) {
if (card.isOwnedBy(controller.getId())) {
setColor(card.getColor(game), game);
}
}

View file

@ -79,7 +79,7 @@ class ChampionOfLambholtEffect extends RestrictionEffect {
@Override
public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) {
Permanent sourcePermanent = game.getPermanent(source.getSourceId());
if (sourcePermanent != null && attacker.getControllerId().equals(sourcePermanent.getControllerId())) {
if (sourcePermanent != null && attacker.isControlledBy(sourcePermanent.getControllerId())) {
return blocker.getPower().getValue() >= sourcePermanent.getPower().getValue();
}
return true;

View file

@ -68,7 +68,7 @@ class ChanceEncounterTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
return this.getControllerId().equals(event.getPlayerId()) && event.getFlag();
return this.isControlledBy(event.getPlayerId()) && event.getFlag();
}
@Override

View file

@ -115,7 +115,7 @@ class ChandraPyromasterTarget extends TargetPermanent {
}
UUID firstTarget = player.getId();
Permanent permanent = game.getPermanent(id);
if (firstTarget != null && permanent != null && permanent.getControllerId().equals(firstTarget)) {
if (firstTarget != null && permanent != null && permanent.isControlledBy(firstTarget)) {
return super.canTarget(id, source, game);
}
return false;
@ -142,7 +142,7 @@ class ChandraPyromasterTarget extends TargetPermanent {
if (player != null) {
for (UUID targetId : availablePossibleTargets) {
Permanent permanent = game.getPermanent(targetId);
if (permanent != null && permanent.getControllerId().equals(player.getId())) {
if (permanent != null && permanent.isControlledBy(player.getId())) {
possibleTargets.add(targetId);
}
}

View file

@ -82,14 +82,14 @@ class ChannelHarmEffect extends PreventionEffectImpl {
public boolean applies(GameEvent event, Ability source, Game game) {
if (super.applies(event, source, game)) {
Permanent targetPermanent = game.getPermanent(event.getTargetId());
if ((targetPermanent != null && targetPermanent.getControllerId().equals(source.getControllerId()))
if ((targetPermanent != null && targetPermanent.isControlledBy(source.getControllerId()))
|| event.getTargetId().equals(source.getControllerId())) {
MageObject damageSource = game.getObject(event.getSourceId());
if (damageSource instanceof Controllable) {
return !((Controllable) damageSource).getControllerId().equals(source.getControllerId());
return !((Controllable) damageSource).isControlledBy(source.getControllerId());
}
else if (damageSource instanceof Card) {
return !((Card) damageSource).getOwnerId().equals(source.getControllerId());
return !((Card) damageSource).isOwnedBy(source.getControllerId());
}
}
}

View file

@ -89,7 +89,7 @@ class ChickenALaKingTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
if (this.getControllerId().equals(event.getPlayerId()) && event.getFlag()) {
if (this.isControlledBy(event.getPlayerId()) && event.getFlag()) {
// event.getData holds the num of sides of the die to roll
String data = event.getData();
if (data != null) {

View file

@ -57,7 +57,7 @@ class ChitteringDoomTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
if (this.getControllerId().equals(event.getPlayerId()) && event.getFlag()) {
if (this.isControlledBy(event.getPlayerId()) && event.getFlag()) {
if (event.getAmount() >= 4) {
return true;
}

View file

@ -77,7 +77,7 @@ class CircleOfFlameTriggeredAbility extends TriggeredAbilityImpl {
Permanent permanent = game.getPermanent(event.getTargetId());
youOrYourPlaneswalker = permanent != null
&& permanent.isPlaneswalker()
&& permanent.getControllerId().equals(this.getControllerId());
&& permanent.isControlledBy(this.getControllerId());
}
if (youOrYourPlaneswalker) {
for (Effect effect : this.getEffects()) {

View file

@ -62,7 +62,7 @@ class CityOfTraitorsTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
Permanent land = game.getPermanent(event.getTargetId());
return land.isLand()
&& land.getControllerId().equals(this.controllerId)
&& land.isControlledBy(this.controllerId)
&& !Objects.equals(event.getTargetId(), this.getSourceId());
}

View file

@ -74,7 +74,7 @@ class CleansingMeditationEffect extends OneShotEffect {
for (Permanent permanent : game.getBattlefield().getActivePermanents(StaticFilters.FILTER_ENCHANTMENT_PERMANENT, source.getControllerId(), source.getSourceId(), game)) {
if (permanent != null && permanent.destroy(source.getSourceId(), game, false)) {
if (threshold && controller != null && permanent.getOwnerId().equals(controller.getId())) {
if (threshold && controller != null && permanent.isOwnedBy(controller.getId())) {
cardsToBattlefield.add(permanent);
}
}

View file

@ -63,7 +63,7 @@ class CloudCoverAbility extends TriggeredAbilityImpl {
Permanent permanent = game.getPermanent(event.getTargetId());
Player controller = game.getPlayer(this.getControllerId());
if (permanent != null
&& permanent.getControllerId().equals(getControllerId())
&& permanent.isControlledBy(getControllerId())
&& !permanent.getId().equals(this.getSourceId())
&& controller != null
&& controller.hasOpponent(event.getPlayerId(), game)) {

View file

@ -119,7 +119,7 @@ class CloudKeyCostModificationEffect extends CostModificationEffectImpl {
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify instanceof SpellAbility && abilityToModify.getControllerId().equals(source.getControllerId())) {
if (abilityToModify instanceof SpellAbility && abilityToModify.isControlledBy(source.getControllerId())) {
Spell spell = game.getStack().getSpell(abilityToModify.getSourceId());
if (spell != null && spell.getCardType().toString().contains((String) game.getState().getValue(source.getSourceId().toString() + "_CloudKey"))) {
return true;

View file

@ -63,7 +63,7 @@ class CoastalPiracyTriggeredAbility extends TriggeredAbilityImpl {
if (((DamagedPlayerEvent) event).isCombatDamage()
&& game.getOpponents(this.controllerId).contains(((DamagedPlayerEvent) event).getPlayerId())) {
Permanent creature = game.getPermanent(event.getSourceId());
if (creature != null && creature.getControllerId().equals(controllerId)) {
if (creature != null && creature.isControlledBy(controllerId)) {
return true;
}
}

View file

@ -71,7 +71,7 @@ class ComeuppanceEffect extends PreventionEffectImpl {
MageObject damageDealingObject = game.getObject(event.getSourceId());
UUID objectControllerId = null;
if (damageDealingObject instanceof Permanent) {
if (((Permanent) damageDealingObject).isCreature()) {
if (damageDealingObject.isCreature()) {
((Permanent) damageDealingObject).damage(preventionData.getPreventedDamage(), source.getSourceId(), game, false, true);
} else {
objectControllerId = ((Permanent) damageDealingObject).getControllerId();
@ -102,7 +102,7 @@ class ComeuppanceEffect extends PreventionEffectImpl {
} else {
Permanent targetPermanent = game.getPermanent(event.getTargetId());
if (targetPermanent != null &&
targetPermanent.getControllerId().equals(source.getControllerId()) &&
targetPermanent.isControlledBy(source.getControllerId()) &&
targetPermanent.isPlaneswalker()) {
catched = true;
}
@ -110,11 +110,11 @@ class ComeuppanceEffect extends PreventionEffectImpl {
if (catched) {
MageObject damageSource = game.getObject(event.getSourceId());
if (damageSource instanceof StackObject) {
return !((StackObject) damageSource).getControllerId().equals(source.getControllerId());
return !((StackObject) damageSource).isControlledBy(source.getControllerId());
} else if (damageSource instanceof Permanent) {
return !((Permanent) damageSource).getControllerId().equals(source.getControllerId());
return !((Permanent) damageSource).isControlledBy(source.getControllerId());
} else if (damageSource instanceof Card) {
return !((Card) damageSource).getOwnerId().equals(source.getControllerId());
return !((Card) damageSource).isOwnedBy(source.getControllerId());
}
Logger.getLogger(Comeuppance.class).error("Comeuppance: could not define source objects controller - " + (damageSource != null ? damageSource.getName(): "null"));
}

View file

@ -119,7 +119,7 @@ class CommuneWithLavaMayPlayEffect extends AsThoughEffectImpl {
@Override
public boolean applies(UUID sourceId, Ability source, UUID affectedControllerId, Game game) {
return source.getControllerId().equals(affectedControllerId)
return source.isControlledBy(affectedControllerId)
&& getTargetPointer().getTargets(game, source).contains(sourceId);
}

View file

@ -89,7 +89,7 @@ class ConcussiveBoltRestrictionEffect extends RestrictionEffect {
if (player == null) {
return false;
}
if (metalcraft && permanent.getControllerId().equals(player.getId())) {
if (metalcraft && permanent.isControlledBy(player.getId())) {
return true;
}
return false;

View file

@ -85,13 +85,13 @@ class ConspiracyEffect extends ContinuousEffectImpl {
}
// in Exile
for (Card card : game.getState().getExile().getAllCards(game)) {
if (card.getOwnerId().equals(controller.getId()) && card.isCreature()) {
if (card.isOwnedBy(controller.getId()) && card.isCreature()) {
setCreatureSubtype(card, subType, game);
}
}
// in Library (e.g. for Mystical Teachings)
for (Card card : controller.getLibrary().getCards(game)) {
if (card.getOwnerId().equals(controller.getId()) && card.isCreature()) {
if (card.isOwnedBy(controller.getId()) && card.isCreature()) {
setCreatureSubtype(card, subType, game);
}
}
@ -108,7 +108,7 @@ class ConspiracyEffect extends ContinuousEffectImpl {
for (Iterator<StackObject> iterator = game.getStack().iterator(); iterator.hasNext();) {
StackObject stackObject = iterator.next();
if (stackObject instanceof Spell
&& stackObject.getControllerId().equals(source.getControllerId())
&& stackObject.isControlledBy(source.getControllerId())
&& stackObject.isCreature()) {
Card card = ((Spell) stackObject).getCard();
setCreatureSubtype(card, subType, game);

View file

@ -83,7 +83,7 @@ class CorpsejackMenaceReplacementEffect extends ReplacementEffectImpl {
if (permanent == null) {
permanent = game.getPermanentEntering(event.getTargetId());
}
if (permanent != null && permanent.getControllerId().equals(source.getControllerId())
if (permanent != null && permanent.isControlledBy(source.getControllerId())
&& permanent.isCreature()) {
return true;
}

View file

@ -120,7 +120,7 @@ class CouncilOfTheAbsoluteCostReductionEffect extends CostModificationEffectImpl
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if ((abilityToModify instanceof SpellAbility)
&& abilityToModify.getControllerId().equals(source.getControllerId())) {
&& abilityToModify.isControlledBy(source.getControllerId())) {
Card card = game.getCard(abilityToModify.getSourceId());
return card.getName().equals(game.getState().getValue(source.getSourceId().toString() + ChooseACardNameEffect.INFO_KEY));
}

View file

@ -84,7 +84,7 @@ class CounterfluxEffect extends OneShotEffect {
List<Spell> spellsToCounter = new LinkedList<>();
for (StackObject stackObject : game.getStack()) {
if (stackObject instanceof Spell && !stackObject.getControllerId().equals(source.getControllerId())) {
if (stackObject instanceof Spell && !stackObject.isControlledBy(source.getControllerId())) {
spellsToCounter.add((Spell) stackObject);
}
}

View file

@ -72,7 +72,7 @@ class CrawlingSensationTriggeredAbility extends TriggeredAbilityImpl {
Set<CardType> cardType = card.getCardType();
if (cardOwnerId != null
&& card.getOwnerId().equals(getControllerId())
&& card.isOwnedBy(getControllerId())
&& cardType != null
&& card.isLand()) {
game.getState().setValue("usedOnTurn" + getControllerId() + getOriginalId(), game.getTurnNum());

View file

@ -90,7 +90,7 @@ class CurseOfEchoesCopyTriggeredAbility extends TriggeredAbilityImpl {
Permanent enchantment = game.getPermanent(sourceId);
if (enchantment != null && enchantment.getAttachedTo() != null) {
Player player = game.getPlayer(enchantment.getAttachedTo());
if (player != null && spell.getControllerId().equals(player.getId())) {
if (player != null && spell.isControlledBy(player.getId())) {
this.getEffects().get(0).setTargetPointer(new FixedTarget(spell.getId()));
return true;
}

View file

@ -67,7 +67,7 @@ class CurseOfTheNightlyHuntEffect extends RequirementEffect {
public boolean applies(Permanent permanent, Ability source, Game game) {
Permanent enchantment = game.getPermanent(source.getSourceId());
if (enchantment != null && enchantment.getAttachedTo() != null) {
if (permanent.getControllerId().equals(enchantment.getAttachedTo())) {
if (permanent.isControlledBy(enchantment.getAttachedTo())) {
return true;
}
}

View file

@ -70,7 +70,7 @@ class BecomesMonarchSourceControllerTriggeredAbility extends TriggeredAbilityImp
@Override
public boolean checkTrigger(GameEvent event, Game game) {
return getControllerId().equals(event.getPlayerId());
return isControlledBy(event.getPlayerId());
}
@Override

View file

@ -161,7 +161,7 @@ class DarigaazReincarnatedReturnEffect extends OneShotEffect {
return false;
}
MageObject sourceObject = source.getSourceObjectIfItStillExists(game);
if (sourceObject != null && sourceObject instanceof Card) {
if (sourceObject instanceof Card) {
Card card = (Card) sourceObject;
new RemoveCounterSourceEffect(CounterType.EGG.createInstance()).apply(game, source);
if (card.getCounters(game).getCount(CounterType.EGG) == 0) {

View file

@ -121,7 +121,7 @@ class DarkDwellerOracleCastFromExileEffect extends AsThoughEffectImpl {
@Override
public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
return source.getControllerId().equals(affectedControllerId)
return source.isControlledBy(affectedControllerId)
&& objectId.equals(getTargetPointer().getFirst(game, source));
}
}

View file

@ -65,7 +65,7 @@ class DauntingDefenderEffect extends PreventionEffectImpl {
public boolean applies(GameEvent event, Ability source, Game game) {
if (event.getType() == GameEvent.EventType.DAMAGE_CREATURE) {
Permanent permanent = game.getPermanent(event.getTargetId());
if (permanent != null && permanent.getControllerId().equals(source.getControllerId()) && permanent.hasSubtype(SubType.CLERIC, game)) {
if (permanent != null && permanent.isControlledBy(source.getControllerId()) && permanent.hasSubtype(SubType.CLERIC, game)) {
return super.applies(event, source, game);
}
}

View file

@ -144,7 +144,7 @@ class DaxosOfMeletisCastFromExileEffect extends AsThoughEffectImpl {
@Override
public boolean applies(UUID sourceId, Ability source, UUID affectedControllerId, Game game) {
if (sourceId.equals(cardId) && source.getControllerId().equals(affectedControllerId)) {
if (sourceId.equals(cardId) && source.isControlledBy(affectedControllerId)) {
ExileZone exileZone = game.getState().getExile().getExileZone(exileId);
return exileZone != null && exileZone.contains(cardId);
}
@ -175,7 +175,7 @@ class DaxosOfMeletisSpendAnyManaEffect extends AsThoughEffectImpl implements AsT
@Override
public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
return source.getControllerId().equals(affectedControllerId)
return source.isControlledBy(affectedControllerId)
&& Objects.equals(objectId, ((FixedTarget) getTargetPointer()).getTarget())
&& ((FixedTarget) getTargetPointer()).getZoneChangeCounter() + 1 == game.getState().getZoneChangeCounter(objectId)
&& (((FixedTarget) getTargetPointer()).getZoneChangeCounter() + 1 == game.getState().getZoneChangeCounter(objectId))

View file

@ -64,7 +64,7 @@ class DearlyDepartedEntersBattlefieldEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
Permanent permanent = ((EntersTheBattlefieldEvent) event).getTarget();
if (permanent != null && permanent.getControllerId().equals(source.getControllerId()) && permanent.hasSubtype(SubType.HUMAN, game)) {
if (permanent != null && permanent.isControlledBy(source.getControllerId()) && permanent.hasSubtype(SubType.HUMAN, game)) {
return true;
}
return false;

View file

@ -66,7 +66,7 @@ class DeathsPresenceTriggeredAbility extends TriggeredAbilityImpl {
if (((ZoneChangeEvent) event).getToZone() == Zone.GRAVEYARD
&& ((ZoneChangeEvent) event).getFromZone() == Zone.BATTLEFIELD) {
Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD);
if (permanent != null && permanent.getControllerId().equals(this.getControllerId()) && permanent.isCreature()) {
if (permanent != null && permanent.isControlledBy(this.getControllerId()) && permanent.isCreature()) {
this.getTargets().clear();
this.addTarget(new TargetControlledCreaturePermanent());
this.getEffects().clear();

View file

@ -80,7 +80,7 @@ class DeepfathomSkulkerTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
if (((DamagedPlayerEvent) event).isCombatDamage()) {
Permanent creature = game.getPermanent(event.getSourceId());
if (creature != null && creature.getControllerId().equals(controllerId)) {
if (creature != null && creature.isControlledBy(controllerId)) {
return true;
}
}

View file

@ -57,7 +57,7 @@ class DefenseGridCostModificationEffect extends CostModificationEffectImpl {
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify instanceof SpellAbility) {
if (!abilityToModify.getControllerId().equals(game.getActivePlayerId())) {
if (!abilityToModify.isControlledBy(game.getActivePlayerId())) {
return true;
}
}

View file

@ -80,7 +80,7 @@ class DefiantGreatmawTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
boolean weAreDoingIt = getControllerId().equals(game.getControllerId(event.getSourceId()));
boolean weAreDoingIt = isControlledBy(game.getControllerId(event.getSourceId()));
boolean isM1M1Counters = event.getData().equals(CounterType.M1M1.getName());
if (weAreDoingIt && isM1M1Counters && event.getTargetId().equals(this.getSourceId())) {
return true;

View file

@ -87,7 +87,7 @@ class DereviEmpyrialTacticianTriggeredAbility extends TriggeredAbilityImpl {
if (event.getType() == GameEvent.EventType.DAMAGED_PLAYER) {
if (((DamagedPlayerEvent) event).isCombatDamage()) {
Permanent creature = game.getPermanent(event.getSourceId());
if (creature != null && creature.getControllerId().equals(controllerId)) {
if (creature != null && creature.isControlledBy(controllerId)) {
return true;
}
}

View file

@ -65,7 +65,7 @@ class DesecratedTombTriggeredAbility extends TriggeredAbilityImpl {
Set<CardType> cardType = card.getCardType();
if (cardOwnerId != null
&& card.getOwnerId().equals(getControllerId())
&& card.isOwnedBy(getControllerId())
&& cardType != null
&& card.isCreature()) {
return true;

View file

@ -147,7 +147,7 @@ class DireFleetDaredevilPlayEffect extends AsThoughEffectImpl {
UUID targetId = getTargetPointer().getFirst(game, source);
if (targetId != null) {
return targetId.equals(objectId)
&& source.getControllerId().equals(affectedControllerId);
&& source.isControlledBy(affectedControllerId);
} else {
// the target card has changed zone meanwhile, so the effect is no longer needed
discard();
@ -179,7 +179,7 @@ class DireFleetDaredevilSpendAnyManaEffect extends AsThoughEffectImpl implements
@Override
public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
return source.getControllerId().equals(affectedControllerId)
return source.isControlledBy(affectedControllerId)
&& Objects.equals(objectId, ((FixedTarget) getTargetPointer()).getTarget())
&& ((FixedTarget) getTargetPointer()).getZoneChangeCounter() + 1 == game.getState().getZoneChangeCounter(objectId)
&& game.getState().getZone(objectId) == Zone.STACK;
@ -210,7 +210,7 @@ class DireFleetDaredevilReplacementEffect extends ReplacementEffectImpl {
@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
UUID eventObject = ((ZoneChangeEvent) event).getTargetId();
UUID eventObject = event.getTargetId();
StackObject stackObject = game.getStack().getStackObject(eventObject);
if (stackObject != null) {
if (stackObject instanceof Spell) {

View file

@ -88,7 +88,7 @@ class DiregrafCaptainTriggeredAbility extends TriggeredAbilityImpl {
ZoneChangeEvent zEvent = (ZoneChangeEvent)event;
if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) {
Permanent p = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD);
if (p != null && p.getControllerId().equals(this.controllerId) && filter.match(p, game)) {
if (p != null && p.isControlledBy(this.controllerId) && filter.match(p, game)) {
return true;
}
}

View file

@ -99,7 +99,7 @@ class DisplayOfDominanceEffect extends ContinuousRuleModifyingEffectImpl {
mageObject instanceof Spell &&
(mageObject.getColor(game).isBlack() || mageObject.getColor(game).isBlue())) {
Permanent permanent = game.getPermanent(event.getTargetId());
return permanent != null && permanent.getControllerId().equals(ability.getControllerId());
return permanent != null && permanent.isControlledBy(ability.getControllerId());
}
return false;
}

View file

@ -118,12 +118,12 @@ class DivineDeflectionPreventDamageTargetEffect extends PreventionEffectImpl {
// check permanent first
Permanent permanent = game.getPermanent(event.getTargetId());
if (permanent != null) {
if (permanent.getControllerId().equals(source.getControllerId())) {
if (permanent.isControlledBy(source.getControllerId())) {
return true;
}
}
// check player
if (source.getControllerId().equals(event.getTargetId())) {
if (source.isControlledBy(event.getTargetId())) {
return true;
}
}

View file

@ -87,7 +87,7 @@ class DjeruWithEyesOpenPreventEffect extends PreventionEffectImpl {
public boolean applies(GameEvent event, Ability source, Game game) {
if (event.getType() == GameEvent.EventType.DAMAGE_PLANESWALKER) {
Permanent permanent = game.getPermanent(event.getTargetId());
if (permanent != null && permanent.getControllerId().equals(source.getControllerId())) {
if (permanent != null && permanent.isControlledBy(source.getControllerId())) {
return super.applies(event, source, game);
}
}

View file

@ -81,8 +81,8 @@ class DjinnIlluminatusGainReplicateEffect extends ContinuousEffectImpl {
// only spells cast, so no copies of spells
if ((stackObject instanceof Spell)
&& !stackObject.isCopy()
&& stackObject.getControllerId().equals(source.getControllerId())
&& djinn.getControllerId().equals(source.getControllerId()) // verify that the controller of the djinn cast that spell
&& stackObject.isControlledBy(source.getControllerId())
&& djinn.isControlledBy(source.getControllerId()) // verify that the controller of the djinn cast that spell
&& !stackObject.getManaCost().isEmpty()) { //handle cases like Ancestral Vision
Spell spell = (Spell) stackObject;
if (filter.match(stackObject, game)) {

View file

@ -75,7 +75,7 @@ class AddCounterAbility extends TriggeredAbilityImpl {
if (subType != null) {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null
&& spell.getControllerId().equals(getControllerId())
&& spell.isControlledBy(getControllerId())
&& spell.hasSubtype(subType, game)) {
return true;
}

View file

@ -79,7 +79,7 @@ class DoublingSeasonCounterEffect extends ReplacementEffectImpl {
&& permanent.isLand()); // a played land is not an effect
}
return permanent != null
&& permanent.getControllerId().equals(source.getControllerId())
&& permanent.isControlledBy(source.getControllerId())
&& !landPlayed; // example: gemstone mine being played as a land drop
}

View file

@ -63,7 +63,7 @@ class DrafnasRestorationTarget extends TargetCardInGraveyard {
public Set<UUID> possibleTargets(UUID sourceId, UUID sourceControllerId, Game game) {
Set<UUID> possibleTargets = new HashSet<>();
MageObject object = game.getObject(sourceId);
if (object != null && object instanceof StackObject) {
if (object instanceof StackObject) {
Player targetPlayer = game.getPlayer(((StackObject) object).getStackAbility().getFirstTarget());
if (targetPlayer != null) {
for (Card card : targetPlayer.getGraveyard().getCards(filter, sourceId, sourceControllerId, game)) {

View file

@ -91,7 +91,7 @@ class DragonlordsPrerogativeCondition implements Condition {
if (spell != null && spell.getSpellAbility() != null) {
for(Cost cost: spell.getSpellAbility().getCosts()) {
if (cost instanceof RevealTargetFromHandCost) {
applies = !((RevealTargetFromHandCost)cost).getTargets().isEmpty();
applies = !cost.getTargets().isEmpty();
break;
}
}

View file

@ -153,7 +153,7 @@ class DreamPillagerCastFromExileEffect extends AsThoughEffectImpl {
@Override
public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
return source.getControllerId().equals(affectedControllerId)
return source.isControlledBy(affectedControllerId)
&& objectId.equals(getTargetPointer().getFirst(game, source));
}
}

View file

@ -89,7 +89,7 @@ class DungeonGeistsEffect extends ContinuousRuleModifyingEffectImpl {
// the battlefield triggered ability the source dies (or will be exiled), then the ZONE_CHANGE or LOST_CONTROL
// event will happen before this effect is applied ever)
MageObject sourceObject = source.getSourceObjectIfItStillExists(game);
if (!(sourceObject instanceof Permanent) || !((Permanent) sourceObject).getControllerId().equals(source.getControllerId())) {
if (!(sourceObject instanceof Permanent) || !((Permanent) sourceObject).isControlledBy(source.getControllerId())) {
discard();
return false;
}
@ -109,7 +109,7 @@ class DungeonGeistsEffect extends ContinuousRuleModifyingEffectImpl {
if (game.getTurn().getStepType() == PhaseStep.UNTAP && event.getTargetId().equals(targetPointer.getFirst(game, source))) {
Permanent targetCreature = game.getPermanent(targetPointer.getFirst(game, source));
if (targetCreature != null) {
return targetCreature.getControllerId().equals(game.getActivePlayerId());
return targetCreature.isControlledBy(game.getActivePlayerId());
} else {
discard();
return false;

View file

@ -73,7 +73,7 @@ class ElderwoodScionCostReductionEffect extends CostModificationEffectImpl {
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify instanceof SpellAbility) {
if (abilityToModify.getControllerId().equals(source.getControllerId())) {
if (abilityToModify.isControlledBy(source.getControllerId())) {
for (UUID modeId : abilityToModify.getModes().getSelectedModes()) {
Mode mode = abilityToModify.getModes().get(modeId);
for (Target target : mode.getTargets()) {

View file

@ -64,7 +64,7 @@ class ElectropotenceTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
Permanent permanent = game.getPermanent(event.getTargetId());
if (permanent != null && permanent.isCreature()
&& permanent.getControllerId().equals(this.controllerId)) {
&& permanent.isControlledBy(this.controllerId)) {
this.getEffects().get(0).setValue("damageSource", event.getTargetId());
return true;
}

View file

@ -113,7 +113,7 @@ class ElkinBottleCastFromExileEffect extends AsThoughEffectImpl {
@Override
public boolean applies(UUID sourceId, Ability source, UUID affectedControllerId, Game game) {
return source.getControllerId().equals(affectedControllerId)
return source.isControlledBy(affectedControllerId)
&& sourceId.equals(getTargetPointer().getFirst(game, source));
}

View file

@ -74,7 +74,7 @@ class EmbermawHellionEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if(source.getControllerId().equals(game.getControllerId(event.getSourceId()))) {
if(source.isControlledBy(game.getControllerId(event.getSourceId()))) {
MageObject sourceObject;
Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(event.getSourceId());
if(sourcePermanent == null) {

View file

@ -66,7 +66,7 @@ class EncirclingFissurePreventEffect extends PreventionEffectImpl {
Permanent permanent = game.getPermanent(damageEvent.getSourceId());
if (permanent != null
&& permanent.isCreature()
&& permanent.getControllerId().equals(getTargetPointer().getFirst(game, source))) {
&& permanent.isControlledBy(getTargetPointer().getFirst(game, source))) {
return true;
}
}

View file

@ -76,7 +76,7 @@ class EnduringScalelordTriggeredAbility extends TriggeredAbilityImpl {
return (permanent != null
&& !event.getTargetId().equals(this.getSourceId())
&& permanent.isCreature()
&& permanent.getControllerId().equals(this.getControllerId()));
&& permanent.isControlledBy(this.getControllerId()));
}
return false;
}

View file

@ -90,7 +90,7 @@ class EnigmaSphinxTriggeredAbility extends TriggeredAbilityImpl {
&& permanent.getId().equals(this.getSourceId())
&& // 5/1/2009 If you control an Enigma Sphinx that's owned by another player, it's put into that player's
// graveyard from the battlefield, so Enigma Sphinx's middle ability won't trigger.
permanent.getOwnerId().equals(permanent.getControllerId())) {
permanent.isOwnedBy(permanent.getControllerId())) {
return true;
}
return false;

View file

@ -66,7 +66,7 @@ class EssenceOfTheWildEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
Permanent perm = ((EntersTheBattlefieldEvent) event).getTarget();
return perm != null && perm.isCreature() && perm.getControllerId().equals(source.getControllerId());
return perm != null && perm.isCreature() && perm.isControlledBy(source.getControllerId());
}
@Override

View file

@ -71,7 +71,7 @@ class EternalScourgePlayEffect extends AsThoughEffectImpl {
public boolean applies(UUID sourceId, Ability source, UUID affectedControllerId, Game game) {
if (sourceId.equals(source.getSourceId())) {
Card card = game.getCard(source.getSourceId());
if (card != null && card.getOwnerId().equals(affectedControllerId) && game.getState().getZone(source.getSourceId()) == Zone.EXILED) {
if (card != null && card.isOwnedBy(affectedControllerId) && game.getState().getZone(source.getSourceId()) == Zone.EXILED) {
return true;
}
}

View file

@ -103,7 +103,7 @@ class EunuchsIntriguesRestrictionEffect extends RestrictionEffect {
@Override
public boolean applies(Permanent permanent, Ability source, Game game) {
if (permanent.getControllerId().equals(source.getFirstTarget())) {
if (permanent.isControlledBy(source.getFirstTarget())) {
return true;
}
return false;

View file

@ -61,7 +61,7 @@ class FaithsRewardEffect extends OneShotEffect {
if (watcher != null) {
for (UUID id : watcher.cards) {
Card c = game.getCard(id);
if (c != null && c.getOwnerId().equals(source.getControllerId()) && game.getState().getZone(id) == Zone.GRAVEYARD) {
if (c != null && c.isOwnedBy(source.getControllerId()) && game.getState().getZone(id) == Zone.GRAVEYARD) {
c.moveToZone(Zone.BATTLEFIELD, source.getSourceId(), game, false);
}
}

View file

@ -99,7 +99,7 @@ class FalkenrathGorgerEffect extends ContinuousEffectImpl {
// Exile
for (Card card : game.getExile().getAllCards(game)) {
if (filter.match(card, source.getSourceId(), controller.getId(), game)) {
if (card.getOwnerId().equals(controller.getId())) {
if (card.isOwnedBy(controller.getId())) {
addMadnessToCard(game, card, usedMadnessAbilities);
}
}

Some files were not shown because too many files have changed in this diff Show more