- Added Grappling Hook.

This commit is contained in:
Sloth
2011-10-20 12:28:09 +00:00
parent a9fcc58256
commit efb3782073
5 changed files with 45 additions and 16 deletions

1
.gitattributes vendored
View File

@@ -3386,6 +3386,7 @@ res/cardsfolder/g/granulate.txt svneol=native#text/plain
res/cardsfolder/g/grapeshot.txt svneol=native#text/plain
res/cardsfolder/g/grapeshot_catapult.txt svneol=native#text/plain
res/cardsfolder/g/grappler_spider.txt svneol=native#text/plain
res/cardsfolder/g/grappling_hook.txt -text
res/cardsfolder/g/grasp_of_darkness.txt svneol=native#text/plain
res/cardsfolder/g/grasp_of_phantoms.txt -text
res/cardsfolder/g/grassland_crusader.txt svneol=native#text/plain

View File

@@ -5,7 +5,7 @@ Text:no text
PT:4/3
K:Haste
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigProvoke | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may have target creature block it this turn if able.
SVar:TrigProvoke:DB$ MustBlock | ValidTgts$ Creature | TgtPrompt$ Select target creature
SVar:TrigProvoke:AB$ MustBlock | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select target creature
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/giant_ambush_beetle.jpg
SetInfo:ARB|Uncommon|http://magiccards.info/scans/en/arb/137.jpg

View File

@@ -0,0 +1,12 @@
Name:Grappling Hook
ManaCost:4
Types:Artifact Equipment
Text:Equipped creature has double strike.
K:eqPump 4:+0/+0/Double Strike
T:Mode$ Attacks | ValidCard$ Card.AttachedBy | Execute$ TrigProvoke | OptionalDecider$ You | TriggerDescription$ Whenever equipped creature attacks, you may have target creature block it this turn if able.
SVar:TrigProvoke:AB$ MustBlock | Cost$ 0 | ValidTgts$ Creature | DefinedAttacker$ Equipped | TgtPrompt$ Select target creature
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/grappling_hook.jpg
SetInfo:ZEN|Rare|http://magiccards.info/scans/en/zen/203.jpg
Oracle:Equipped creature has double strike.\nWhenever equipped creature attacks, you may have target creature block it this turn if able.\nEquip {4}
End

View File

@@ -6,6 +6,7 @@ A:SP$ Pump | Cost$ 2 G | ValidTgts$ Creature | TgtPrompt$ Select target creature
SVar:DBAnimate:DB$ Animate | Defined$ Targeted | Abilities$ ABUntap | SubAbility$ DBDraw
SVar:ABUntap:AB$ Untap | Cost$ 0 | Defined$ Self | ActivationLimit$ 1 | SpellDescription$ Untap this creature. Activate this ability only once.
SVar:DBDraw:DB$Draw | NumCards$ 1 | NextUpkeep$ True
SVar:RemAIDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/touch_of_vitae.jpg
SetInfo:ICE|Uncommon|http://magiccards.info/scans/en/ia/159.jpg

View File

@@ -839,6 +839,7 @@ public final class AbilityFactory_Combat {
private static boolean mustBlockDoTriggerAI(final AbilityFactory af, final SpellAbility sa,
final boolean mandatory) {
HashMap<String, String> params = af.getMapParams();
final Card source = sa.getSourceCard();
Target abTgt = sa.getTarget();
@@ -851,6 +852,20 @@ public final class AbilityFactory_Combat {
if (!AllZone.getPhase().isBefore(Constant.Phase.Main2))
return false;
Card attacker = null;
if (params.containsKey("DefinedAttacker")) {
ArrayList<Card> cards = AbilityFactory.getDefinedCards(sa.getSourceCard(), params.get("DefinedAttacker"), sa);
if (cards.isEmpty())
return false;
attacker = cards.get(0);
}
if (attacker == null)
attacker = source;
final Card definedAttacker = attacker;
boolean chance = false;
CardList list = AllZone.getHumanPlayer().getCardsIn(Zone.Battlefield).getType("Creature");
@@ -860,11 +875,11 @@ public final class AbilityFactory_Combat {
list = list.getValidCards(abTgt.getValidTgts(), source.getController(), source);
list = list.filter(new CardListFilter() {
public boolean addCard(Card c) {
if (!CombatUtil.canBlock(source, c))
if (!CombatUtil.canBlock(definedAttacker, c))
return false;
if (CombatUtil.canDestroyAttacker(source, c, null, false))
if (CombatUtil.canDestroyAttacker(definedAttacker, c, null, false))
return false;
if (!CombatUtil.canDestroyBlocker(c, source, null, false))
if (!CombatUtil.canDestroyBlocker(c, definedAttacker, null, false))
return false;
return true;
}