- Added the static ability "CantBeCast".

- Added Grid Monitor.
This commit is contained in:
Sloth
2011-10-17 15:06:00 +00:00
parent 66ba724133
commit acb035191d
6 changed files with 70 additions and 2 deletions

View File

@@ -3895,6 +3895,17 @@ public class Card extends GameEntity implements Comparable<Card> {
* @return a boolean.
*/
public final boolean isUnCastable() {
//Prevent Damage static abilities
CardList allp = AllZoneUtil.getCardsIn(Zone.Battlefield);
for (Card ca : allp) {
ArrayList<StaticAbility> staticAbilities = ca.getStaticAbilities();
for (StaticAbility stAb : staticAbilities) {
if(stAb.applyAbility("CantBeCast", this)) {
return true;
}
}
}
return unCastable;
}

View File

@@ -19,6 +19,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.Map.Entry;
import java.util.Random;
@@ -1021,7 +1022,11 @@ public class CardFactoryUtil {
sourceCard.setBaseDefense(defense);
sourceCard.setIntrinsicKeyword(sourceCard.getPrevIntrinsicKeyword());
sourceCard.setType(sourceCard.getPrevType());
sourceCard.turnFaceUp();
//Run triggers
Map<String, Object> runParams = new TreeMap<String, Object>();
runParams.put("Card", sourceCard);
AllZone.getTriggerHandler().runTrigger("TurnFaceUp", runParams);
}
@Override
@@ -1104,7 +1109,6 @@ public class CardFactoryUtil {
@Override
public void resolve() {
sourceCard.getController().drawCard();
sourceCard.cycle();
}
};
cycle.setIsCycling(true);

View File

@@ -168,6 +168,22 @@ public class StaticAbility {
return in;
}
//apply the ability if it has the right mode
public boolean applyAbility(String mode, Card card) {
//don't apply the ability if it hasn't got the right mode
if (!mapParams.get("Mode").equals(mode))
return false;
if (isSuppressed() || !checkConditions())
return false;
if (mode.equals("CantBeCast"))
return StaticAbility_CantBeCast.applyCantBeCastAbility(this, card);
return false;
}
public boolean checkConditions() {
Player controller = hostCard.getController();

View File

@@ -0,0 +1,25 @@
package forge.card.staticAbility;
import java.util.HashMap;
import forge.Card;
public class StaticAbility_CantBeCast {
/**
*
* TODO Write javadoc for this method.
* @param stAb a StaticAbility
*/
public static boolean applyCantBeCastAbility(final StaticAbility stAb, Card card) {
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;
}
return true;
}
}