Added in the Sauron VSet1 cards, courtesy of LStephens. Added event handling and trigger for taking off the Ring.

This commit is contained in:
Christian 'ketura' McCarty
2021-12-17 03:14:57 -06:00
parent 4550d52b4d
commit 4b47cf35ed
6 changed files with 164 additions and 65 deletions

View File

@@ -1,7 +1,7 @@
{
"151_44": {
"title": "Fell To It's Power",
"title": "Fell To Its Power",
"culture": "sauron",
"cost": 1,
"type": "event",
@@ -9,15 +9,22 @@
"effects": {
"type": "event",
"cost": {
"type": "exert",
"filter": "choose(elf)",
"type": "discard",
"filter": "choose(culture(sauron),orc)"
},
"effect": [
{
"type": "modifyStrength",
"filter": "choose(name(Gimli))",
"until": "start(regroup)",
"amount": 2
"type": "preventable",
"text": "Would you like to discard a Free Peoples condition to prevent adding a burden?",
"player": "fp",
"cost": {
"type": "discard",
"filter": "choose(side(free people),condition)"
},
"effect": {
"type": "addBurdens",
"amount": 1
}
}
]
}
@@ -32,23 +39,18 @@
"keyword": ["support area"],
"effects": [
{
"type": "modifier",
"modifier": {
"type": "addKeyword",
"filter": "dwarf",
"keyword": "damage+1"
}
},
{
"type": "trigger",
"optional": true,
"type": "activatedTrigger",
"trigger": {
"type": "winsSkirmish",
"filter": "dwarf"
"type": "abouttodiscard",
"filter": "culture(sauron),condition"
},
"cost": {
"type": "removeburdens",
"amount": 1
},
"effect": {
"type": "wound",
"filter": "choose(orc)"
"type": "preventdiscard",
"filter": "choose(culture(sauron),condition)"
}
}
]
@@ -65,21 +67,30 @@
{
"type": "modifier",
"modifier": {
"type": "addKeyword",
"filter": "dwarf",
"keyword": "damage+1"
"type": "modifysitenumber",
"filter": "culture(sauron),minion",
"amount": {
"type": "forEachBurden",
"multiplier": -1
}
}
},
{
"type": "modifier",
"modifier": {
"type": "modifystrength",
"filter": "culture(sauron),minion,siteNumber(0-1)",
"amount": 1
}
},
{
"type": "trigger",
"optional": true,
"trigger": {
"type": "winsSkirmish",
"filter": "dwarf"
},
"type": "takesoffring"
},
"effect": {
"type": "wound",
"filter": "choose(orc)"
"type": "discard",
"filter": "self"
}
}
]
@@ -92,24 +103,48 @@
"cost": 1,
"type": "event",
"keyword": ["regroup"],
"effects": {
"type": "event",
"cost": {
"type": "exert",
"filter": "choose(elf)",
},
"effect": [
{
"type": "modifyStrength",
"filter": "choose(name(Gimli))",
"until": "start(regroup)",
"amount": 2
"condition": {
"type": "canSpotburdens",
"amount": 5
},
"effects": [
{
"type": "extraCost",
"cost": {
"type": "discard",
"filter": "choose(culture(sauron),orc)",
}
]
}
},
{
"type": "event",
"effect": {
"type": "choice",
"player": "shadowPlayer",
"texts": [
"Make the move limit -1",
"Make the free peoples player choose to move again"
],
"effects": [
{
"type": "addModifier",
"modifier": {
"type": "modifyMoveLimit",
"amount": -1
},
"until": "endOfTurn"
},
{
"type": "addModifier",
"modifier": {
"type": "hasToMoveIfAble"
}
}
]
}
}
]
},
"151_48": {
"title": "Orc Ambush Troop",
"culture": "sauron",
@@ -120,31 +155,38 @@
"strength": 8,
"vitality": 2,
"site": 6,
"keyword": [
"tracker"
],
"effects": [
{
"type": "modifier",
"modifier": {
"type": "addKeyword",
"filter": "dwarf",
"keyword": "damage+1"
"filter": "self",
"keyword": "archer",
"condition": {
"type": "canSpot",
"filter": "companion,exhausted"
}
}
},
{
"type": "trigger",
"optional": true,
"trigger": {
"type": "winsSkirmish",
"filter": "dwarf"
},
"effect": {
"type": "wound",
"filter": "choose(orc)"
"type": "modifier",
"modifier": {
"type": "modifystrength",
"filter": "self",
"amount": 3,
"condition": {
"type": "canSpot",
"filter": "companion,exhausted",
"count": 3
}
}
}
]
},
"151_49": {
"title": "*A Shadow of the Past",
"culture": "sauron",
@@ -156,20 +198,35 @@
"type": "modifier",
"modifier": {
"type": "addKeyword",
"filter": "dwarf",
"keyword": "damage+1"
"filter": "culture(sauron),orc",
"keyword": "fierce",
"condition": {
"type": "canSpotburdens",
"amount": 4
}
}
},
{
"type": "modifier",
"modifier": {
"type": "addKeyword",
"filter": "culture(sauron),orc",
"keyword": "damage+1",
"condition": {
"type": "canSpotburdens",
"amount": 6
}
}
},
{
"type": "trigger",
"optional": true,
"trigger": {
"type": "winsSkirmish",
"filter": "dwarf"
"type": "startOfPhase",
"phase": "regroup"
},
"effect": {
"type": "wound",
"filter": "choose(orc)"
"type": "discard",
"filter": "self"
}
}
]

