Additional fixes for 9d9916280a

This commit is contained in:
Oleg Agafonov 2023-05-09 15:05:24 +04:00
parent 9d9916280a
commit 3c66dc8706
5 changed files with 8 additions and 3 deletions

View file

@ -110,7 +110,7 @@ class PortalMageEffect extends OneShotEffect {
// Select the new defender // Select the new defender
TargetDefender target = new TargetDefender(defenders); TargetDefender target = new TargetDefender(defenders);
if (controller.chooseTarget(Outcome.Damage, target, source, game)) { if (controller.chooseTarget(Outcome.Damage, target, source, game)) {
if (!combatGroupTarget.getDefenderId().equals(target.getFirstTarget())) { if (combatGroupTarget.getDefenderId() != null && !combatGroupTarget.getDefenderId().equals(target.getFirstTarget())) {
if (combatGroupTarget.changeDefenderPostDeclaration(target.getFirstTarget(), game)) { if (combatGroupTarget.changeDefenderPostDeclaration(target.getFirstTarget(), game)) {
String attacked = ""; String attacked = "";
Player player = game.getPlayer(target.getFirstTarget()); Player player = game.getPlayer(target.getFirstTarget());

View file

@ -212,7 +212,7 @@ class TheEternalWandererAttackRestrictionEffect extends RestrictionEffect {
//If there is already a creature attacking The Eternal Wanderer, dont let another creature attack it //If there is already a creature attacking The Eternal Wanderer, dont let another creature attack it
for(CombatGroup group : game.getCombat().getGroups()){ for(CombatGroup group : game.getCombat().getGroups()){
if(group.getDefenderId().equals(source.getSourceId())){ if(group.getDefenderId() != null && group.getDefenderId().equals(source.getSourceId())){
return false; return false;
} }
} }

View file

@ -21,7 +21,7 @@ public enum CreaturesAttackingYouCount implements DynamicValue {
public int calculate(Game game, Ability sourceAbility, Effect effect) { public int calculate(Game game, Ability sourceAbility, Effect effect) {
int count = 0; int count = 0;
for (CombatGroup combatGroup : game.getCombat().getGroups()) { for (CombatGroup combatGroup : game.getCombat().getGroups()) {
if (combatGroup.getDefenderId().equals(sourceAbility.getControllerId())) { if (combatGroup.getDefenderId() != null && combatGroup.getDefenderId().equals(sourceAbility.getControllerId())) {
count += combatGroup.getAttackers().size(); count += combatGroup.getAttackers().size();
} }
} }

View file

@ -26,6 +26,7 @@ public class AttackingSameNotBandedPredicate implements Predicate<Permanent> {
return combatGroup != null return combatGroup != null
&& input.isAttacking() && input.isAttacking()
&& input.getBandedCards().isEmpty() && input.getBandedCards().isEmpty()
&& combatGroup.getDefenderId() != null
&& combatGroup.getDefenderId().equals(defenderId); && combatGroup.getDefenderId().equals(defenderId);
} }
} }

View file

@ -66,6 +66,10 @@ public class CombatGroup implements Serializable, Copyable<CombatGroup> {
} }
/**
*
* @return can be null
*/
public UUID getDefenderId() { public UUID getDefenderId() {
return defenderId; return defenderId;
} }