mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 13:02:06 -08:00
[SPE] Implement Sensational Spider-Man
This commit is contained in:
parent
f3c53b884a
commit
5e27be4dfa
5 changed files with 132 additions and 16 deletions
|
|
@ -181,19 +181,21 @@ public interface Card extends MageObject, Ownerable {
|
|||
* Remove {@param amount} counters of the specified kind.
|
||||
*
|
||||
* @param isDamage if the counter removal is a result of being damaged (e.g. for Deification to work)
|
||||
* @return amount of counters removed
|
||||
*/
|
||||
void removeCounters(String counterName, int amount, Ability source, Game game, boolean isDamage);
|
||||
int removeCounters(String counterName, int amount, Ability source, Game game, boolean isDamage);
|
||||
|
||||
default void removeCounters(Counter counter, Ability source, Game game) {
|
||||
removeCounters(counter, source, game, false);
|
||||
default int removeCounters(Counter counter, Ability source, Game game) {
|
||||
return removeCounters(counter, source, game, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all counters of any kind.
|
||||
*
|
||||
* @param isDamage if the counter removal is a result of being damaged (e.g. for Deification to work)
|
||||
* @return amount of counters removed
|
||||
*/
|
||||
void removeCounters(Counter counter, Ability source, Game game, boolean isDamage);
|
||||
int removeCounters(Counter counter, Ability source, Game game, boolean isDamage);
|
||||
|
||||
/**
|
||||
* Remove all counters of any kind.
|
||||
|
|
|
|||
|
|
@ -819,19 +819,19 @@ public abstract class CardImpl extends MageObjectImpl implements Card {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void removeCounters(String counterName, int amount, Ability source, Game game, boolean isDamage) {
|
||||
public int removeCounters(String counterName, int amount, Ability source, Game game, boolean isDamage) {
|
||||
|
||||
if (amount <= 0) {
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (getCounters(game).getCount(counterName) <= 0) {
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
GameEvent removeCountersEvent = new RemoveCountersEvent(counterName, this, source, amount, isDamage);
|
||||
if (game.replaceEvent(removeCountersEvent)) {
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int finalAmount = 0;
|
||||
|
|
@ -854,13 +854,12 @@ public abstract class CardImpl extends MageObjectImpl implements Card {
|
|||
|
||||
GameEvent event = new CountersRemovedEvent(counterName, this, source, finalAmount, isDamage);
|
||||
game.fireEvent(event);
|
||||
return finalAmount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeCounters(Counter counter, Ability source, Game game, boolean isDamage) {
|
||||
if (counter != null) {
|
||||
removeCounters(counter.getName(), counter.getCount(), source, game, isDamage);
|
||||
}
|
||||
public int removeCounters(Counter counter, Ability source, Game game, boolean isDamage) {
|
||||
return counter != null ? removeCounters(counter.getName(), counter.getCount(), source, game, isDamage) : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1093,13 +1093,13 @@ public class Spell extends StackObjectImpl implements Card {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void removeCounters(String counterName, int amount, Ability source, Game game, boolean isDamage) {
|
||||
card.removeCounters(counterName, amount, source, game, isDamage);
|
||||
public int removeCounters(String counterName, int amount, Ability source, Game game, boolean isDamage) {
|
||||
return card.removeCounters(counterName, amount, source, game, isDamage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeCounters(Counter counter, Ability source, Game game, boolean isDamage) {
|
||||
card.removeCounters(counter, source, game, isDamage);
|
||||
public int removeCounters(Counter counter, Ability source, Game game, boolean isDamage) {
|
||||
return card.removeCounters(counter, source, game, isDamage);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue