mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
- Converted Sword of Light and Shadow to script (everything was done already).
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
Name:Sword of Light and Shadow
|
||||
ManaCost:3
|
||||
Types:Artifact Equipment
|
||||
Text:Equipped creature gets +2/+2 and has protection from white and from black.\r\n\r\nWhenever equipped creature deals combat damage to a player, you gain 3 life and you may return up to one target creature card from your graveyard to your hand.
|
||||
Text:Equipped creature gets +2/+2 and has protection from white and from black.
|
||||
K:eqPump 2:+2/+2/Protection from white & Protection from black
|
||||
#Note: This trigger does not work due to some bug in Input where it is getting cleared. When that's fixed, this trigger should work.
|
||||
#T:Mode$ DamageDone | ValidSource$ Creature.AttachedBy | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigGainLife | TriggerZones$ Battlefield | TriggerDescription$ Whenever equipped creature deals combat damage to a player, you gain 3 life and you may return up to one target creature card from your graveyard to your hand.
|
||||
#SVar:TrigGainLife:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ 3 | SubAbility$ SVar=DBReturn
|
||||
#SVar:DBReturn:DB$ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouCtrl | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select target creature in your graveyard
|
||||
T:Mode$ DamageDone | ValidSource$ Creature.AttachedBy | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigGainLife | TriggerZones$ Battlefield | TriggerDescription$ Whenever equipped creature deals combat damage to a player, you gain 3 life and you may return up to one target creature card from your graveyard to your hand.
|
||||
SVar:TrigGainLife:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ 3 | SubAbility$ SVar=DBReturn
|
||||
SVar:DBReturn:DB$ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouCtrl | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select target creature in your graveyard
|
||||
SVar:Rarity:Rare
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/sword_of_light_and_shadow.jpg
|
||||
SetInfo:DST|Rare|http://magiccards.info/scans/en/ds/149.jpg
|
||||
|
||||
@@ -12,7 +12,6 @@ import forge.card.spellability.Ability;
|
||||
import forge.card.spellability.Target;
|
||||
import forge.game.GameLossReason;
|
||||
import forge.gui.GuiUtils;
|
||||
import forge.gui.input.Input;
|
||||
import forge.gui.input.Input_PayManaCostUtil;
|
||||
import forge.gui.input.Input_PayManaCost_Ability;
|
||||
|
||||
@@ -657,68 +656,6 @@ public final class GameActionUtil {
|
||||
if (source.hasKeyword("Deathtouch") && affected.isCreature()) {
|
||||
AllZone.getGameAction().destroy(affected);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>executeSwordOfLightAndShadowEffects.</p>
|
||||
*
|
||||
* @param source a {@link forge.Card} object.
|
||||
*/
|
||||
public static void executeSwordOfLightAndShadowEffects(final Card source) {
|
||||
final Card src = source;
|
||||
final Ability ability = new Ability(src, "0") {
|
||||
@Override
|
||||
public void resolve() {
|
||||
Card target = getTargetCard();
|
||||
if (target != null) {
|
||||
if (src.getController().getZone(Zone.Graveyard).contains(target)) {
|
||||
PlayerZone hand = src.getController().getZone(Constant.Zone.Hand);
|
||||
AllZone.getGameAction().moveTo(hand, target);
|
||||
}
|
||||
}
|
||||
|
||||
src.getController().gainLife(3, source);
|
||||
}
|
||||
}; // ability
|
||||
|
||||
Command res = new Command() {
|
||||
private static final long serialVersionUID = -7433708170033536384L;
|
||||
|
||||
public void execute() {
|
||||
CardList list = src.getController().getCardsIn(Zone.Graveyard);
|
||||
list = list.filter(CardListFilter.creatures);
|
||||
|
||||
if (list.isEmpty()) {
|
||||
AllZone.getStack().addSimultaneousStackEntry(ability);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (src.getController().isHuman()) {
|
||||
Object o = GuiUtils.getChoiceOptional("Select target card", list.toArray());
|
||||
if (o != null) {
|
||||
ability.setTargetCard((Card) o);
|
||||
AllZone.getStack().addSimultaneousStackEntry(ability);
|
||||
|
||||
}
|
||||
} //if
|
||||
else { //computer
|
||||
Card best = CardFactoryUtil.AI_getBestCreature(list);
|
||||
ability.setTargetCard(best);
|
||||
AllZone.getStack().addSimultaneousStackEntry(ability);
|
||||
|
||||
}
|
||||
} //execute()
|
||||
}; //Command
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Sword of Light and Shadow - You gain 3 life and you may return ");
|
||||
sb.append("up to one target creature card from your graveyard to your hand");
|
||||
ability.setStackDescription(sb.toString());
|
||||
|
||||
res.execute();
|
||||
}
|
||||
|
||||
//this is for cards like Sengir Vampire
|
||||
@@ -898,15 +835,6 @@ public final class GameActionUtil {
|
||||
}
|
||||
}
|
||||
|
||||
if (c.isEquipped()) {
|
||||
for (Card equip : c.getEquippedBy()) {
|
||||
if (equip.getName().equals("Sword of Light and Shadow")) {
|
||||
GameActionUtil.executeSwordOfLightAndShadowEffects(equip);
|
||||
}
|
||||
}
|
||||
} //isEquipped
|
||||
|
||||
|
||||
if (c.getName().equals("Scalpelexis")) {
|
||||
playerCombatDamage_Scalpelexis(c);
|
||||
} else if (c.getName().equals("Spawnwrithe")) {
|
||||
@@ -917,9 +845,6 @@ public final class GameActionUtil {
|
||||
execute_Celestial_Mantle(c);
|
||||
}
|
||||
|
||||
//Unused variable
|
||||
//c.setDealtCombatDmgToOppThisTurn(true);
|
||||
|
||||
} //executeCombatDamageToPlayerEffects
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user