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/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/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/TriggerType.java -text
|
||||
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/arbor_colossus.txt -text
|
||||
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_lightning.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.SpellAbilityEffect;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
|
||||
public class CleanUpEffect extends SpellAbilityEffect {
|
||||
@@ -26,6 +27,11 @@ public class CleanUpEffect extends SpellAbilityEffect {
|
||||
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")) {
|
||||
source.clearImprintedCards();
|
||||
game.getCardState(source).clearImprintedCards();
|
||||
|
||||
@@ -443,6 +443,10 @@ public class PhaseHandler implements java.io.Serializable {
|
||||
bPreventCombatDamageThisTurn = false;
|
||||
if (!bRepeatCleanup) {
|
||||
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;
|
||||
// Play the End Turn sound
|
||||
|
||||
@@ -1825,6 +1825,10 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
if (equals(sourceController) || isOpponentOf(sourceController)) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("Active")) {
|
||||
if (!equals(game.getPhaseHandler().getPlayerTurn())) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("NonActive")) {
|
||||
if (equals(game.getPhaseHandler().getPlayerTurn())) {
|
||||
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),
|
||||
TapsForMana(TriggerTapsForMana.class),
|
||||
Transformed(TriggerTransformed.class),
|
||||
TurnBegin(TriggerTurnBegin.class),
|
||||
TurnFaceUp(TriggerTurnFaceUp.class),
|
||||
Unequip(TriggerUnequip.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