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/TriggerLifeGained.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/TriggerSacrificed.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.
|
||||
SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ Each | LifeAmount$ 1 | SubAbility$ DBPutCounter
|
||||
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:Picture:http://www.wizards.com/global/images/magic/general/blood_tyrant.jpg
|
||||
SetInfo:CFX|Rare|http://magiccards.info/scans/en/cfx/99.jpg
|
||||
|
||||
@@ -22,7 +22,8 @@ PT:13/13
|
||||
K:Flying
|
||||
K:Trample
|
||||
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
|
||||
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.
|
||||
|
||||
@@ -22,6 +22,8 @@ import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
|
||||
@@ -908,7 +910,10 @@ public class GameAction {
|
||||
// award loses as SBE
|
||||
for (Player p : game.getPlayers() ) {
|
||||
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),
|
||||
Discarded(TriggerDiscarded.class),
|
||||
Shuffled(TriggerShuffled.class),
|
||||
LandPlayed(TriggerLandPlayed.class);
|
||||
LandPlayed(TriggerLandPlayed.class),
|
||||
LosesGame(TriggerLosesGame.class);
|
||||
|
||||
private final Class<? extends Trigger> classTrigger;
|
||||
private TriggerType(Class<? extends Trigger> clasz) {
|
||||
|
||||
Reference in New Issue
Block a user