mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
- Added the static ability "CantBeActivated".
- Converted Grand Abolisher.
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
package forge.card.spellability;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import forge.*;
|
||||
import forge.Constant.Zone;
|
||||
import forge.card.cost.Cost;
|
||||
import forge.card.cost.Cost_Payment;
|
||||
import forge.card.staticAbility.StaticAbility;
|
||||
|
||||
|
||||
/**
|
||||
@@ -51,6 +54,19 @@ abstract public class Ability_Activated extends SpellAbility implements java.io.
|
||||
return false;
|
||||
}
|
||||
|
||||
Player activator = getActivatingPlayer();
|
||||
|
||||
//CantBeActivated static abilities
|
||||
CardList allp = AllZoneUtil.getCardsIn(Zone.Battlefield);
|
||||
for (Card ca : allp) {
|
||||
ArrayList<StaticAbility> staticAbilities = ca.getStaticAbilities();
|
||||
for (StaticAbility stAb : staticAbilities) {
|
||||
if(stAb.applyAbility("CantBeActivated", c, activator)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (c.hasKeyword("CARDNAME's activated abilities can't be activated.") || isSuppressed()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ abstract public class Spell extends SpellAbility implements java.io.Serializable
|
||||
|
||||
Player activator = getActivatingPlayer();
|
||||
|
||||
//Prevent Damage static abilities
|
||||
//CantBeCast static abilities
|
||||
CardList allp = AllZoneUtil.getCardsIn(Zone.Battlefield);
|
||||
for (Card ca : allp) {
|
||||
ArrayList<StaticAbility> staticAbilities = ca.getStaticAbilities();
|
||||
|
||||
@@ -181,6 +181,9 @@ public class StaticAbility {
|
||||
if (mode.equals("CantBeCast"))
|
||||
return StaticAbility_CantBeCast.applyCantBeCastAbility(this, card, activator);
|
||||
|
||||
if (mode.equals("CantBeActivated"))
|
||||
return StaticAbility_CantBeCast.applyCantBeActivatedAbility(this, card, activator);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,29 @@ public class StaticAbility_CantBeCast {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(params.containsKey("Caster") && !activator.isValid(params.get("Caster"), hostCard.getController(), hostCard)) {
|
||||
if(params.containsKey("Caster") && activator != null &&
|
||||
!activator.isValid(params.get("Caster"), hostCard.getController(), hostCard)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO Write javadoc for this method.
|
||||
* @param stAb a StaticAbility
|
||||
*/
|
||||
public static boolean applyCantBeActivatedAbility(final StaticAbility stAb, Card card, Player activator) {
|
||||
HashMap<String, String> params = stAb.getMapParams();
|
||||
Card hostCard = stAb.getHostCard();
|
||||
|
||||
if(params.containsKey("ValidCard") && !card.isValid(params.get("ValidCard").split(","), hostCard.getController(), hostCard)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(params.containsKey("Activator") && activator != null &&
|
||||
!activator.isValid(params.get("Activator"), hostCard.getController(), hostCard)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user