mirror of
https://github.com/correl/mage.git
synced 2024-12-25 11:11:16 +00:00
Merge pull request #5351 from magefree/plane-and-emblem-implements-controllable
Refactor: make plane and emblem implement Controllable
This commit is contained in:
commit
08e88b8a65
8 changed files with 13 additions and 11 deletions
|
@ -135,7 +135,7 @@ class CelestialDawnToWhiteEffect extends ContinuousEffectImpl {
|
|||
// Command
|
||||
for (CommandObject commandObject : game.getState().getCommand()) {
|
||||
if (commandObject instanceof Commander) {
|
||||
if (commandObject.getControllerId().equals(controller.getId())) {
|
||||
if (commandObject.isControlledBy(controller.getId())) {
|
||||
setColor(commandObject.getColor(game), game);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ class CoverOfWinterEffect extends PreventionEffectImpl {
|
|||
|
||||
if (event.getType() == GameEvent.EventType.DAMAGE_CREATURE) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -94,11 +94,11 @@ class EmissaryOfGrudgesEffect extends OneShotEffect {
|
|||
Mode mode = stackObject.getStackAbility().getModes().get(modeId);
|
||||
for (Target target : mode.getTargets()) {
|
||||
for (UUID targetId : target.getTargets()) {
|
||||
if (source.getControllerId().equals(targetId)) {
|
||||
if (source.isControlledBy(targetId)) {
|
||||
targetsYouOrAPermanentYouControl = true;
|
||||
}
|
||||
Permanent permanent = game.getPermanent(targetId);
|
||||
if (permanent != null && source.getControllerId().equals(permanent.getControllerId())) {
|
||||
if (permanent != null && source.isControlledBy(permanent.getControllerId())) {
|
||||
targetsYouOrAPermanentYouControl = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -100,7 +100,7 @@ class SavageSummoningAsThoughEffect extends AsThoughEffectImpl {
|
|||
MageObject mageObject = game.getBaseObject(objectId);
|
||||
if (mageObject instanceof Commander) {
|
||||
Commander commander = (Commander) mageObject;
|
||||
if (commander.isCreature() && commander.getControllerId().equals(source.getControllerId())) {
|
||||
if (commander.isCreature() && commander.isControlledBy(source.getControllerId())) {
|
||||
return true;
|
||||
}
|
||||
} else if (mageObject instanceof Card) {
|
||||
|
|
|
@ -219,9 +219,9 @@ public abstract class ActivatedAbilityImpl extends AbilityImpl implements Activa
|
|||
} else {
|
||||
MageObject mageObject = game.getObject(this.sourceId);
|
||||
if (mageObject instanceof Emblem) {
|
||||
return ((Emblem) mageObject).getControllerId().equals(playerId);
|
||||
return ((Emblem) mageObject).isControlledBy(playerId);
|
||||
} else if (mageObject instanceof Plane) {
|
||||
return ((Plane) mageObject).getControllerId().equals(playerId);
|
||||
return ((Plane) mageObject).isControlledBy(playerId);
|
||||
} else if (game.getState().getZone(this.sourceId) != Zone.BATTLEFIELD) {
|
||||
return ((Card) mageObject).isOwnedBy(playerId);
|
||||
}
|
||||
|
|
|
@ -12,6 +12,9 @@ public interface Controllable {
|
|||
UUID getId();
|
||||
|
||||
default boolean isControlledBy(UUID controllerID){
|
||||
if(getControllerId() == null){
|
||||
return false;
|
||||
}
|
||||
return getControllerId().equals(controllerID);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2600,7 +2600,7 @@ public abstract class GameImpl implements Game, Serializable {
|
|||
boolean addPlaneAgain = false;
|
||||
for (Iterator<CommandObject> it = this.getState().getCommand().iterator(); it.hasNext();) {
|
||||
CommandObject obj = it.next();
|
||||
if (obj.getControllerId().equals(playerId)) {
|
||||
if (obj.isControlledBy(playerId)) {
|
||||
if (obj instanceof Emblem) {
|
||||
((Emblem) obj).discardEffects();// This may not be the best fix but it works
|
||||
}
|
||||
|
|
|
@ -3,17 +3,16 @@ package mage.game.command;
|
|||
|
||||
import java.util.UUID;
|
||||
import mage.MageObject;
|
||||
import mage.game.Controllable;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Viserion, nantuko
|
||||
*/
|
||||
public interface CommandObject extends MageObject {
|
||||
public interface CommandObject extends MageObject, Controllable {
|
||||
|
||||
UUID getSourceId();
|
||||
|
||||
UUID getControllerId();
|
||||
|
||||
void assignNewId();
|
||||
|
||||
MageObject getSourceObject();
|
||||
|
|
Loading…
Reference in a new issue