- Added Bludgeon Brawl

This commit is contained in:
swordshine
2013-12-30 00:56:08 +00:00
parent eccadbf6fc
commit 32c52578e2
7 changed files with 54 additions and 10 deletions

View File

@@ -702,11 +702,16 @@ public class GameAction {
// search for cards with static abilities
final List<Card> allCards = game.getCardsInGame();
final ArrayList<StaticAbility> staticAbilities = new ArrayList<StaticAbility>();
for (final Card card : allCards) {
for (StaticAbility sa : card.getStaticAbilities()) {
if (sa.getMapParams().get("Mode").equals("Continuous")) {
staticAbilities.add(sa);
}
for (final Card c : allCards) {
for (int i = 0; i < c.getStaticAbilities().size(); i++) {
StaticAbility stAb = c.getCharacteristics().getStaticAbilities().get(i);
if (stAb.getMapParams().get("Mode").equals("Continuous")) {
staticAbilities.add(stAb);
}
if (stAb.isTemporary()) {
c.getCharacteristics().getStaticAbilities().remove(i);
i--;
}
}
}
@@ -992,7 +997,8 @@ public class GameAction {
final Card equippedCreature = c.getEquipping().get(0);
if (!equippedCreature.isCreature() || !equippedCreature.isInPlay()
|| !equippedCreature.canBeEquippedBy(c)
|| (equippedCreature.isPhasedOut() && !c.isPhasedOut())) {
|| (equippedCreature.isPhasedOut() && !c.isPhasedOut())
|| !c.isEquipment()) {
c.unEquipCard(equippedCreature);
checkAgain = true;
}

View File

@@ -60,7 +60,7 @@ public class StaticEffects {
clearedCards.addAll(this.removeStaticEffect(se));
}
this.staticEffects.clear();
return clearedCards;
}

View File

@@ -4652,15 +4652,15 @@ public class Card extends GameEntity implements Comparable<Card> {
* @param s
* the s
*/
public final void addStaticAbility(final String s) {
public final StaticAbility addStaticAbility(final String s) {
if (s.trim().length() != 0) {
final StaticAbility stAb = new StaticAbility(s, this);
this.getCharacteristics().getStaticAbilities().add(stAb);
return stAb;
}
return null;
}
public final boolean isPermanent() {
return !(this.isInstant() || this.isSorcery() || this.isImmutable());
}

View File

@@ -50,6 +50,8 @@ public class StaticAbility {
/** The suppressed. */
private final boolean suppressed = false;
private boolean temporary = false;
/**
* <p>
* getHostCard.
@@ -633,4 +635,11 @@ public class StaticAbility {
this.layer = layer;
}
public void setTemporarily(boolean b) {
this.temporary = b;
}
public boolean isTemporary() {
return this.temporary;
}
} // end class StaticEffectFactory

View File

@@ -98,6 +98,7 @@ public class StaticAbilityContinuous {
String[] removeTypes = null;
String addColors = null;
String[] addTriggers = null;
String[] addStatics = null;
ArrayList<SpellAbility> addFullAbs = null;
boolean removeAllAbilities = false;
boolean removeSuperTypes = false;
@@ -277,6 +278,14 @@ public class StaticAbilityContinuous {
addTriggers = sVars;
}
if (params.containsKey("AddStaticAbility")) {
final String[] sVars = params.get("AddStaticAbility").split(" & ");
for (int i = 0; i < sVars.length; i++) {
sVars[i] = hostCard.getSVar(sVars[i]);
}
addStatics = sVars;
}
if (params.containsKey("GainsAbilitiesOf")) {
final String[] valids = params.get("GainsAbilitiesOf").split(",");
ArrayList<ZoneType> validZones = new ArrayList<ZoneType>();
@@ -471,6 +480,17 @@ public class StaticAbilityContinuous {
}
}
// add static abilities
if (addStatics != null) {
for (String s : addStatics) {
if (s.contains("ConvertedManaCost")) {
final String costcmc = Integer.toString(affectedCard.getCMC());
s = s.replace("ConvertedManaCost", costcmc);
}
affectedCard.addStaticAbility(s).setTemporarily(true);
}
}
// remove triggers
if (params.containsKey("RemoveTriggers") || removeAllAbilities) {
for (final Trigger trigger : affectedCard.getTriggers()) {