- 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

1
.gitattributes vendored
View File

@@ -1302,6 +1302,7 @@ forge-gui/res/cardsfolder/b/bloodthrone_vampire.txt svneol=native#text/plain
forge-gui/res/cardsfolder/b/bloom_tender.txt -text forge-gui/res/cardsfolder/b/bloom_tender.txt -text
forge-gui/res/cardsfolder/b/blossoming_wreath.txt svneol=native#text/plain forge-gui/res/cardsfolder/b/blossoming_wreath.txt svneol=native#text/plain
forge-gui/res/cardsfolder/b/blowfly_infestation.txt -text forge-gui/res/cardsfolder/b/blowfly_infestation.txt -text
forge-gui/res/cardsfolder/b/bludgeon_brawl.txt -text
forge-gui/res/cardsfolder/b/blue_elemental_blast.txt svneol=native#text/plain forge-gui/res/cardsfolder/b/blue_elemental_blast.txt svneol=native#text/plain
forge-gui/res/cardsfolder/b/blue_mana_battery.txt svneol=native#text/plain forge-gui/res/cardsfolder/b/blue_mana_battery.txt svneol=native#text/plain
forge-gui/res/cardsfolder/b/blue_scarab.txt svneol=native#text/plain forge-gui/res/cardsfolder/b/blue_scarab.txt svneol=native#text/plain

View File

@@ -0,0 +1,8 @@
Name:Bludgeon Brawl
ManaCost:2 R
Types:Enchantment
S:Mode$ Continuous | Affected$ Artifact.nonCreature+nonEquipment | AddAbility$ BrawlEquip | AddType$ Equipment | AddStaticAbility$ EquipPump | Description$ Each noncreature, non-Equipment artifact is an Equipment with equip X and "Equipped creature gets +X/+0," where X is that artifact's converted mana cost.
SVar:BrawlEquip:AB$ Attach | Cost$ ConvertedManaCost | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SorcerySpeed$ True | Equip$ True | AILogic$ Pump | IsPresent$ Card.Self+nonCreature | PrecostDesc$ Equip | SpellDescription$ (Attach to target creature you control. Equip only as a sorcery.)
SVar:EquipPump:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ ConvertedManaCost | Description$ Equipped creature gets +X/+0, where X is CARDNAME's converted mana cost.
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/bludgeon_brawl.jpg

View File

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

View File

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

View File

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

View File

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

View File

@@ -98,6 +98,7 @@ public class StaticAbilityContinuous {
String[] removeTypes = null; String[] removeTypes = null;
String addColors = null; String addColors = null;
String[] addTriggers = null; String[] addTriggers = null;
String[] addStatics = null;
ArrayList<SpellAbility> addFullAbs = null; ArrayList<SpellAbility> addFullAbs = null;
boolean removeAllAbilities = false; boolean removeAllAbilities = false;
boolean removeSuperTypes = false; boolean removeSuperTypes = false;
@@ -277,6 +278,14 @@ public class StaticAbilityContinuous {
addTriggers = sVars; 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")) { if (params.containsKey("GainsAbilitiesOf")) {
final String[] valids = params.get("GainsAbilitiesOf").split(","); final String[] valids = params.get("GainsAbilitiesOf").split(",");
ArrayList<ZoneType> validZones = new ArrayList<ZoneType>(); 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 // remove triggers
if (params.containsKey("RemoveTriggers") || removeAllAbilities) { if (params.containsKey("RemoveTriggers") || removeAllAbilities) {
for (final Trigger trigger : affectedCard.getTriggers()) { for (final Trigger trigger : affectedCard.getTriggers()) {