mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
*Added LosesGame trigger.
*Added trigger to Blood Tyrant and Withengar Unbound (Blood Tyrant still needs it's first trigger corrected)
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -12569,6 +12569,7 @@ src/main/java/forge/card/trigger/TriggerHandler.java svneol=native#text/plain
|
|||||||
src/main/java/forge/card/trigger/TriggerLandPlayed.java svneol=native#text/plain
|
src/main/java/forge/card/trigger/TriggerLandPlayed.java svneol=native#text/plain
|
||||||
src/main/java/forge/card/trigger/TriggerLifeGained.java svneol=native#text/plain
|
src/main/java/forge/card/trigger/TriggerLifeGained.java svneol=native#text/plain
|
||||||
src/main/java/forge/card/trigger/TriggerLifeLost.java svneol=native#text/plain
|
src/main/java/forge/card/trigger/TriggerLifeLost.java svneol=native#text/plain
|
||||||
|
src/main/java/forge/card/trigger/TriggerLosesGame.java -text
|
||||||
src/main/java/forge/card/trigger/TriggerPhase.java svneol=native#text/plain
|
src/main/java/forge/card/trigger/TriggerPhase.java svneol=native#text/plain
|
||||||
src/main/java/forge/card/trigger/TriggerSacrificed.java svneol=native#text/plain
|
src/main/java/forge/card/trigger/TriggerSacrificed.java svneol=native#text/plain
|
||||||
src/main/java/forge/card/trigger/TriggerShuffled.java svneol=native#text/plain
|
src/main/java/forge/card/trigger/TriggerShuffled.java svneol=native#text/plain
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ K:Trample
|
|||||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ At the beginning of your upkeep, each player loses 1 life. Put a +1/+1 counter on CARDNAME for each 1 life lost this way.
|
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ At the beginning of your upkeep, each player loses 1 life. Put a +1/+1 counter on CARDNAME for each 1 life lost this way.
|
||||||
SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ Each | LifeAmount$ 1 | SubAbility$ DBPutCounter
|
SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ Each | LifeAmount$ 1 | SubAbility$ DBPutCounter
|
||||||
SVar:DBPutCounter:DB$PutCounter | Cost$ 0 | CounterType$ P1P1 | CounterNum$ 2
|
SVar:DBPutCounter:DB$PutCounter | Cost$ 0 | CounterType$ P1P1 | CounterNum$ 2
|
||||||
|
T:Mode$ LosesGame | Execute$ TrigCounter | TriggerDescription$ Whenever a player loses the game, put thirteen +1/+1 counters on CARDNAME.
|
||||||
|
SVar:TrigCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 13
|
||||||
SVar:Rarity:Rare
|
SVar:Rarity:Rare
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/blood_tyrant.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/blood_tyrant.jpg
|
||||||
SetInfo:CFX|Rare|http://magiccards.info/scans/en/cfx/99.jpg
|
SetInfo:CFX|Rare|http://magiccards.info/scans/en/cfx/99.jpg
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ PT:13/13
|
|||||||
K:Flying
|
K:Flying
|
||||||
K:Trample
|
K:Trample
|
||||||
K:Intimidate
|
K:Intimidate
|
||||||
# Whenever a player loses the game, put thirteen +1/+1 counters on Withengar Unbound. (not implemented)
|
T:Mode$ LosesGame | Execute$ TrigCounter | TriggerDescription$ Whenever a player loses the game, put thirteen +1/+1 counters on CARDNAME.
|
||||||
|
SVar:TrigCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 13
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/withengar_unbound.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/withengar_unbound.jpg
|
||||||
SetInfo:DKA|Mythic|http://magiccards.info/scans/en/dka/147b.jpg
|
SetInfo:DKA|Mythic|http://magiccards.info/scans/en/dka/147b.jpg
|
||||||
Oracle:Flying, intimidate, trample\nWhenever a player loses the game, put thirteen +1/+1 counters on Withengar Unbound.
|
Oracle:Flying, intimidate, trample\nWhenever a player loses the game, put thirteen +1/+1 counters on Withengar Unbound.
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ import java.util.Collections;
|
|||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
|
|
||||||
@@ -908,7 +910,10 @@ public class GameAction {
|
|||||||
// award loses as SBE
|
// award loses as SBE
|
||||||
for (Player p : game.getPlayers() ) {
|
for (Player p : game.getPlayers() ) {
|
||||||
if ( Player.Predicates.NOT_LOST.apply(p) && p.checkLoseCondition() ) { // this will set appropriate outcomes
|
if ( Player.Predicates.NOT_LOST.apply(p) && p.checkLoseCondition() ) { // this will set appropriate outcomes
|
||||||
// you may fire a trigger here
|
// Run triggers
|
||||||
|
final Map<String, Object> runParams = new TreeMap<String, Object>();
|
||||||
|
runParams.put("Player", p);
|
||||||
|
Singletons.getModel().getGame().getTriggerHandler().runTrigger(TriggerType.LosesGame, runParams);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
60
src/main/java/forge/card/trigger/TriggerLosesGame.java
Normal file
60
src/main/java/forge/card/trigger/TriggerLosesGame.java
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
package forge.card.trigger;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import forge.Card;
|
||||||
|
import forge.card.TriggerReplacementBase;
|
||||||
|
import forge.card.spellability.SpellAbility;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: Write javadoc for this type.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class TriggerLosesGame extends Trigger {
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Constructor for Trigger_Shuffled.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param params
|
||||||
|
* a {@link java.util.HashMap} object.
|
||||||
|
* @param host
|
||||||
|
* a {@link forge.Card} object.
|
||||||
|
* @param intrinsic
|
||||||
|
* the intrinsic
|
||||||
|
*/
|
||||||
|
public TriggerLosesGame(final HashMap<String, String> params, final Card host, final boolean intrinsic) {
|
||||||
|
super(params, host, intrinsic);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** {@inheritDoc} */
|
||||||
|
@Override
|
||||||
|
public final boolean performTest(final java.util.Map<String, Object> runParams2) {
|
||||||
|
if (this.getMapParams().containsKey("ValidPlayer")) {
|
||||||
|
if (!matchesValid(runParams2.get("Player"), this.getMapParams().get("ValidPlayer").split(","),
|
||||||
|
this.getHostCard())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** {@inheritDoc} */
|
||||||
|
@Override
|
||||||
|
public final Trigger getCopy() {
|
||||||
|
final Trigger copy = new TriggerLosesGame(this.getMapParams(), this.getHostCard(), this.isIntrinsic());
|
||||||
|
if (this.getOverridingAbility() != null) {
|
||||||
|
copy.setOverridingAbility(this.getOverridingAbility());
|
||||||
|
}
|
||||||
|
|
||||||
|
copyFieldsTo(copy);
|
||||||
|
return copy;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** {@inheritDoc} */
|
||||||
|
@Override
|
||||||
|
public final void setTriggeringObjects(final SpellAbility sa) {
|
||||||
|
sa.setTriggeringObject("Player", this.getRunParams().get("Player"));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -46,7 +46,8 @@ public enum TriggerType {
|
|||||||
Drawn(TriggerDrawn.class),
|
Drawn(TriggerDrawn.class),
|
||||||
Discarded(TriggerDiscarded.class),
|
Discarded(TriggerDiscarded.class),
|
||||||
Shuffled(TriggerShuffled.class),
|
Shuffled(TriggerShuffled.class),
|
||||||
LandPlayed(TriggerLandPlayed.class);
|
LandPlayed(TriggerLandPlayed.class),
|
||||||
|
LosesGame(TriggerLosesGame.class);
|
||||||
|
|
||||||
private final Class<? extends Trigger> classTrigger;
|
private final Class<? extends Trigger> classTrigger;
|
||||||
private TriggerType(Class<? extends Trigger> clasz) {
|
private TriggerType(Class<? extends Trigger> clasz) {
|
||||||
|
|||||||
Reference in New Issue
Block a user