Refactoring methods which add counters to track which player adds the counters (ready for review) (#7448)

* added parameter for player adding counters to players

* added parameter for player adding counters to cards/permanents

* updated methods to use new parameter

* fixed a few initial errors

* refactored instances of cards that add counters by a player other than the controller

* fixed some instances of incorrect arguments

* refactored abilities that trigger off of a particular player adding counters

* a few more cards that were missed

* [KHM] Implemented Vorinclex, Monstrous Raider

* added test for Vorinclex, Monstrous Raider

* fixed a test failure
This commit is contained in:
Evan Kranzler 2021-01-26 19:06:13 -05:00 committed by GitHub
parent 4db79ae3c1
commit a535cb5adc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
320 changed files with 701 additions and 481 deletions

View file

@ -1,7 +1,5 @@
package mage.cards;
import java.util.List;
import java.util.UUID;
import mage.abilities.Ability;
import mage.constants.CardType;
import mage.constants.Zone;
@ -10,6 +8,9 @@ import mage.game.Game;
import mage.game.events.ZoneChangeEvent;
import mage.game.permanent.Permanent;
import java.util.List;
import java.util.UUID;
/**
* @author emerald000
*/
@ -103,17 +104,17 @@ public abstract class MeldCard extends CardImpl {
}
@Override
public boolean addCounters(Counter counter, Ability source, Game game, List<UUID> appliedEffects) {
public boolean addCounters(Counter counter, UUID playerAddingCounters, Ability source, Game game, List<UUID> appliedEffects) {
if (this.isMelded(game)) {
return super.addCounters(counter, source, game, appliedEffects);
return super.addCounters(counter, playerAddingCounters, source, game, appliedEffects);
} else {
// can this really happen?
boolean returnState = true;
if (hasTopHalf(game)) {
returnState |= topHalfCard.addCounters(counter, source, game, appliedEffects);
returnState |= topHalfCard.addCounters(counter, playerAddingCounters, source, game, appliedEffects);
}
if (hasBottomHalf(game)) {
returnState |= bottomHalfCard.addCounters(counter, source, game, appliedEffects);
returnState |= bottomHalfCard.addCounters(counter, playerAddingCounters, source, game, appliedEffects);
}
return returnState;
}