- 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.txt svneol=native#text/plain
res/cardsfolder/g/grapeshot_catapult.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/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_darkness.txt svneol=native#text/plain
res/cardsfolder/g/grasp_of_phantoms.txt -text res/cardsfolder/g/grasp_of_phantoms.txt -text
res/cardsfolder/g/grassland_crusader.txt svneol=native#text/plain res/cardsfolder/g/grassland_crusader.txt svneol=native#text/plain

View File

@@ -5,7 +5,7 @@ Text:no text
PT:4/3 PT:4/3
K:Haste 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. 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:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/giant_ambush_beetle.jpg 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 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

@@ -1,13 +1,14 @@
Name:Touch of Vitae Name:Touch of Vitae
ManaCost:2 G ManaCost:2 G
Types:Instant Types:Instant
Text:no text Text:no text
A:SP$ Pump | Cost$ 2 G | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Haste | SubAbility$ DBAnimate | SpellDescription$ Until end of turn, target creature gains haste and "0: Untap this creature. Activate this ability only once." Draw a card at the beginning of the next turn's upkeep. A:SP$ Pump | Cost$ 2 G | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Haste | SubAbility$ DBAnimate | SpellDescription$ Until end of turn, target creature gains haste and "0: Untap this creature. Activate this ability only once." Draw a card at the beginning of the next turn's upkeep.
SVar:DBAnimate:DB$ Animate | Defined$ Targeted | Abilities$ ABUntap | SubAbility$ DBDraw 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: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:DBDraw:DB$Draw | NumCards$ 1 | NextUpkeep$ True
SVar:Rarity:Uncommon SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/touch_of_vitae.jpg SVar:Rarity:Uncommon
SetInfo:ICE|Uncommon|http://magiccards.info/scans/en/ia/159.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/touch_of_vitae.jpg
Oracle:Until end of turn, target creature gains haste and "{0}: Untap this creature. Activate this ability only once."\nDraw a card at the beginning of the next turn's upkeep. SetInfo:ICE|Uncommon|http://magiccards.info/scans/en/ia/159.jpg
Oracle:Until end of turn, target creature gains haste and "{0}: Untap this creature. Activate this ability only once."\nDraw a card at the beginning of the next turn's upkeep.
End End

View File

@@ -839,6 +839,7 @@ public final class AbilityFactory_Combat {
private static boolean mustBlockDoTriggerAI(final AbilityFactory af, final SpellAbility sa, private static boolean mustBlockDoTriggerAI(final AbilityFactory af, final SpellAbility sa,
final boolean mandatory) { final boolean mandatory) {
HashMap<String, String> params = af.getMapParams();
final Card source = sa.getSourceCard(); final Card source = sa.getSourceCard();
Target abTgt = sa.getTarget(); Target abTgt = sa.getTarget();
@@ -850,6 +851,20 @@ public final class AbilityFactory_Combat {
//only use on creatures that can attack //only use on creatures that can attack
if (!AllZone.getPhase().isBefore(Constant.Phase.Main2)) if (!AllZone.getPhase().isBefore(Constant.Phase.Main2))
return false; 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; boolean chance = false;
@@ -860,11 +875,11 @@ public final class AbilityFactory_Combat {
list = list.getValidCards(abTgt.getValidTgts(), source.getController(), source); list = list.getValidCards(abTgt.getValidTgts(), source.getController(), source);
list = list.filter(new CardListFilter() { list = list.filter(new CardListFilter() {
public boolean addCard(Card c) { public boolean addCard(Card c) {
if (!CombatUtil.canBlock(source, c)) if (!CombatUtil.canBlock(definedAttacker, c))
return false; return false;
if (CombatUtil.canDestroyAttacker(source, c, null, false)) if (CombatUtil.canDestroyAttacker(definedAttacker, c, null, false))
return false; return false;
if (!CombatUtil.canDestroyBlocker(c, source, null, false)) if (!CombatUtil.canDestroyBlocker(c, definedAttacker, null, false))
return false; return false;
return true; return true;
} }