From 679c0fea03b76e65015ed83e4e409e7cd5b360cf Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 2 Sep 2013 08:00:41 +0000 Subject: [PATCH] - THS: Added Flamespeaker Adept (TriggerScry) --- .gitattributes | 1 + .../card/ability/effects/ScryEffect.java | 5 ++ .../StaticAbilityCostChange.java | 1 - .../java/forge/card/trigger/TriggerScry.java | 68 +++++++++++++++++++ .../java/forge/card/trigger/TriggerType.java | 1 + src/main/java/forge/game/GameAction.java | 1 - src/main/java/forge/game/GameNew.java | 5 -- .../controllers/CEditorCommander.java | 1 - .../gui/home/variant/CSubmenuCommander.java | 10 --- .../gui/home/variant/VSubmenuCommander.java | 11 --- 10 files changed, 75 insertions(+), 29 deletions(-) create mode 100644 src/main/java/forge/card/trigger/TriggerScry.java diff --git a/.gitattributes b/.gitattributes index af8fca7f78a..41d68eefdcb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -14640,6 +14640,7 @@ src/main/java/forge/card/trigger/TriggerPlanarDice.java -text src/main/java/forge/card/trigger/TriggerPlaneswalkedFrom.java -text src/main/java/forge/card/trigger/TriggerPlaneswalkedTo.java -text src/main/java/forge/card/trigger/TriggerSacrificed.java svneol=native#text/plain +src/main/java/forge/card/trigger/TriggerScry.java -text src/main/java/forge/card/trigger/TriggerSetInMotion.java -text src/main/java/forge/card/trigger/TriggerShuffled.java svneol=native#text/plain src/main/java/forge/card/trigger/TriggerSpellAbilityCast.java svneol=native#text/plain diff --git a/src/main/java/forge/card/ability/effects/ScryEffect.java b/src/main/java/forge/card/ability/effects/ScryEffect.java index 2b7ef554f32..27f3ea8a9dd 100644 --- a/src/main/java/forge/card/ability/effects/ScryEffect.java +++ b/src/main/java/forge/card/ability/effects/ScryEffect.java @@ -2,6 +2,7 @@ package forge.card.ability.effects; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -11,6 +12,7 @@ import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityEffect; import forge.card.spellability.SpellAbility; import forge.card.spellability.TargetRestrictions; +import forge.card.trigger.TriggerType; import forge.game.player.Player; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; @@ -90,6 +92,9 @@ public class ScryEffect extends SpellAbilityEffect { p.getGame().getAction().moveToLibrary(c); } } + final HashMap runParams = new HashMap(); + runParams.put("Player", p); + p.getGame().getTriggerHandler().runTrigger(TriggerType.Scry, runParams, false); } } diff --git a/src/main/java/forge/card/staticability/StaticAbilityCostChange.java b/src/main/java/forge/card/staticability/StaticAbilityCostChange.java index b6ca2841c6e..29014a1a715 100644 --- a/src/main/java/forge/card/staticability/StaticAbilityCostChange.java +++ b/src/main/java/forge/card/staticability/StaticAbilityCostChange.java @@ -20,7 +20,6 @@ package forge.card.staticability; import java.util.HashMap; import forge.Card; -import forge.card.ability.AbilityUtils; import forge.card.cardfactory.CardFactoryUtil; import forge.card.mana.ManaCostBeingPaid; import forge.card.mana.ManaCostShard; diff --git a/src/main/java/forge/card/trigger/TriggerScry.java b/src/main/java/forge/card/trigger/TriggerScry.java new file mode 100644 index 00000000000..4ada333a6a0 --- /dev/null +++ b/src/main/java/forge/card/trigger/TriggerScry.java @@ -0,0 +1,68 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.card.trigger; + +import forge.Card; +import forge.card.spellability.SpellAbility; + +/** + *

+ * Trigger_Scry class. + *

