Merge pull request #8400 from weirddan455/decayed

Add sub abilities in TokenImpl.addAbility and PermanentImpl.addAbility (fixes #8343)
This commit is contained in:
Oleg Agafonov 2021-10-23 10:27:49 +04:00 committed by GitHub
commit 05222f3bdc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 56 additions and 3 deletions

View file

@ -305,9 +305,7 @@ public abstract class CardImpl extends MageObjectImpl implements Card {
public void addAbility(Ability ability) {
ability.setSourceId(this.getId());
abilities.add(ability);
for (Ability subAbility : ability.getSubAbilities()) {
abilities.add(subAbility);
}
abilities.addAll(ability.getSubAbilities());
// dynamic check: you can't add ability to the PermanentCard, use permanent.addAbility(a, source, game) instead
// reason: triggered abilities are not processing here

View file

@ -119,6 +119,7 @@ public abstract class Designation implements MageObject {
public void addAbility(Ability ability) {
ability.setSourceId(id);
abilites.add(ability);
abilites.addAll(ability.getSubAbilities());
}
@Override

View file

@ -386,6 +386,7 @@ public abstract class PermanentImpl extends CardImpl implements Permanent {
game.getState().addAbility(copyAbility, sourceId, this);
}
abilities.add(copyAbility);
abilities.addAll(ability.getSubAbilities());
}
}

View file

@ -125,6 +125,7 @@ public abstract class TokenImpl extends MageObjectImpl implements Token {
public void addAbility(Ability ability) {
ability.setSourceId(this.getId());
abilities.add(ability);
abilities.addAll(ability.getSubAbilities());
}
@Override

View file

@ -2298,6 +2298,7 @@ public abstract class PlayerImpl implements Player, Serializable {
public void addAbility(Ability ability) {
ability.setSourceId(playerId);
this.abilities.add(ability);
this.abilities.addAll(ability.getSubAbilities());
}
@Override