mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
- Adding Arboria (Card remembers which players can be attacked, instead of looking things up through the engine)
This commit is contained in:
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -705,6 +705,7 @@ forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java svneol=
|
|||||||
forge-game/src/main/java/forge/game/trigger/TriggerTaps.java svneol=native#text/plain
|
forge-game/src/main/java/forge/game/trigger/TriggerTaps.java svneol=native#text/plain
|
||||||
forge-game/src/main/java/forge/game/trigger/TriggerTapsForMana.java svneol=native#text/plain
|
forge-game/src/main/java/forge/game/trigger/TriggerTapsForMana.java svneol=native#text/plain
|
||||||
forge-game/src/main/java/forge/game/trigger/TriggerTransformed.java -text
|
forge-game/src/main/java/forge/game/trigger/TriggerTransformed.java -text
|
||||||
|
forge-game/src/main/java/forge/game/trigger/TriggerTurnBegin.java -text
|
||||||
forge-game/src/main/java/forge/game/trigger/TriggerTurnFaceUp.java svneol=native#text/plain
|
forge-game/src/main/java/forge/game/trigger/TriggerTurnFaceUp.java svneol=native#text/plain
|
||||||
forge-game/src/main/java/forge/game/trigger/TriggerType.java -text
|
forge-game/src/main/java/forge/game/trigger/TriggerType.java -text
|
||||||
forge-game/src/main/java/forge/game/trigger/TriggerUnequip.java svneol=native#text/plain
|
forge-game/src/main/java/forge/game/trigger/TriggerUnequip.java svneol=native#text/plain
|
||||||
@@ -1892,6 +1893,7 @@ forge-gui/res/cardsfolder/a/arbiter_of_knollridge.txt svneol=native#text/plain
|
|||||||
forge-gui/res/cardsfolder/a/arbiter_of_the_ideal.txt -text
|
forge-gui/res/cardsfolder/a/arbiter_of_the_ideal.txt -text
|
||||||
forge-gui/res/cardsfolder/a/arbor_colossus.txt -text
|
forge-gui/res/cardsfolder/a/arbor_colossus.txt -text
|
||||||
forge-gui/res/cardsfolder/a/arbor_elf.txt svneol=native#text/plain
|
forge-gui/res/cardsfolder/a/arbor_elf.txt svneol=native#text/plain
|
||||||
|
forge-gui/res/cardsfolder/a/arboria.txt -text
|
||||||
forge-gui/res/cardsfolder/a/arc_blade.txt svneol=native#text/plain
|
forge-gui/res/cardsfolder/a/arc_blade.txt svneol=native#text/plain
|
||||||
forge-gui/res/cardsfolder/a/arc_lightning.txt svneol=native#text/plain
|
forge-gui/res/cardsfolder/a/arc_lightning.txt svneol=native#text/plain
|
||||||
forge-gui/res/cardsfolder/a/arc_mage.txt svneol=native#text/plain
|
forge-gui/res/cardsfolder/a/arc_mage.txt svneol=native#text/plain
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import forge.game.Game;
|
|||||||
import forge.game.ability.AbilityUtils;
|
import forge.game.ability.AbilityUtils;
|
||||||
import forge.game.ability.SpellAbilityEffect;
|
import forge.game.ability.SpellAbilityEffect;
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
|
import forge.game.player.Player;
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
|
|
||||||
public class CleanUpEffect extends SpellAbilityEffect {
|
public class CleanUpEffect extends SpellAbilityEffect {
|
||||||
@@ -26,6 +27,11 @@ public class CleanUpEffect extends SpellAbilityEffect {
|
|||||||
source.removeRemembered(card);
|
source.removeRemembered(card);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (sa.hasParam("ForgetDefinedPlayer")) {
|
||||||
|
for (final Player player : AbilityUtils.getDefinedPlayers(source, sa.getParam("ForgetDefinedPlayer"), sa)) {
|
||||||
|
source.removeRemembered(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (sa.hasParam("ClearImprinted")) {
|
if (sa.hasParam("ClearImprinted")) {
|
||||||
source.clearImprintedCards();
|
source.clearImprintedCards();
|
||||||
game.getCardState(source).clearImprintedCards();
|
game.getCardState(source).clearImprintedCards();
|
||||||
|
|||||||
@@ -443,6 +443,10 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
bPreventCombatDamageThisTurn = false;
|
bPreventCombatDamageThisTurn = false;
|
||||||
if (!bRepeatCleanup) {
|
if (!bRepeatCleanup) {
|
||||||
setPlayerTurn(handleNextTurn());
|
setPlayerTurn(handleNextTurn());
|
||||||
|
// "Trigger" for begin turn to get around a phase skipping
|
||||||
|
final HashMap<String, Object> runParams = new HashMap<String, Object>();
|
||||||
|
runParams.put("Player", playerTurn);
|
||||||
|
game.getTriggerHandler().runTrigger(TriggerType.TurnBegin, runParams, false);
|
||||||
}
|
}
|
||||||
planarDiceRolledthisTurn = 0;
|
planarDiceRolledthisTurn = 0;
|
||||||
// Play the End Turn sound
|
// Play the End Turn sound
|
||||||
|
|||||||
@@ -1825,6 +1825,10 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
if (equals(sourceController) || isOpponentOf(sourceController)) {
|
if (equals(sourceController) || isOpponentOf(sourceController)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
} else if (property.equals("Active")) {
|
||||||
|
if (!equals(game.getPhaseHandler().getPlayerTurn())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
} else if (property.equals("NonActive")) {
|
} else if (property.equals("NonActive")) {
|
||||||
if (equals(game.getPhaseHandler().getPlayerTurn())) {
|
if (equals(game.getPhaseHandler().getPlayerTurn())) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package forge.game.trigger;
|
||||||
|
|
||||||
|
import forge.game.card.Card;
|
||||||
|
import forge.game.spellability.SpellAbility;
|
||||||
|
|
||||||
|
// Turn Begin isn't a "real" trigger, but is useful for Advanced Scripting Techniques
|
||||||
|
public class TriggerTurnBegin extends Trigger {
|
||||||
|
public TriggerTurnBegin(final java.util.Map<String, String> params, final Card host, final boolean intrinsic) {
|
||||||
|
super(params, host, intrinsic);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean performTest(final java.util.Map<String, Object> runParams2) {
|
||||||
|
if (this.mapParams.containsKey("ValidPlayer")) {
|
||||||
|
if (!matchesValid(runParams2.get("Player"), this.mapParams.get("ValidPlayer").split(","),
|
||||||
|
this.getHostCard())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void setTriggeringObjects(final SpellAbility sa) {
|
||||||
|
sa.setTriggeringObject("Player", this.getRunParams().get("Player"));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -69,6 +69,7 @@ public enum TriggerType {
|
|||||||
Taps(TriggerTaps.class),
|
Taps(TriggerTaps.class),
|
||||||
TapsForMana(TriggerTapsForMana.class),
|
TapsForMana(TriggerTapsForMana.class),
|
||||||
Transformed(TriggerTransformed.class),
|
Transformed(TriggerTransformed.class),
|
||||||
|
TurnBegin(TriggerTurnBegin.class),
|
||||||
TurnFaceUp(TriggerTurnFaceUp.class),
|
TurnFaceUp(TriggerTurnFaceUp.class),
|
||||||
Unequip(TriggerUnequip.class),
|
Unequip(TriggerUnequip.class),
|
||||||
Untaps(TriggerUntaps.class),
|
Untaps(TriggerUntaps.class),
|
||||||
|
|||||||
13
forge-gui/res/cardsfolder/a/arboria.txt
Normal file
13
forge-gui/res/cardsfolder/a/arboria.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Name:Arboria
|
||||||
|
ManaCost:2 G G
|
||||||
|
Types:World Enchantment
|
||||||
|
# Sorry for the double negative. Players can only be attacked if they did "something" on their last turn
|
||||||
|
S:Mode$ CantAttack | ValidCard$ Creature | Target$ Player.IsNotRemembered | Description$ Creatures can't attack a player unless that player cast a spell or put a nontoken permanent onto the battlefield during his or her last turn.
|
||||||
|
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player.Active+IsNotRemembered | Static$ True | Execute$ RememberCaster
|
||||||
|
SVar:RememberCaster:DB$ Pump | Defined$ TriggeredCardController | RememberObjects$ TriggeredCardController
|
||||||
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.ActivePlayerCtrl+nonToken | Static$ True | Execute$ RememberController
|
||||||
|
SVar:RememberController:DB$ Pump | Defined$ TriggeredCardController | RememberObjects$ TriggeredCardController
|
||||||
|
T:Mode$ TurnBegin | ValidPlayer$ Player | Execute$ ClearActivePlayer | Static$ True
|
||||||
|
SVar:ClearActivePlayer:DB$ Cleanup | ForgetDefinedPlayer$ ActivePlayer
|
||||||
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/arboria.jpg
|
||||||
|
Oracle:Creatures can't attack a player unless that player cast a spell or put a nontoken permanent onto the battlefield during his or her last turn.
|
||||||
Reference in New Issue
Block a user