mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
- Added Grappling Hook.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
12
res/cardsfolder/g/grappling_hook.txt
Normal file
12
res/cardsfolder/g/grappling_hook.txt
Normal 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
|
||||||
@@ -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
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user