mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
- Added Soul Sculptor
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -12267,6 +12267,7 @@ forge-gui/res/cardsfolder/s/soul_ransom.txt -text
|
||||
forge-gui/res/cardsfolder/s/soul_reap.txt -text
|
||||
forge-gui/res/cardsfolder/s/soul_rend.txt svneol=native#text/plain
|
||||
forge-gui/res/cardsfolder/s/soul_scourge.txt svneol=native#text/plain
|
||||
forge-gui/res/cardsfolder/s/soul_sculptor.txt -text
|
||||
forge-gui/res/cardsfolder/s/soul_seizer_ghastly_haunting.txt -text
|
||||
forge-gui/res/cardsfolder/s/soul_shepherd.txt svneol=native#text/plain
|
||||
forge-gui/res/cardsfolder/s/soul_shred.txt svneol=native#text/plain
|
||||
|
||||
@@ -299,6 +299,8 @@ public class AnimateEffect extends AnimateEffectBase {
|
||||
}
|
||||
} else if (sa.hasParam("UntilControllerNextUntap")) {
|
||||
game.getUntap().addUntil(c.getController(), unanimate);
|
||||
} else if (sa.hasParam("UntilAPlayerCastSpell")) {
|
||||
game.getStack().addCastCommand(sa.getParam("UntilAPlayerCastSpell"), unanimate);
|
||||
} else if (sa.hasParam("UntilYourNextTurn")) {
|
||||
game.getCleanup().addUntil(source.getController(), unanimate);
|
||||
} else {
|
||||
|
||||
@@ -19,6 +19,9 @@ package forge.game.zone;
|
||||
|
||||
import com.esotericsoftware.minlog.Log;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import forge.GameCommand;
|
||||
import forge.card.mana.ManaCost;
|
||||
import forge.game.Game;
|
||||
import forge.game.GameLogEntryType;
|
||||
@@ -46,6 +49,7 @@ import forge.game.trigger.Trigger;
|
||||
import forge.game.trigger.TriggerType;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.LinkedBlockingDeque;
|
||||
|
||||
|
||||
@@ -71,6 +75,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
||||
private final List<Card> thisTurnCast = new ArrayList<Card>();
|
||||
private List<Card> lastTurnCast = new ArrayList<Card>();
|
||||
private Card curResolvingCard = null;
|
||||
private final HashMap<String, List<GameCommand>> commandList = new HashMap<String, List<GameCommand>>();
|
||||
|
||||
private final Game game;
|
||||
|
||||
@@ -399,6 +404,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
||||
// Run SpellCast triggers
|
||||
if (sp.isSpell()) {
|
||||
game.getTriggerHandler().runTrigger(TriggerType.SpellCast, runParams, true);
|
||||
this.executeCastCommand(si.getSpellAbility().getHostCard());
|
||||
}
|
||||
|
||||
// Run AbilityCast triggers
|
||||
@@ -859,6 +865,29 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
||||
return this.lastTurnCast;
|
||||
}
|
||||
|
||||
public final void addCastCommand(final String valid, final GameCommand c) {
|
||||
if (this.commandList.containsKey(valid)) {
|
||||
this.commandList.get(valid).add(0, c);
|
||||
} else {
|
||||
this.commandList.put(valid, Lists.newArrayList(c));
|
||||
}
|
||||
}
|
||||
|
||||
private void executeCastCommand(final Card cast) {
|
||||
for (Entry<String, List<GameCommand>> ev : this.commandList.entrySet()) {
|
||||
if (cast.isType(ev.getKey())) {
|
||||
this.execute(ev.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void execute(final List<GameCommand> c) {
|
||||
final int length = c.size();
|
||||
for (int i = 0; i < length; i++) {
|
||||
c.remove(0).run();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if is resolving.
|
||||
*
|
||||
|
||||
8
forge-gui/res/cardsfolder/s/soul_sculptor.txt
Normal file
8
forge-gui/res/cardsfolder/s/soul_sculptor.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Name:Soul Sculptor
|
||||
ManaCost:2 W
|
||||
Types:Creature Human
|
||||
PT:1/1
|
||||
A:AB$ Animate | Cost$ 1 W T | ValidTgts$ Creature | Types$ Enchantment | RemoveAllAbilities$ True | OverwriteTypes$ True | KeepSupertypes$ True | UntilAPlayerCastSpell$ Creature | SpellDescription$ Target creature becomes an enchantment and loses all abilities until a player casts a creature spell.
|
||||
SVar:RemAIDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/soul_sculptor.jpg
|
||||
Oracle:{1}{W}, {T}: Target creature becomes an enchantment and loses all abilities until a player casts a creature spell.
|
||||
Reference in New Issue
Block a user