forked from External/mage
implement [M3C] Planar Nexus [MH3] Omo, Queen of Vesuva and [UNF] Nearby Planet ; introduce AllNonbasicLandTypes status (#12203)
This commit is contained in:
parent
3e18b58cac
commit
08c7d2ab8f
19 changed files with 659 additions and 5 deletions
|
|
@ -471,6 +471,9 @@ public interface MageObject extends MageItem, Serializable, Copyable<MageObject>
|
|||
if (subTypeSet == SubTypeSet.CreatureType || subTypeSet == null) {
|
||||
this.setIsAllCreatureTypes(game, mageObject.isAllCreatureTypes(game));
|
||||
}
|
||||
if (subTypeSet == SubTypeSet.NonBasicLandType || subTypeSet == null) {
|
||||
this.setIsAllNonbasicLandTypes(game, mageObject.isAllNonbasicLandTypes(game));
|
||||
}
|
||||
for (SubType subType : mageObject.getSubtype(game)) {
|
||||
if (subType.getSubTypeSet() == subTypeSet || subTypeSet == null) {
|
||||
this.addSubType(game, subType);
|
||||
|
|
@ -485,10 +488,12 @@ public interface MageObject extends MageItem, Serializable, Copyable<MageObject>
|
|||
default void removeAllSubTypes(Game game, SubTypeSet subTypeSet) {
|
||||
if (subTypeSet == null) {
|
||||
setIsAllCreatureTypes(game, false);
|
||||
setIsAllNonbasicLandTypes(game, false);
|
||||
game.getState().getCreateMageObjectAttribute(this, game).getSubtype().clear();
|
||||
} else if (subTypeSet == SubTypeSet.CreatureType) {
|
||||
removeAllCreatureTypes(game);
|
||||
} else if (subTypeSet == SubTypeSet.NonBasicLandType) {
|
||||
setIsAllNonbasicLandTypes(game, false);
|
||||
game.getState().getCreateMageObjectAttribute(this, game).getSubtype().removeAll(SubType.getLandTypes());
|
||||
} else {
|
||||
game.getState().getCreateMageObjectAttribute(this, game).getSubtype().removeAll(SubType.getBySubTypeSet(subTypeSet));
|
||||
|
|
@ -497,11 +502,13 @@ public interface MageObject extends MageItem, Serializable, Copyable<MageObject>
|
|||
|
||||
default void retainAllArtifactSubTypes(Game game) {
|
||||
setIsAllCreatureTypes(game, false);
|
||||
setIsAllNonbasicLandTypes(game, false);
|
||||
game.getState().getCreateMageObjectAttribute(this, game).getSubtype().retainAll(SubType.getArtifactTypes());
|
||||
}
|
||||
|
||||
default void retainAllEnchantmentSubTypes(Game game) {
|
||||
setIsAllCreatureTypes(game, false);
|
||||
setIsAllNonbasicLandTypes(game, false);
|
||||
game.getState().getCreateMageObjectAttribute(this, game).getSubtype().retainAll(SubType.getEnchantmentTypes());
|
||||
}
|
||||
|
||||
|
|
@ -603,5 +610,17 @@ public interface MageObject extends MageItem, Serializable, Copyable<MageObject>
|
|||
*/
|
||||
void setIsAllCreatureTypes(Game game, boolean value);
|
||||
|
||||
boolean isAllNonbasicLandTypes(Game game);
|
||||
|
||||
void setIsAllNonbasicLandTypes(boolean value);
|
||||
|
||||
/**
|
||||
* Change all nonbasic land type mark temporary, for continuous effects only
|
||||
*
|
||||
* @param game
|
||||
* @param value
|
||||
*/
|
||||
void setIsAllNonbasicLandTypes(Game game, boolean value);
|
||||
|
||||
void removePTCDA();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue