- For now, make the controller->getController() change local to Exert (to fix exerting a stolen creature). Reverted other cases for now since they didn't seem to cause problems but might have had a negative impact on checking LKI controller in hasProperty.

This commit is contained in:
Agetian
2017-05-06 10:43:54 +00:00
parent 56dc3802db
commit a2aa0f02f7

View File

@@ -3893,19 +3893,19 @@ public class Card extends GameEntity implements Comparable<Card> {
return false; return false;
} }
} else if (property.startsWith("YouCtrl")) { } else if (property.startsWith("YouCtrl")) {
if (!getController().equals(sourceController)) { if (!controller.equals(sourceController)) {
return false; return false;
} }
} else if (property.startsWith("YouDontCtrl")) { } else if (property.startsWith("YouDontCtrl")) {
if (getController().equals(sourceController)) { if (controller.equals(sourceController)) {
return false; return false;
} }
} else if (property.startsWith("OppCtrl")) { } else if (property.startsWith("OppCtrl")) {
if (!getController().getOpponents().contains(sourceController)) { if (!controller.getOpponents().contains(sourceController)) {
return false; return false;
} }
} else if (property.startsWith("ChosenCtrl")) { } else if (property.startsWith("ChosenCtrl")) {
if (!getController().equals(source.getChosenPlayer())) { if (!controller.equals(source.getChosenPlayer())) {
return false; return false;
} }
} else if (property.startsWith("DefenderCtrl")) { } else if (property.startsWith("DefenderCtrl")) {
@@ -3916,11 +3916,11 @@ public class Card extends GameEntity implements Comparable<Card> {
if (!source.hasRemembered()) { if (!source.hasRemembered()) {
return false; return false;
} }
if (getGame().getCombat().getDefendingPlayerRelatedTo((Card) source.getFirstRemembered()) != getController()) { if (getGame().getCombat().getDefendingPlayerRelatedTo((Card) source.getFirstRemembered()) != controller) {
return false; return false;
} }
} else { } else {
if (getGame().getCombat().getDefendingPlayerRelatedTo(source) != getController()) { if (getGame().getCombat().getDefendingPlayerRelatedTo(source) != controller) {
return false; return false;
} }
} }
@@ -3928,13 +3928,13 @@ public class Card extends GameEntity implements Comparable<Card> {
if (!game.getPhaseHandler().inCombat()) { if (!game.getPhaseHandler().inCombat()) {
return false; return false;
} }
if (!getGame().getCombat().isPlayerAttacked(getController())) { if (!getGame().getCombat().isPlayerAttacked(controller)) {
return false; return false;
} }
} else if (property.startsWith("EnchantedPlayerCtrl")) { } else if (property.startsWith("EnchantedPlayerCtrl")) {
final Object o = source.getEnchanting(); final Object o = source.getEnchanting();
if (o instanceof Player) { if (o instanceof Player) {
if (!getController().equals(o)) { if (!controller.equals(o)) {
return false; return false;
} }
} else { // source not enchanting a player } else { // source not enchanting a player
@@ -3943,14 +3943,14 @@ public class Card extends GameEntity implements Comparable<Card> {
} else if (property.startsWith("EnchantedControllerCtrl")) { } else if (property.startsWith("EnchantedControllerCtrl")) {
final Object o = source.getEnchanting(); final Object o = source.getEnchanting();
if (o instanceof Card) { if (o instanceof Card) {
if (!getController().equals(((Card) o).getController())) { if (!controller.equals(((Card) o).getController())) {
return false; return false;
} }
} else { // source not enchanting a card } else { // source not enchanting a card
return false; return false;
} }
} else if (property.startsWith("RememberedPlayer")) { } else if (property.startsWith("RememberedPlayer")) {
Player p = property.endsWith("Ctrl") ? getController() : getOwner(); Player p = property.endsWith("Ctrl") ? controller : getOwner();
if (!source.hasRemembered()) { if (!source.hasRemembered()) {
final Card newCard = game.getCardState(source); final Card newCard = game.getCardState(source);
for (final Object o : newCard.getRemembered()) { for (final Object o : newCard.getRemembered()) {
@@ -3972,12 +3972,12 @@ public class Card extends GameEntity implements Comparable<Card> {
} else if (property.startsWith("nonRememberedPlayerCtrl")) { } else if (property.startsWith("nonRememberedPlayerCtrl")) {
if (!source.hasRemembered()) { if (!source.hasRemembered()) {
final Card newCard = game.getCardState(source); final Card newCard = game.getCardState(source);
if (newCard.isRemembered(getController())) { if (newCard.isRemembered(controller)) {
return false; return false;
} }
} }
if (source.isRemembered(getController())) { if (source.isRemembered(controller)) {
return false; return false;
} }
} else if (property.equals("TargetedPlayerCtrl")) { } else if (property.equals("TargetedPlayerCtrl")) {
@@ -3985,7 +3985,7 @@ public class Card extends GameEntity implements Comparable<Card> {
final SpellAbility saTargeting = sa.getSATargetingPlayer(); final SpellAbility saTargeting = sa.getSATargetingPlayer();
if (saTargeting != null) { if (saTargeting != null) {
for (final Player p : saTargeting.getTargets().getTargetPlayers()) { for (final Player p : saTargeting.getTargets().getTargetPlayers()) {
if (!getController().equals(p)) { if (!controller.equals(p)) {
return false; return false;
} }
} }
@@ -3997,23 +3997,23 @@ public class Card extends GameEntity implements Comparable<Card> {
final List<SpellAbility> sas = AbilityUtils.getDefinedSpellAbilities(source, "Targeted", sa); final List<SpellAbility> sas = AbilityUtils.getDefinedSpellAbilities(source, "Targeted", sa);
for (final Card c : cards) { for (final Card c : cards) {
final Player p = c.getController(); final Player p = c.getController();
if (!getController().equals(p)) { if (!controller.equals(p)) {
return false; return false;
} }
} }
for (final SpellAbility s : sas) { for (final SpellAbility s : sas) {
final Player p = s.getHostCard().getController(); final Player p = s.getHostCard().getController();
if (!getController().equals(p)) { if (!controller.equals(p)) {
return false; return false;
} }
} }
} }
} else if (property.startsWith("ActivePlayerCtrl")) { } else if (property.startsWith("ActivePlayerCtrl")) {
if (!game.getPhaseHandler().isPlayerTurn(getController())) { if (!game.getPhaseHandler().isPlayerTurn(controller)) {
return false; return false;
} }
} else if (property.startsWith("NonActivePlayerCtrl")) { } else if (property.startsWith("NonActivePlayerCtrl")) {
if (game.getPhaseHandler().isPlayerTurn(getController())) { if (game.getPhaseHandler().isPlayerTurn(controller)) {
return false; return false;
} }
} else if (property.startsWith("YouOwn")) { } else if (property.startsWith("YouOwn")) {
@@ -4046,24 +4046,24 @@ public class Card extends GameEntity implements Comparable<Card> {
} }
} else if (property.startsWith("ControlledBy")) { } else if (property.startsWith("ControlledBy")) {
final String valid = property.substring(13); final String valid = property.substring(13);
if (!getController().isValid(valid, sourceController, source, spellAbility)) { if (!controller.isValid(valid, sourceController, source, spellAbility)) {
return false; return false;
} }
} else if (property.startsWith("OwnerDoesntControl")) { } else if (property.startsWith("OwnerDoesntControl")) {
if (getOwner().equals(getController())) { if (getOwner().equals(controller)) {
return false; return false;
} }
} else if (property.startsWith("ControllerControls")) { } else if (property.startsWith("ControllerControls")) {
final String type = property.substring(18); final String type = property.substring(18);
if (type.startsWith("AtLeastAsMany")) { if (type.startsWith("AtLeastAsMany")) {
String realType = type.split("AtLeastAsMany")[1]; String realType = type.split("AtLeastAsMany")[1];
CardCollectionView cards = CardLists.getType(getController().getCardsIn(ZoneType.Battlefield), realType); CardCollectionView cards = CardLists.getType(controller.getCardsIn(ZoneType.Battlefield), realType);
CardCollectionView yours = CardLists.getType(sourceController.getCardsIn(ZoneType.Battlefield), realType); CardCollectionView yours = CardLists.getType(sourceController.getCardsIn(ZoneType.Battlefield), realType);
if (cards.size() < yours.size()) { if (cards.size() < yours.size()) {
return false; return false;
} }
} else { } else {
final CardCollectionView cards = getController().getCardsIn(ZoneType.Battlefield); final CardCollectionView cards = controller.getCardsIn(ZoneType.Battlefield);
if (CardLists.getType(cards, type).isEmpty()) { if (CardLists.getType(cards, type).isEmpty()) {
return false; return false;
} }
@@ -4735,7 +4735,7 @@ public class Card extends GameEntity implements Comparable<Card> {
} else { } else {
p = sourceController; p = sourceController;
} }
if (p == null || !getController().equals(game.getNextPlayerAfter(p, direction))) { if (p == null || !controller.equals(game.getNextPlayerAfter(p, direction))) {
return false; return false;
} }
} else if (property.startsWith("sharesTypeWith")) { } else if (property.startsWith("sharesTypeWith")) {
@@ -4886,11 +4886,11 @@ public class Card extends GameEntity implements Comparable<Card> {
return false; return false;
} }
} else if (property.startsWith("controllerWasDealtCombatDamageByThisTurn")) { } else if (property.startsWith("controllerWasDealtCombatDamageByThisTurn")) {
if (!source.getDamageHistory().getThisTurnCombatDamaged().contains(getController())) { if (!source.getDamageHistory().getThisTurnCombatDamaged().contains(controller)) {
return false; return false;
} }
} else if (property.startsWith("controllerWasDealtDamageByThisTurn")) { } else if (property.startsWith("controllerWasDealtDamageByThisTurn")) {
if (!source.getDamageHistory().getThisTurnDamaged().contains(getController())) { if (!source.getDamageHistory().getThisTurnDamaged().contains(controller)) {
return false; return false;
} }
} else if (property.startsWith("wasDealtDamageThisTurn")) { } else if (property.startsWith("wasDealtDamageThisTurn")) {
@@ -4906,7 +4906,7 @@ public class Card extends GameEntity implements Comparable<Card> {
return false; return false;
} }
} else if (property.startsWith("attackedLastTurn")) { } else if (property.startsWith("attackedLastTurn")) {
return getDamageHistory().getCreatureAttackedLastTurnOf(getController()); return getDamageHistory().getCreatureAttackedLastTurnOf(controller);
} else if (property.startsWith("blockedThisTurn")) { } else if (property.startsWith("blockedThisTurn")) {
if (!getDamageHistory().getCreatureBlockedThisTurn()) { if (!getDamageHistory().getCreatureBlockedThisTurn()) {
return false; return false;
@@ -4924,7 +4924,7 @@ public class Card extends GameEntity implements Comparable<Card> {
return false; return false;
} }
} else if (property.startsWith("notAttackedLastTurn")) { } else if (property.startsWith("notAttackedLastTurn")) {
return !getDamageHistory().getCreatureAttackedLastTurnOf(getController()); return !getDamageHistory().getCreatureAttackedLastTurnOf(controller);
} else if (property.startsWith("notBlockedThisTurn")) { } else if (property.startsWith("notBlockedThisTurn")) {
if (getDamageHistory().getCreatureBlockedThisTurn()) { if (getDamageHistory().getCreatureBlockedThisTurn()) {
return false; return false;
@@ -5217,7 +5217,7 @@ public class Card extends GameEntity implements Comparable<Card> {
String valid = property.split(" ")[1]; String valid = property.split(" ")[1];
for(Card c : getBlockedThisTurn()) { for(Card c : getBlockedThisTurn()) {
if (c.isValid(valid, getController(), source, spellAbility)) { if (c.isValid(valid, this.getController(), source, spellAbility)) {
return true; return true;
} }
} }
@@ -5228,7 +5228,7 @@ public class Card extends GameEntity implements Comparable<Card> {
} }
String valid = property.split(" ")[1]; String valid = property.split(" ")[1];
for(Card c : getBlockedByThisTurn()) { for(Card c : getBlockedByThisTurn()) {
if (c.isValid(valid, getController(), source, spellAbility)) { if (c.isValid(valid, this.getController(), source, spellAbility)) {
return true; return true;
} }
} }