@@ -1,15 +1,21 @@
|
||||
<pre style="font-size:80%">
|
||||
<b>Most recent update</b>
|
||||
- "Drawn to Its Power" can no longer adds burden if The Ring-Bearer was killed
|
||||
- Fixed an error in which the deck builder would not check for format legality after adding a site
|
||||
- Players may now kill characters if the cost of an action is to wound
|
||||
- "Drawn to Its Power" can no longer add a burden if The Ring-Bearer was killed
|
||||
- "The Witch-king, Deathless Lord" can now wound an ally twice if all Free Peoples characters are exhausted
|
||||
- "Nine-fingered Frodo and the Ring of Doom" can now remove one threat if there is one threat and no burdens
|
||||
- "Saved from the Fire" can no longer target the Ring-Bearer
|
||||
- "Throne of the Golden Hall" no longer allows a character to prevent its own wound by exerting
|
||||
- "Tower Troll" now has the correct prevention pop-up text
|
||||
- "Uruk Guard" and "Uruk-hai Guard" now announce the selected companion in chat
|
||||
- "Shelob, Her Ladyship" now announces the seclected companion in chat
|
||||
- "Shelob, Her Ladyship" now announces the selected companion in chat
|
||||
- "Safe Passage" now announces the selected keyword in chat
|
||||
- "Saruman, Of Many Colours" now announces the selected culture in chat
|
||||
- The Hobbit Draft League should no longer disappear from users' collections each server day
|
||||
- The Hobbit's "Goblin Song," "Great Goblin's Power," and "Azog, The Defiler" have errata text added
|
||||
- The Hobbit's "Gandalf, Leader of Dwarves," "Emeralds of Girion," "Better Than Nothing," and "Caught in a Sack" have been changed
|
||||
|
||||
|
||||
<b>21 June 2018</b>
|
||||
- Added Draft for Fellowship block, The Two Towers block, and The Hobbit
|
||||
@@ -38,12 +44,13 @@
|
||||
- "Brought Down from Inside" now properly allows the Free Peoples to transfer this condition at the start of each skirmish.
|
||||
- "Hope Comes" no longer triggers if a multi-phase event is played outside of a skirmish phase.
|
||||
- "Eye of Barad-Dur" can now use its response action.
|
||||
- "Above the Battlement" no longer allows players to play a stacked Besieger to play a [Sauron] Orc from discard.
|
||||
- "Above the Battlement" no longer allows players to play a stacked Besieger to play a SAURON Orc from discard.
|
||||
- "Eomer, Keeper of Oaths" no longer shuffles the deck twice.
|
||||
- The Hobbit's "Dawn Take You All" may now be used if all minions have only 1 vitality.
|
||||
- The Hobbit's "Gandalf, Leader of Dwarves" now properly discards 2 Dwarf followers to be played from discard.
|
||||
- The Hobbit's "Gandalf, Leader of Dwarves" and "Gandalf, Leader of the Company" are now properly wise.
|
||||
- The Hobbit's "He Gives Me Courage" no longer gives the Free Peoples the option to exert Gandalf if that player cannot exert a Wise ELVEN ally.
|
||||
- The Hobbit's "He Gives Me Courage" no longer gives the Free Peoples the option to exert Gandalf if that player cannot
|
||||
exert a Wise ELVEN ally.
|
||||
- The Hobbit's "Beorn, Skin-Changer" now properly prevents a Shadow player from discarding him while borne.
|
||||
- The Hobbit's "The Eagles Are Coming" now properly attaches a follower.
|
||||
- The Hobbit's "Trollshaw Forest" now always gives each player the opportunity to play a hand weapon.
|
||||
|
||||
@@ -104,7 +104,7 @@ var CardFilter = Class.extend({
|
||||
|
||||
this.fullFilterDiv = $("<div></div>");
|
||||
this.setSelect = $("<select style='width: 130px; font-size: 80%;'>"
|
||||
+ "<option value=''>All Sets</option>"
|
||||
+ "<option value='lotr'>All Sets</option>"
|
||||
+ "<option value='fotr_block'>Fellowship Block</option>"
|
||||
+ "<option value='ttt_block'>Towers Block</option>"
|
||||
+ "<option value='king_block'>King Block</option>"
|
||||
@@ -136,11 +136,11 @@ var CardFilter = Class.extend({
|
||||
+ "<option value='18'>18 - Treachery & Deceit</option>"
|
||||
+ "<option value='19'>19 - Ages End</option>"
|
||||
+ "<option value='20'>20 - Second Edition</option>"
|
||||
//Additional Hobbit Draft blocks
|
||||
+ "<option value='30'> The Hobbit: Main Deck</option>"
|
||||
+ "<option value='hobbit_tsr'> The Hobbit: The Short Rest</option>"
|
||||
//Additional Hobbit Draft blocks
|
||||
+ "<option value='30'> The Hobbit: Main Deck</option>"
|
||||
+ "<option value='hobbit_tsr'> The Hobbit: The Short Rest</option>"
|
||||
+ "</select>");
|
||||
this.nameInput = $("<input type='text' value='Card name' style='width: 130px; font-size: 70%;'>");
|
||||
this.nameInput = $("<input type='text' value='Card name' style='width: 110px; font-size: 70%;'>");
|
||||
this.sortSelect = $("<select style='width: 80px; font-size: 80%;'>"
|
||||
+ "<option value=''>Sort by:</option>"
|
||||
+ "<option value='name'>Name</option>"
|
||||
@@ -179,8 +179,6 @@ var CardFilter = Class.extend({
|
||||
+ "<input type='checkbox' id='ROHAN'/><label for='ROHAN' id='labelROHAN'><img src='images/cultures/rohan.png'/></label>"
|
||||
+ "<input type='checkbox' id='SHIRE'/><label for='SHIRE' id='labelSHIRE'><img src='images/cultures/shire.png'/></label>"
|
||||
+ "<input type='checkbox' id='GOLLUM'/><label for='GOLLUM' id='labelGOLLUM'><img src='images/cultures/gollum.png'/></label>"
|
||||
//Additional Hobbit Draft Free Peoples culture
|
||||
+ "<input type='checkbox' id='ESGAROTH'/><label for='ESGAROTH' id='labelESGAROTH'><img src='images/cultures/esgaroth.png'/></label>"
|
||||
+ "</div>");
|
||||
this.filterDiv.append("<div id='culture2'>"
|
||||
+ "<input type='checkbox' id='DUNLAND'/><label for='DUNLAND' id='labelDUNLAND'><img src='images/cultures/dunland.png'/></label>"
|
||||
@@ -192,7 +190,8 @@ var CardFilter = Class.extend({
|
||||
+ "<input type='checkbox' id='SAURON'/><label for='SAURON' id='labelSAURON'><img src='images/cultures/sauron.png'/></label>"
|
||||
+ "<input type='checkbox' id='URUK_HAI'/><label for='URUK_HAI' id='labelURUK_HAI'><img src='images/cultures/uruk_hai.png'/></label>"
|
||||
+ "<input type='checkbox' id='WRAITH'/><label for='WRAITH' id='labelWRAITH'><img src='images/cultures/wraith.png'/></label>"
|
||||
//Additional Hobbit Draft Shadow cultures
|
||||
//Additional Hobbit Draft cultures
|
||||
+ "<input type='checkbox' id='ESGAROTH'/><label for='ESGAROTH' id='labelESGAROTH'><img src='images/cultures/esgaroth.png'/></label>"
|
||||
+ "<input type='checkbox' id='GUNDABAD'/><label for='GUNDABAD' id='labelGUNDABAD'><img src='images/cultures/gundabad.png'/></label>"
|
||||
//+ "<input type='checkbox' id='MIRKWOOD'/><label for='MIRKWOOD' id='labelMIRKWOOD'><img src='images/cultures/mirkwood.png'/></label>"
|
||||
//+ "<input type='checkbox' id='SMAUG'/><label for='SMAUG' id='labelSMAUG'><img src='images/cultures/smaug.png'/></label>"
|
||||
@@ -295,15 +294,15 @@ var CardFilter = Class.extend({
|
||||
$("#keyword").change(filterOut);
|
||||
$("#type").change(filterOut);
|
||||
|
||||
//Additional Hobbit Draft labels
|
||||
//Additional Hobbit Draft labels
|
||||
$("#labelDWARVEN,#labelELVEN,#labelGANDALF,#labelGONDOR,#labelROHAN,#labelSHIRE,#labelGOLLUM,#labelDUNLAND,#labelISENGARD,#labelMEN,#labelMORIA,#labelORC,#labelRAIDER,#labelSAURON,#labelURUK_HAI,#labelWRAITH,#labelESGAROTH,#labelGUNDABAD").click(filterOut);
|
||||
},
|
||||
|
||||
layoutUi:function (x, y, width, height) {
|
||||
this.pageDiv.css({ position:"absolute", left:x, top:y, width:width, height:50 });
|
||||
this.pageDiv.css({ position:"absolute", left:x, top:y, width:width, height:34 });
|
||||
this.countSlider.css({width:width - 100});
|
||||
this.fullFilterDiv.css({position:"absolute", left:x, top:y + 50, width:width, height:30});
|
||||
this.filterDiv.css({ position:"absolute", left:x, top:y + 80, width:width, height:80 });
|
||||
this.fullFilterDiv.css({position:"absolute", left:x, top:y + 34, width:width, height:34});
|
||||
this.filterDiv.css({ position:"absolute", left:x, top:y + 68, width:width, height:80 });
|
||||
},
|
||||
|
||||
layoutPageUi: function(x, y, width) {
|
||||
|
||||
@@ -573,6 +573,7 @@ var GempLotrDeckBuildingUI = Class.extend({
|
||||
var cardDiv = createCardDiv(card.imageUrl, null, card.isFoil(), tokens, card.isPack(), card.hasErrata());
|
||||
cardDiv.data("card", card);
|
||||
container.append(cardDiv);
|
||||
this.deckDirty = true;
|
||||
return cardDiv;
|
||||
},
|
||||
|
||||
@@ -587,7 +588,6 @@ var GempLotrDeckBuildingUI = Class.extend({
|
||||
cardDiv.addClass("cardInDeck");
|
||||
that.showNormalFilter();
|
||||
that.layoutSpecialGroups();
|
||||
that.deckDirty = true;
|
||||
that.deckModified(true);
|
||||
};
|
||||
},
|
||||
|
||||
@@ -23,7 +23,7 @@ var hobbit = {
|
||||
'30_22': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Bard.png',
|
||||
'30_23': 'http://hobbitdraftgame.free.fr/Cards_Good_def/A_wizard_is_never_late.png',
|
||||
'30_24': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dawn_take_you_all.png',
|
||||
'30_25': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gandalf.png',
|
||||
'30_25': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Gandalf.png',
|
||||
'30_26': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gandalf2.png',
|
||||
'30_27': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gandalf3.png',
|
||||
'30_28': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gandalf4.png',
|
||||
@@ -59,7 +59,7 @@ var hobbit = {
|
||||
'30_58': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Smaug.png',
|
||||
'31_1': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dwarven_Axe.png',
|
||||
'31_2': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dwarven_Song.png',
|
||||
'31_3': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Emeralds_of_Girion.png',
|
||||
'31_3': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Emeralds_of_Girion.png',
|
||||
'31_4': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Great_Barricade.png',
|
||||
'31_5': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Mithril_Coat.png',
|
||||
'31_6': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Oakenshield.png',
|
||||
@@ -75,11 +75,11 @@ var hobbit = {
|
||||
'31_16': 'http://hobbitdraftgame.free.fr/Cards_Good_def/His_Wrath_Was_Redoubled.png',
|
||||
'31_17': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Radagast.png',
|
||||
'31_18': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Wizard_Staff.png',
|
||||
'31_19': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gollum_Better_Than_Nothing.png',
|
||||
'31_19': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Gollum_Better_Than_Nothing.png',
|
||||
'31_20': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gollum_Gollum.png',
|
||||
'31_21': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gollum_If_He_Loses.png',
|
||||
'31_22': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Riddles_in_the_Dark.png',
|
||||
'31_23': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Wargs_Azog.png',
|
||||
'31_23': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Wargs_Azog.png',
|
||||
'31_24': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Wargs_Bolg.png',
|
||||
'31_25': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Savage_Warg.png',
|
||||
'31_26': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Wargs_Threatening_Warg.png',
|
||||
@@ -89,9 +89,9 @@ var hobbit = {
|
||||
'31_30': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Goblin_Goblin_Runner.png',
|
||||
'31_31': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Goblin_Goblin_Scimitar.png',
|
||||
'31_32': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Goblin_Goblin_Sneak.png',
|
||||
'31_33': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Goblin_Song.png',
|
||||
'31_33': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Goblin_Song.png',
|
||||
'31_34': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Goblin_Goblin_Swarms.png',
|
||||
'31_35': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Goblin_Great_Goblin_s_power.png',
|
||||
'31_35': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Goblin_Great_Goblin_s_power.png',
|
||||
'31_36': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Goblin_The_Great_Goblin.png',
|
||||
'31_37': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Bolg_Servant.png',
|
||||
'31_38': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Acorn.png',
|
||||
@@ -121,7 +121,7 @@ var hobbit = {
|
||||
'31_62': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Spider_Spider_Nest.png',
|
||||
'31_63': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Spider_Wicked_Spider.png',
|
||||
'31_64': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Troll_Bert.png',
|
||||
'31_65': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Caught_In_A_Sack.png',
|
||||
'31_65': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Caught_In_A_Sack.png',
|
||||
'31_66': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Troll_Tom.png',
|
||||
'31_67': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Troll_Troll_Campfire.png',
|
||||
'31_68': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Troll_Troll_Knife.png',
|
||||
|
||||
@@ -278,7 +278,7 @@ public class PlayConditions {
|
||||
@Override
|
||||
public boolean visitPhysicalCard(PhysicalCard physicalCard) {
|
||||
if (filter.accepts(gameState, modifiersQuerying, physicalCard)
|
||||
&& modifiersQuerying.getVitality(gameState, physicalCard) > times
|
||||
&& modifiersQuerying.getVitality(gameState, physicalCard) >= times
|
||||
&& modifiersQuerying.canTakeWounds(gameState, (source != null)?Collections.singleton(source):Collections.<PhysicalCard>emptySet(), physicalCard, times))
|
||||
_woundableCount++;
|
||||
return _woundableCount >= count;
|
||||
|
||||
@@ -3,12 +3,14 @@ package com.gempukku.lotro.cards.set17.rohan;
|
||||
import com.gempukku.lotro.cards.AbstractPermanent;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.TriggerConditions;
|
||||
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
|
||||
import com.gempukku.lotro.cards.effects.PreventCardEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPreventCardEffect;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
||||
import com.gempukku.lotro.logic.effects.WoundCharactersEffect;
|
||||
@@ -16,7 +18,8 @@ import com.gempukku.lotro.logic.modifiers.CantBeAssignedToSkirmishModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -49,14 +52,24 @@ public class Card17_098 extends AbstractPermanent {
|
||||
public List<? extends ActivateCardAction> getOptionalInPlayBeforeActions(String playerId, LotroGame game, Effect effect, PhysicalCard self) {
|
||||
if (TriggerConditions.isGettingWounded(effect, game, Culture.ROHAN, Race.MAN)
|
||||
&& PlayConditions.canExert(self, game, Culture.ROHAN, Race.MAN)) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new AddTwilightEffect(self, 2));
|
||||
action.appendCost(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Culture.ROHAN, Race.MAN));
|
||||
action.appendEffect(
|
||||
new ChooseAndPreventCardEffect(self, (WoundCharactersEffect) effect, playerId, "Choose character to prevent wound to", Culture.ROHAN, Race.MAN));
|
||||
return Collections.singletonList(action);
|
||||
final WoundCharactersEffect woundEffect = (WoundCharactersEffect) effect;
|
||||
Collection<PhysicalCard> woundedCharacters = Filters.filter(woundEffect.getAffectedCardsMinusPrevented(game), game.getGameState(), game.getModifiersQuerying(), Culture.ROHAN, Race.MAN);
|
||||
List<ActivateCardAction> actions = new LinkedList<ActivateCardAction>();
|
||||
for (PhysicalCard woundedCharacter : woundedCharacters) {
|
||||
if (PlayConditions.canExert(self, game, Culture.ROHAN, Race.MAN, Filters.not(woundedCharacter))) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.setText("Prevent to " + GameUtils.getFullName(woundedCharacter));
|
||||
action.appendCost(
|
||||
new AddTwilightEffect(self, 2));
|
||||
action.appendCost(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Culture.ROHAN, Race.MAN, Filters.not(woundedCharacter)));
|
||||
action.appendEffect(
|
||||
new PreventCardEffect(woundEffect, woundedCharacter));
|
||||
actions.add(action);
|
||||
|
||||
}
|
||||
}
|
||||
return actions;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -3,23 +3,24 @@ package com.gempukku.lotro.cards.set30.gandalf;
|
||||
import com.gempukku.lotro.cards.AbstractCompanion;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.TriggerConditions;
|
||||
import com.gempukku.lotro.cards.effects.AddBurdenEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
|
||||
import com.gempukku.lotro.cards.effects.SelfExertEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseCardsFromDeckEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromHandEffect;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
|
||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
||||
import com.gempukku.lotro.logic.effects.DrawCardsEffect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -31,39 +32,49 @@ import java.util.List;
|
||||
* Strength: 7
|
||||
* Vitality: 4
|
||||
* Resistance: 6
|
||||
* Game Text: Wise. At the start of each of your turns, you may exert Gandalf to play a Dwarf companion
|
||||
* from your draw deck. Maneuver: Discard 2 Dwarf followers to play Gandalf from your discard pile.
|
||||
* Game Text: Wise. Each time you reconcile, you may draw 2 cards. Skirmish: Play a [GANDALF] skirmish
|
||||
* event and add a doubt to play a Dwarf from your draw deck. Skirmish: Play a [DWARVEN] skirmish
|
||||
* event to make an Orc skirmishing Bilbo strength -2.
|
||||
*/
|
||||
public class Card30_025 extends AbstractCompanion {
|
||||
public Card30_025() {
|
||||
super(4, 7, 4, 6, Culture.GANDALF, Race.WIZARD, null, "Gandalf", "Leader of Dwarves", true);
|
||||
super(2, 7, 4, 6, Culture.GANDALF, Race.WIZARD, null, "Gandalf", "Leader of Dwarves", true);
|
||||
addKeyword(Keyword.WISE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(final String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) {
|
||||
if (TriggerConditions.startOfTurn(game, effectResult)) {
|
||||
final OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
action.appendCost(
|
||||
new SelfExertEffect(action, self));
|
||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.reconciles(game, effectResult, playerId)) {
|
||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new ChooseAndPlayCardFromDeckEffect(self.getOwner(), Race.DWARF, CardType.COMPANION));
|
||||
new DrawCardsEffect(action, playerId, 2));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Action> getPhaseActionsFromDiscard(String playerId, LotroGame game, final PhysicalCard self) {
|
||||
if (PlayConditions.isPhase(game, Phase.MANEUVER)
|
||||
&& (PlayConditions.canDiscardFromPlay(self, game, 2, Race.DWARF, CardType.FOLLOWER))
|
||||
&& (PlayConditions.canPlayFromDiscard(playerId, game, self))) {
|
||||
ActivateCardAction replayGandalf = new ActivateCardAction(self);
|
||||
replayGandalf.appendCost(
|
||||
new ChooseAndDiscardCardsFromPlayEffect(replayGandalf, playerId, 2, 2, Race.DWARF, CardType.FOLLOWER));
|
||||
replayGandalf.appendEffect(
|
||||
new ChooseAndPlayCardFromDiscardEffect(playerId, game, self));
|
||||
return Collections.singletonList(replayGandalf);
|
||||
protected List<ActivateCardAction> getExtraInPlayPhaseActions(String playerId, LotroGame game, final PhysicalCard self) {
|
||||
List<ActivateCardAction> actions = new LinkedList<ActivateCardAction>();
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)) {
|
||||
|
||||
if (PlayConditions.canPlayFromHand(playerId, game, Culture.GANDALF, CardType.EVENT, Keyword.SKIRMISH)) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.setText("Play a [GANDALF] event");
|
||||
action.appendCost(new ChooseAndPlayCardFromHandEffect(playerId, game, Culture.GANDALF, CardType.EVENT, Keyword.SKIRMISH));
|
||||
action.appendCost(new AddBurdenEffect(playerId, self, 1));
|
||||
action.appendEffect(new ChooseAndPlayCardFromDeckEffect(self.getOwner(), Race.DWARF));
|
||||
actions.add(action);
|
||||
}
|
||||
if (PlayConditions.canPlayFromHand(playerId, game, Culture.DWARVEN, CardType.EVENT, Keyword.SKIRMISH)) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.setText("Play a [DWARVEN] event");
|
||||
action.appendCost(new ChooseAndPlayCardFromHandEffect(playerId, game, Culture.DWARVEN, CardType.EVENT, Keyword.SKIRMISH));
|
||||
action.appendEffect(new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, -2,
|
||||
CardType.MINION, Race.ORC, Filters.inSkirmishAgainst(Filters.name("Bilbo"))));
|
||||
actions.add(action);
|
||||
}
|
||||
return actions;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -2,20 +2,21 @@ package com.gempukku.lotro.cards.set31.dwarven;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractPermanent;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.effects.ChoiceEffect;
|
||||
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.cards.effects.PutCardFromStackedIntoHandEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndStackCardsFromHandEffect;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
||||
import com.gempukku.lotro.logic.effects.ChooseArbitraryCardsEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.TwilightCostModifier;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
@@ -26,54 +27,48 @@ import java.util.List;
|
||||
* Culture: Dwarven
|
||||
* Twilight Cost: 2
|
||||
* Type: Artifact • Support Area
|
||||
* Game Text: Fellowship: Exert an Elf to heal a Man. Regroup: Exert a Man and discard this artifact to play an Elf from
|
||||
* your draw deck or discard pile.
|
||||
* Game Text: Fellowship: Add (1) to take a card stacked here into hand. Regroup: Exert an ally to stack a [DWARVEN]
|
||||
* event from hand on Emeralds of Girion.
|
||||
*/
|
||||
public class Card31_003 extends AbstractPermanent {
|
||||
public Card31_003() {
|
||||
super(Side.FREE_PEOPLE, 2, CardType.ARTIFACT, Culture.DWARVEN, Zone.SUPPORT, "Emeralds of Girion", null, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected List<? extends Action> getExtraPhaseActions(String playerId, LotroGame game, final PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
|
||||
&& PlayConditions.canExert(self, game, Race.ELF)) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Race.ELF));
|
||||
action.appendEffect(
|
||||
new ChooseAndHealCharactersEffect(action, playerId, 1, 1, Race.MAN));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.REGROUP, self)
|
||||
&& PlayConditions.canExert(self, game, Race.MAN)) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Race.MAN));
|
||||
action.appendCost(
|
||||
new SelfDiscardEffect(self));
|
||||
List<Effect> possibleEffects = new LinkedList<Effect>();
|
||||
possibleEffects.add(
|
||||
new ChooseAndPlayCardFromDeckEffect(playerId, Race.ELF) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Play an Elf from your draw deck";
|
||||
}
|
||||
});
|
||||
if (PlayConditions.canPlayFromDiscard(playerId, game, Race.ELF)) {
|
||||
possibleEffects.add(
|
||||
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Race.ELF) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
|
||||
List<PhysicalCard> stackedCards = game.getGameState().getStackedCards(self);
|
||||
if (stackedCards.size() > 0) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new AddTwilightEffect(self, 1));
|
||||
action.appendEffect(
|
||||
new ChooseArbitraryCardsEffect(playerId, "Choose card", stackedCards, 1, 1) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Play an Elf from your discard pile";
|
||||
protected void cardsSelected(LotroGame game, Collection<PhysicalCard> selectedCards) {
|
||||
for (PhysicalCard selectedCard : selectedCards) {
|
||||
action.appendEffect(
|
||||
new PutCardFromStackedIntoHandEffect(selectedCard));
|
||||
}
|
||||
}
|
||||
});
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
action.appendEffect(
|
||||
new ChoiceEffect(action, playerId, possibleEffects));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.REGROUP, self)
|
||||
&& PlayConditions.canExert(self, game, CardType.ALLY)) {
|
||||
if (Filters.filter(game.getGameState().getHand(playerId), game.getGameState(), game.getModifiersQuerying(),
|
||||
Culture.DWARVEN, CardType.EVENT).size() > 0) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(new ChooseAndExertCharactersEffect(action, playerId, 1, 1, CardType.ALLY));
|
||||
action.appendEffect(
|
||||
new ChooseAndStackCardsFromHandEffect(action, playerId, 1, 1, self, Culture.DWARVEN));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package com.gempukku.lotro.cards.set31.gollum;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractEvent;
|
||||
import com.gempukku.lotro.cards.AbstractPermanent;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.actions.PlayEventAction;
|
||||
import com.gempukku.lotro.cards.TriggerConditions;
|
||||
import com.gempukku.lotro.cards.effects.AddBurdenEffect;
|
||||
import com.gempukku.lotro.cards.effects.ChoiceEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect;
|
||||
@@ -10,9 +11,15 @@ import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffec
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.GameState;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -21,44 +28,53 @@ import java.util.List;
|
||||
* Side: Shadow
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 0
|
||||
* Type: Event • Shadow
|
||||
* Game Text: Discard an orc to play Gollum from your draw deck or discard pile.
|
||||
* Type: Condition • Support Area
|
||||
* Game Text: While you can spot Gollum, each [GANDALF] event gains this cost: "add a doubt." At the end of
|
||||
* your Shadow phase, you may discard an Orc from play to play Gollum from your draw deck or discard pile.
|
||||
*/
|
||||
public class Card31_019 extends AbstractEvent {
|
||||
public class Card31_019 extends AbstractPermanent {
|
||||
public Card31_019() {
|
||||
super(Side.SHADOW, 0, Culture.GOLLUM, "Better Than Nothing", Phase.SHADOW);
|
||||
super(Side.SHADOW, 0, CardType.CONDITION, Culture.GOLLUM, Zone.SUPPORT, "Better Than Nothing", null, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int withTwilightRemoved, int twilightModifier, boolean ignoreRoamingPenalty, boolean ignoreCheckingDeadPile) {
|
||||
return super.checkPlayRequirements(playerId, game, self, withTwilightRemoved, twilightModifier, ignoreRoamingPenalty, ignoreCheckingDeadPile)
|
||||
&& PlayConditions.canDiscardFromPlay(self, game, Race.ORC);
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.played(game, effectResult, Filters.owner(game.getGameState().getCurrentPlayerId()), Culture.GANDALF, CardType.EVENT)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.appendEffect(new AddBurdenEffect(self.getOwner(), self, 1));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) {
|
||||
PlayEventAction action = new PlayEventAction(self);
|
||||
action.appendCost(
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Race.ORC));
|
||||
List<Effect> possibleEffects = new LinkedList<Effect>();
|
||||
possibleEffects.add(
|
||||
new ChooseAndPlayCardFromDeckEffect(playerId, Filters.gollum) {
|
||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(final String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.endOfPhase(game, effectResult, Phase.SHADOW)
|
||||
&& PlayConditions.canDiscardFromPlay(self, game, Race.ORC)) {
|
||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
action.appendCost(
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Race.ORC));
|
||||
List<Effect> possibleEffects = new LinkedList<Effect>();
|
||||
possibleEffects.add(
|
||||
new ChooseAndPlayCardFromDeckEffect(playerId, Filters.gollum) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Play Gollum from your draw deck";
|
||||
}
|
||||
});
|
||||
if (PlayConditions.canPlayFromDiscard(playerId, game, Filters.gollum)) {
|
||||
possibleEffects.add(
|
||||
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Filters.gollum) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Play Gollum from your draw deck";
|
||||
return "Play Gollum from your discard pile";
|
||||
}
|
||||
});
|
||||
if (PlayConditions.canPlayFromDiscard(playerId, game, Filters.gollum)) {
|
||||
possibleEffects.add(
|
||||
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Filters.gollum) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Play Gollum from your discard pile";
|
||||
}
|
||||
});
|
||||
}
|
||||
action.appendEffect(
|
||||
new ChoiceEffect(action, playerId, possibleEffects));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
action.appendEffect(
|
||||
new ChoiceEffect(action, playerId, possibleEffects));
|
||||
return action;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,8 +24,9 @@ import java.util.List;
|
||||
* Strength: 9
|
||||
* Vitality: 3
|
||||
* Site: 3
|
||||
* Game Text: Damage +1. Each time you play a mount, you may make the Free Peoples player exert a companion.
|
||||
* Game Text: Damage +1. Each time you play a mount, you may make the Free Peoples player exert a [DWARVEN] companion.
|
||||
*/
|
||||
|
||||
public class Card31_023 extends AbstractMinion {
|
||||
public Card31_023() {
|
||||
super(4, 9, 3, 3, Race.ORC, Culture.GUNDABAD, "Azog", "The Defiler", true);
|
||||
@@ -38,7 +39,7 @@ public class Card31_023 extends AbstractMinion {
|
||||
if (TriggerConditions.played(game, effectResult, PossessionClass.MOUNT)) {
|
||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new ChooseAndExertCharactersEffect(action, game.getGameState().getCurrentPlayerId(), 1, 1, CardType.COMPANION));
|
||||
new ChooseAndExertCharactersEffect(action, game.getGameState().getCurrentPlayerId(), 1, 1, CardType.COMPANION, Culture.DWARVEN));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.List;
|
||||
* Twilight Cost: 1
|
||||
* Type: Event
|
||||
* Game Text: You may exert The Great Goblin twice to play this event from your discard pile. Exert 2 Orcs
|
||||
* to discard a possession or artifact borne by a [DWARVEN] companion.
|
||||
* to discard a [DWARVEN] possession or [DWARVEN] artifact borne by a companion.
|
||||
*/
|
||||
public class Card31_033 extends AbstractEvent {
|
||||
public Card31_033() {
|
||||
@@ -43,7 +43,7 @@ public class Card31_033 extends AbstractEvent {
|
||||
action.appendCost(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 2, 2, Race.ORC));
|
||||
action.appendEffect(
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.or(CardType.POSSESSION, CardType.ARTIFACT), Filters.attachedTo(Filters.and(CardType.COMPANION, Race.DWARF))));
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.and(Culture.DWARVEN, Filters.or(CardType.POSSESSION, CardType.ARTIFACT)), Filters.attachedTo(CardType.COMPANION)));
|
||||
return action;
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ public class Card31_033 extends AbstractEvent {
|
||||
action.appendCost(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 2, 2, Race.ORC));
|
||||
action.appendEffect(
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.or(CardType.POSSESSION, CardType.ARTIFACT), Filters.attachedTo(Filters.and(CardType.COMPANION, Race.DWARF))));
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.and(Culture.DWARVEN, Filters.or(CardType.POSSESSION, CardType.ARTIFACT)), Filters.attachedTo(CardType.COMPANION)));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -3,7 +3,9 @@ package com.gempukku.lotro.cards.set31.moria;
|
||||
import com.gempukku.lotro.cards.AbstractPermanent;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.TriggerConditions;
|
||||
import com.gempukku.lotro.cards.effects.ChoiceEffect;
|
||||
import com.gempukku.lotro.cards.effects.PreventCardEffect;
|
||||
import com.gempukku.lotro.cards.effects.RemoveTwilightEffect;
|
||||
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
@@ -19,6 +21,7 @@ import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -28,8 +31,9 @@ import java.util.List;
|
||||
* Twilight Cost: 0
|
||||
* Type: Condition
|
||||
* Game Text: To play, spot a [MORIA] card. Each time you play a weapon, add (1). Response: If an Orc is
|
||||
* about to take a wound, discard this condition to prevent that wound.
|
||||
* about to take a wound, discard this condition or remove (3) to prevent that wound.
|
||||
*/
|
||||
|
||||
public class Card31_035 extends AbstractPermanent {
|
||||
public Card31_035() {
|
||||
super(Side.SHADOW, 0, CardType.CONDITION, Culture.MORIA, Zone.SUPPORT, "Great Goblin's Power");
|
||||
@@ -52,23 +56,30 @@ public class Card31_035 extends AbstractPermanent {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getOptionalInPlayBeforeActions(String playerId, LotroGame game, final Effect effect, final PhysicalCard self) {
|
||||
public List<? extends ActivateCardAction> getOptionalInPlayBeforeActions(String playerId, LotroGame game, Effect effect, PhysicalCard self) {
|
||||
if (TriggerConditions.isGettingWounded(effect, game, Race.ORC)) {
|
||||
final WoundCharactersEffect woundEffect = (WoundCharactersEffect) effect;
|
||||
final Collection<PhysicalCard> cardsToBeWounded = woundEffect.getAffectedCardsMinusPrevented(game);
|
||||
Collection<PhysicalCard> woundedCharacters = woundEffect.getAffectedCardsMinusPrevented(game);
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
|
||||
List<Effect> possibleCosts = new LinkedList<Effect>();
|
||||
possibleCosts.add(
|
||||
new RemoveTwilightEffect(3));
|
||||
possibleCosts.add(
|
||||
new SelfDiscardEffect(self));
|
||||
|
||||
action.appendCost(
|
||||
new ChoiceEffect(action, playerId, possibleCosts));
|
||||
action.appendEffect(
|
||||
new ChooseActiveCardEffect(self, playerId, "Choose an Orc", Race.ORC, Filters.in(cardsToBeWounded)) {
|
||||
new ChooseActiveCardEffect(self, playerId, "Choose an Orc", Filters.in(woundedCharacters), Race.ORC) {
|
||||
@Override
|
||||
protected void cardSelected(LotroGame game, PhysicalCard woundedOrc) {
|
||||
action.appendEffect(
|
||||
new PreventCardEffect(woundEffect, woundedOrc));
|
||||
protected void cardSelected(LotroGame game, PhysicalCard card) {
|
||||
action.insertEffect(
|
||||
new PreventCardEffect(woundEffect, card));
|
||||
}
|
||||
});
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,20 +3,21 @@ package com.gempukku.lotro.cards.set31.troll;
|
||||
import com.gempukku.lotro.cards.AbstractPermanent;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.TriggerConditions;
|
||||
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.cards.effects.ChoiceEffect;
|
||||
import com.gempukku.lotro.cards.effects.PreventableEffect;
|
||||
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.cards.effects.TransferPermanentEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.cards.modifiers.ResistanceModifier;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
|
||||
import com.gempukku.lotro.logic.actions.SubAction;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.CantBeAssignedToSkirmishModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
|
||||
@@ -30,26 +31,43 @@ import java.util.List;
|
||||
* Culture: Troll
|
||||
* Twilight Cost: 2
|
||||
* Type: Condition • Support Area
|
||||
* Game Text: At the start of each assignment phase, you may discard a minion (or exert
|
||||
* a [TROLL] Troll) to spot a [DWARVEN] or [SHIRE] companion. That companion cannot be
|
||||
* assigned to a skirmish. Bilbo may exert twice to prevent this.
|
||||
* Game Text: Discard this condition if Bilbo wins a skirmish. Regroup: Discard a
|
||||
* minion (or exert a Troll) to transfer this condition to a [DWARVEN] companion.
|
||||
* Bearer cannot be assigned to a skirmish by any player.
|
||||
*/
|
||||
public class Card31_065 extends AbstractPermanent {
|
||||
public Card31_065() {
|
||||
super(Side.SHADOW, 2, CardType.CONDITION, Culture.GUNDABAD, Zone.SUPPORT, "Caught in a Sack", null, true);
|
||||
super(Side.SHADOW, 0, CardType.CONDITION, Culture.GUNDABAD, Zone.SUPPORT, "Caught in a Sack");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) {
|
||||
if (TriggerConditions.startOfPhase(game, effectResult, Phase.ASSIGNMENT)
|
||||
&& (PlayConditions.canExert(self, game, 1, Culture.GUNDABAD, Race.TROLL) || PlayConditions.canDiscardFromPlay(self, game, CardType.MINION))) {
|
||||
final OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
List<Effect> possibleCosts = new LinkedList<Effect>();
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.winsSkirmish(game, effectResult, Filters.name("Bilbo"))) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new SelfDiscardEffect(self));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Modifier getAlwaysOnModifier(LotroGame game, PhysicalCard self) {
|
||||
return new CantBeAssignedToSkirmishModifier(self, Filters.hasAttached(self));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Action> getExtraPhaseActions(String playerId, LotroGame game, final PhysicalCard self) {
|
||||
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0)
|
||||
&& (PlayConditions.canExert(self, game, CardType.MINION, Race.TROLL)
|
||||
|| PlayConditions.canSpot(game, CardType.MINION))) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
List<Effect> possibleCosts = new LinkedList<Effect>();
|
||||
possibleCosts.add(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 1, Culture.GUNDABAD, Race.TROLL) {
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 1, Race.TROLL) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Exert a [TROLL] Troll";
|
||||
return "Exert a Troll";
|
||||
}
|
||||
});
|
||||
possibleCosts.add(
|
||||
@@ -59,36 +77,17 @@ public class Card31_065 extends AbstractPermanent {
|
||||
return "Discard a minion";
|
||||
}
|
||||
});
|
||||
action.appendCost(
|
||||
new ChoiceEffect(action, playerId, possibleCosts));
|
||||
action.appendCost(new ChoiceEffect(action, playerId, possibleCosts));
|
||||
action.appendEffect(
|
||||
new ChooseActiveCardEffect(self, playerId, "Choose a [DWARVEN] or [SHIRE] companion", CardType.COMPANION, Filters.or(Culture.DWARVEN, Culture.SHIRE)) {
|
||||
@Override
|
||||
protected void cardSelected(LotroGame game, final PhysicalCard card) {
|
||||
action.appendEffect(new PreventableEffect(
|
||||
action,
|
||||
new AddUntilEndOfPhaseModifierEffect(new CantBeAssignedToSkirmishModifier(self, card)) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "prevent that";
|
||||
}
|
||||
},
|
||||
Collections.singletonList(game.getGameState().getCurrentPlayerId()),
|
||||
new PreventableEffect.PreventionCost() {
|
||||
@Override
|
||||
public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) {
|
||||
return new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.name("Bilbo")) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "exert Bilbo twice";
|
||||
}
|
||||
};
|
||||
}
|
||||
}));
|
||||
}
|
||||
new ChooseActiveCardEffect(self, playerId, "Choose a [DWARVEN] companion", Culture.DWARVEN, CardType.COMPANION, Filters.not(Filters.hasAttached(self))) {
|
||||
@Override
|
||||
protected void cardSelected(LotroGame game, PhysicalCard card) {
|
||||
action.appendEffect(
|
||||
new TransferPermanentEffect(self, card));
|
||||
}
|
||||
});
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ import java.util.List;
|
||||
*/
|
||||
public class Card8_033 extends AbstractResponseEvent {
|
||||
public Card8_033() {
|
||||
super(Side.FREE_PEOPLE, 1, Culture.GONDOR, "Ellesar's Edict");
|
||||
super(Side.FREE_PEOPLE, 1, Culture.GONDOR, "Elessar's Edict");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -352,5 +352,12 @@
|
||||
"limited":true,
|
||||
"set":[30, 31],
|
||||
"hall":false
|
||||
},
|
||||
{
|
||||
"name":"LotR Cards",
|
||||
"code":"lotr",
|
||||
"sites":"SPECIAL",
|
||||
"set":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],
|
||||
"hall":false
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user