+ * + * @author Forge + * @version $Id: TriggerScry.java 21543 2013-05-19 21:35:20Z Max mtg $ + */ +public class TriggerScry extends Trigger { + + /** + *

+ * Constructor for Trigger_Scry. + *

+ * + * @param params + * a {@link java.util.HashMap} object. + * @param host + * a {@link forge.Card} object. + * @param intrinsic + * the intrinsic + */ + public TriggerScry(final java.util.Map params, final Card host, final boolean intrinsic) { + super(params, host, intrinsic); + } + + /** {@inheritDoc} */ + @Override + public final boolean performTest(final java.util.Map runParams2) { + if (this.mapParams.containsKey("ValidPlayer")) { + if (!matchesValid(runParams2.get("Player"), this.mapParams.get("ValidPlayer").split(","), + this.getHostCard())) { + return false; + } + } + + return true; + } + + + /** {@inheritDoc} */ + @Override + public final void setTriggeringObjects(final SpellAbility sa) { + sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + } +} diff --git a/src/main/java/forge/card/trigger/TriggerType.java b/src/main/java/forge/card/trigger/TriggerType.java index 1d9adccc6fe..cc979e2a494 100644 --- a/src/main/java/forge/card/trigger/TriggerType.java +++ b/src/main/java/forge/card/trigger/TriggerType.java @@ -50,6 +50,7 @@ public enum TriggerType { PlaneswalkedFrom(TriggerPlaneswalkedFrom.class), PlaneswalkedTo(TriggerPlaneswalkedTo.class), Sacrificed(TriggerSacrificed.class), + Scry(TriggerScry.class), SetInMotion(TriggerSetInMotion.class), Shuffled(TriggerShuffled.class), SpellAbilityCast(TriggerSpellAbilityCast.class), diff --git a/src/main/java/forge/game/GameAction.java b/src/main/java/forge/game/GameAction.java index 5ff834cdc2b..4b8557b7a7c 100644 --- a/src/main/java/forge/game/GameAction.java +++ b/src/main/java/forge/game/GameAction.java @@ -24,7 +24,6 @@ import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.List; -import java.util.Map; import java.util.Map.Entry; import java.util.Set; diff --git a/src/main/java/forge/game/GameNew.java b/src/main/java/forge/game/GameNew.java index db7222df6ea..2c9eeecb76d 100644 --- a/src/main/java/forge/game/GameNew.java +++ b/src/main/java/forge/game/GameNew.java @@ -20,12 +20,7 @@ import forge.CardLists; import forge.CardPredicates; import forge.GameLogEntryType; import forge.card.CardDb; -import forge.card.ability.AbilityFactory; import forge.card.cardfactory.CardFactoryUtil; -import forge.card.replacement.ReplacementEffect; -import forge.card.replacement.ReplacementHandler; -import forge.card.spellability.SpellAbility; -import forge.card.staticability.StaticAbility; import forge.card.trigger.Trigger; import forge.card.trigger.TriggerHandler; import forge.deck.CardPool; diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java index 07b75c4f50e..d1baf5c694e 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java @@ -39,7 +39,6 @@ import forge.gui.framework.DragCell; import forge.gui.framework.EDocID; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.itemmanager.CardManager; -import forge.gui.toolbox.itemmanager.ItemManager; import forge.gui.toolbox.itemmanager.SItemManagerIO; import forge.gui.toolbox.itemmanager.SItemManagerUtil; import forge.gui.toolbox.itemmanager.SItemManagerIO.EditorPreference; diff --git a/src/main/java/forge/gui/home/variant/CSubmenuCommander.java b/src/main/java/forge/gui/home/variant/CSubmenuCommander.java index 49ba373c1fb..2ef9f239ff6 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuCommander.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuCommander.java @@ -9,15 +9,11 @@ import java.util.Random; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; - import forge.Command; import forge.FThreads; import forge.Singletons; import forge.control.FControl; import forge.deck.Deck; -import forge.deck.DeckSection; import forge.game.GameType; import forge.game.Match; import forge.game.RegisteredPlayer; @@ -26,15 +22,9 @@ import forge.gui.GuiDialog; import forge.gui.SOverlayUtils; import forge.gui.deckeditor.CDeckEditorUI; import forge.gui.deckeditor.controllers.CEditorCommander; -import forge.gui.deckeditor.controllers.CEditorVariant; -import forge.gui.framework.EDocID; import forge.gui.framework.ICDoc; -import forge.gui.toolbox.special.FDeckChooser; -import forge.item.PaperCard; import forge.net.FServer; import forge.net.Lobby; -import forge.properties.ForgePreferences; -import forge.properties.ForgePreferences.FPref; import forge.util.MyRandom; /** diff --git a/src/main/java/forge/gui/home/variant/VSubmenuCommander.java b/src/main/java/forge/gui/home/variant/VSubmenuCommander.java index 0c7d2b9d2c7..403b73ea8db 100644 --- a/src/main/java/forge/gui/home/variant/VSubmenuCommander.java +++ b/src/main/java/forge/gui/home/variant/VSubmenuCommander.java @@ -8,19 +8,13 @@ import java.util.Vector; import javax.swing.ButtonGroup; import javax.swing.JButton; -import javax.swing.JCheckBox; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.ScrollPaneConstants; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; - import net.miginfocom.swing.MigLayout; import forge.Singletons; -import forge.card.CardDb; import forge.deck.Deck; -import forge.gui.CardDetailPanel; import forge.gui.framework.DragCell; import forge.gui.framework.DragTab; import forge.gui.framework.EDocID; @@ -29,7 +23,6 @@ import forge.gui.home.IVSubmenu; import forge.gui.home.LblHeader; import forge.gui.home.StartButton; import forge.gui.home.VHomeUI; -import forge.gui.toolbox.FCheckBox; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FList; import forge.gui.toolbox.FPanel; @@ -37,10 +30,6 @@ import forge.gui.toolbox.FRadioButton; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FTabbedPane; -import forge.gui.toolbox.special.FDeckChooser; -import forge.item.PaperCard; -import forge.item.IPaperCard; -import forge.model.FModel; /** * Assembles Swing components of constructed submenu singleton.