View File

@@ -0,0 +1,27 @@
package com.gempukku.lotro.cards.build.field.effect.trigger;
import com.gempukku.lotro.cards.build.ActionContext;
import com.gempukku.lotro.cards.build.CardGenerationEnvironment;
import com.gempukku.lotro.cards.build.InvalidCardDefinitionException;
import com.gempukku.lotro.cards.build.field.FieldUtils;
import com.gempukku.lotro.logic.timing.EffectResult;
import org.json.simple.JSONObject;
public class TakesOffRing implements TriggerCheckerProducer {
@Override
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
FieldUtils.validateAllowedFields(value, "filter");
return new TriggerChecker() {
@Override
public boolean accepts(ActionContext actionContext) {
return actionContext.getEffectResult().getType() == EffectResult.Type.TAKE_OFF_THE_ONE_RING;
}
@Override
public boolean isBefore() {
return false;
}
};
}
}

View File

@@ -45,6 +45,7 @@ public class TriggerCheckerFactory {
triggerCheckers.put("revealcardfromtopofdrawdeck", new RevealCardFromTopOfDrawDeck());
triggerCheckers.put("startofphase", new StartOfPhase());
triggerCheckers.put("startofturn", new StartOfTurn());
triggerCheckers.put("takesoffring", new TakesOffRing());
triggerCheckers.put("takeswound", new TakesWound());
triggerCheckers.put("transferred", new Transferred());
triggerCheckers.put("usesspecialability", new UsesSpecialAbility());

View File

@@ -3,6 +3,8 @@ package com.gempukku.lotro.logic.effects;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.timing.AbstractEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.results.PutOnTheOneRingResult;
import com.gempukku.lotro.logic.timing.results.TakeOffTheOneRingResult;
public class TakeOffTheOneRingEffect extends AbstractEffect {
@Override
@@ -26,6 +28,7 @@ public class TakeOffTheOneRingEffect extends AbstractEffect {
if (canTakeOffRing) {
game.getGameState().sendMessage("Ring-bearer takes off The One Ring");
game.getGameState().setWearingRing(false);
game.getActionsEnvironment().emitEffectResult(new TakeOffTheOneRingResult());
}
return new FullEffectResult(canTakeOffRing);
}

View File

@@ -57,7 +57,9 @@ public abstract class EffectResult {
REPLACE_SITE, TAKE_CONTROL_OF_SITE,
FINISHED_PLAYING_FELLOWSHIP
FINISHED_PLAYING_FELLOWSHIP,
TAKE_OFF_THE_ONE_RING
}
private Type _type;

View File

@@ -0,0 +1,9 @@
package com.gempukku.lotro.logic.timing.results;
import com.gempukku.lotro.logic.timing.EffectResult;
public class TakeOffTheOneRingResult extends EffectResult {
public TakeOffTheOneRingResult() {
super(Type.TAKE_OFF_THE_ONE_RING);
}
}