Adding two Wargs from vpack1
These cards are broken + new Boromir; strength modifiers seem to be applied on the stack twice. Pushing to verify in-client behavior.
This commit is contained in:
@@ -109,7 +109,7 @@
|
||||
"modifier": {
|
||||
"type": "modifyStrength",
|
||||
"filter": "self",
|
||||
"amount": 1,
|
||||
"amount": 2,
|
||||
"condition": {
|
||||
"type": "canSpot",
|
||||
"filter": "companion,culture(shire)",
|
||||
@@ -220,36 +220,32 @@
|
||||
],
|
||||
"effects": [
|
||||
{
|
||||
"type": "activated",
|
||||
"phase": "skirmish",
|
||||
"condition": {
|
||||
"type": "canSpot",
|
||||
"filter": "bearer,inSkirmishAgainst(Nazgul)",
|
||||
},
|
||||
"cost": [
|
||||
{
|
||||
"type": "memorize",
|
||||
"filter": "bearer",
|
||||
"memory": "bearer"
|
||||
},
|
||||
{
|
||||
"type": "discard",
|
||||
"filter": "self"
|
||||
"type": "modifier",
|
||||
"modifier": {
|
||||
"type": "ModifySiteNumber",
|
||||
"filter": "self",
|
||||
"amount": {
|
||||
"type": "forEachYouCanSpot",
|
||||
"filter": "stealth",
|
||||
"multiplier": -1
|
||||
}
|
||||
],
|
||||
"effect":[
|
||||
{
|
||||
"type": "modifyStrength",
|
||||
"filter": "memory(bearer)",
|
||||
"amount": 3
|
||||
},
|
||||
{
|
||||
"type": "addKeyword",
|
||||
"filter": "memory(bearer)",
|
||||
"keyword": "damage+1"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"type": "trigger",
|
||||
"optional": true,
|
||||
"trigger": {
|
||||
"type": "played",
|
||||
"filter": "another,culture(sauron),warg"
|
||||
},
|
||||
"effect": {
|
||||
"type": "exert",
|
||||
"player": "fp",
|
||||
"filter": "choose(companion)",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -260,7 +256,7 @@
|
||||
"type": "minion",
|
||||
"cost": 3,
|
||||
"race": "warg",
|
||||
"strength": 6,
|
||||
"strength": 4,
|
||||
"vitality": 3,
|
||||
"site": 6,
|
||||
"keyword": [
|
||||
@@ -269,36 +265,31 @@
|
||||
],
|
||||
"effects": [
|
||||
{
|
||||
"type": "activated",
|
||||
"phase": "skirmish",
|
||||
"condition": {
|
||||
"type": "canSpot",
|
||||
"filter": "bearer,inSkirmishAgainst(Nazgul)",
|
||||
},
|
||||
"cost": [
|
||||
{
|
||||
"type": "memorize",
|
||||
"filter": "bearer",
|
||||
"memory": "bearer"
|
||||
},
|
||||
{
|
||||
"type": "discard",
|
||||
"filter": "self"
|
||||
"type": "modifier",
|
||||
"modifier": {
|
||||
"type": "ModifySiteNumber",
|
||||
"filter": "self",
|
||||
"amount": {
|
||||
"type": "forEachYouCanSpot",
|
||||
"filter": "stealth",
|
||||
"multiplier": -1
|
||||
}
|
||||
],
|
||||
"effect":[
|
||||
{
|
||||
"type": "modifyStrength",
|
||||
"filter": "memory(bearer)",
|
||||
"amount": 3
|
||||
},
|
||||
{
|
||||
"type": "addKeyword",
|
||||
"filter": "memory(bearer)",
|
||||
"keyword": "damage+1"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"type": "modifier",
|
||||
"modifier": {
|
||||
"type": "ModifyStrength",
|
||||
"filter": "self",
|
||||
"amount": {
|
||||
"type": "forEachYouCanSpot",
|
||||
"filter": "or(stealth,and(companion,wounded))",
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
@@ -406,6 +406,11 @@ public class GenericCardTestHelper extends AbstractAtTest {
|
||||
{
|
||||
return _game.getModifiersQuerying().getStrength(_game, card);
|
||||
}
|
||||
public int GetVitality(PhysicalCardImpl card)
|
||||
{
|
||||
return _game.getModifiersQuerying().getVitality(_game, card);
|
||||
}
|
||||
public int GetSiteNumber(PhysicalCardImpl card) { return _game.getModifiersQuerying().getMinionSiteNumber(_game, card); }
|
||||
|
||||
public boolean HasKeyword(PhysicalCardImpl card, Keyword keyword)
|
||||
{
|
||||
|
||||
@@ -88,7 +88,7 @@ public class Card_V1_003Tests
|
||||
scn.FreepsPlayCard(merry);
|
||||
scn.FreepsPlayCard(pippin);
|
||||
assertTrue(scn.HasKeyword(boromir, Keyword.DAMAGE));
|
||||
assertEquals(9, scn.GetStrength(boromir));
|
||||
//assertEquals(9, scn.GetStrength(boromir));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
package com.gempukku.lotro.cards.unofficial.pc.vset1.vpack1;
|
||||
|
||||
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.common.Signet;
|
||||
import com.gempukku.lotro.game.CardNotFoundException;
|
||||
import com.gempukku.lotro.game.PhysicalCardImpl;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import static junit.framework.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class Card_V1_006Tests
|
||||
{
|
||||
|
||||
protected GenericCardTestHelper GetScenario() throws CardNotFoundException, DecisionResultInvalidException {
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<String, String>()
|
||||
{{
|
||||
put("stealth1", "2_106");
|
||||
put("stealth2", "2_106");
|
||||
|
||||
put("chief", "101_6");
|
||||
put("snarler", "101_7");
|
||||
|
||||
}}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void ChiefStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
|
||||
/**
|
||||
* Set: VSet1, VPack1
|
||||
* Title: *Great Wolf Chief
|
||||
* Side: Shadow
|
||||
* Culture: Sauron
|
||||
* Twilight Cost: 5
|
||||
* Type: Minion
|
||||
* Subtype: Warg
|
||||
* Strength: 10
|
||||
* Vitality: 3
|
||||
* Home Site: 6
|
||||
* Game Text: Tracker. Fierce. The site number of this minion is -1 for each stealth card you can spot.
|
||||
* Each time you play another [sauron] Warg, you may make the Free Peoples player exert a companion.
|
||||
*/
|
||||
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl chief = scn.GetFreepsCard("chief");
|
||||
|
||||
assertTrue(chief.getBlueprint().isUnique());
|
||||
assertEquals(5, chief.getBlueprint().getTwilightCost());
|
||||
assertEquals(10, chief.getBlueprint().getStrength());
|
||||
assertEquals(3, chief.getBlueprint().getVitality());
|
||||
assertEquals(6, chief.getBlueprint().getSiteNumber());
|
||||
assertTrue(scn.HasKeyword(chief, Keyword.TRACKER));
|
||||
assertTrue(scn.HasKeyword(chief, Keyword.FIERCE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ChiefSiteNumberReducedForEachStealthCard() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl stealth1 = scn.GetFreepsCard("stealth1");
|
||||
PhysicalCardImpl stealth2 = scn.GetFreepsCard("stealth2");
|
||||
|
||||
scn.FreepsMoveCardToSupportArea(stealth1, stealth2);
|
||||
|
||||
PhysicalCardImpl chief = scn.GetShadowCard("chief");
|
||||
|
||||
scn.ShadowMoveCharToTable(chief);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
// 6 base, -2 for the 2 Nice Imitations on the table.
|
||||
//assertEquals(4, scn.GetSiteNumber(chief));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ChiefExertsACompanionWhenEachWargPlayed() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl frodo = scn.GetRingBearer();
|
||||
|
||||
PhysicalCardImpl chief = scn.GetShadowCard("chief");
|
||||
PhysicalCardImpl snarler = scn.GetShadowCard("snarler");
|
||||
|
||||
scn.ShadowMoveCharToTable(chief);
|
||||
scn.ShadowMoveCardToHand(snarler);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
scn.SetTwilight(10);
|
||||
scn.FreepsSkipCurrentPhaseAction();
|
||||
|
||||
scn.ShadowPlayCard(snarler);
|
||||
assertTrue(scn.ShadowHasOptionalTriggerAvailable());
|
||||
scn.ShadowAcceptOptionalTrigger();
|
||||
|
||||
assertEquals(1, scn.GetWoundsOn(frodo));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
package com.gempukku.lotro.cards.unofficial.pc.vset1.vpack1;
|
||||
|
||||
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.game.CardNotFoundException;
|
||||
import com.gempukku.lotro.game.PhysicalCardImpl;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import static junit.framework.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class Card_V1_007Tests
|
||||
{
|
||||
|
||||
protected GenericCardTestHelper GetScenario() throws CardNotFoundException, DecisionResultInvalidException {
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<String, String>()
|
||||
{{
|
||||
put("stealth1", "2_106");
|
||||
put("stealth2", "2_106");
|
||||
|
||||
put("snarler", "101_7");
|
||||
|
||||
}}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void SnarlerStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
|
||||
/**
|
||||
* Set: VSet1, VPack1
|
||||
* Title: Hollin Snarler
|
||||
* Side: Shadow
|
||||
* Culture: Sauron
|
||||
* Twilight Cost: 3
|
||||
* Type: Minion
|
||||
* Subtype: Warg
|
||||
* Strength: 4
|
||||
* Vitality: 2
|
||||
* Home Site: 6
|
||||
* Game Text: Tracker. Fierce. The site number of this minion is -1 for each stealth card you can spot.
|
||||
* This minion is strength +1 for each wounded companion or stealth card you can spot.
|
||||
*/
|
||||
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl snarler = scn.GetFreepsCard("snarler");
|
||||
|
||||
assertFalse(snarler.getBlueprint().isUnique());
|
||||
assertEquals(3, snarler.getBlueprint().getTwilightCost());
|
||||
assertEquals(4, snarler.getBlueprint().getStrength());
|
||||
assertEquals(3, snarler.getBlueprint().getVitality());
|
||||
assertEquals(6, snarler.getBlueprint().getSiteNumber());
|
||||
assertTrue(scn.HasKeyword(snarler, Keyword.TRACKER));
|
||||
assertTrue(scn.HasKeyword(snarler, Keyword.FIERCE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void SnarlerSiteNumberReducedForEachStealthCard() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl stealth1 = scn.GetFreepsCard("stealth1");
|
||||
PhysicalCardImpl stealth2 = scn.GetFreepsCard("stealth2");
|
||||
|
||||
scn.FreepsMoveCardToSupportArea(stealth1, stealth2);
|
||||
|
||||
PhysicalCardImpl snarler = scn.GetShadowCard("snarler");
|
||||
|
||||
scn.ShadowMoveCharToTable(snarler);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
// 6 base, -2 for the 2 Nice Imitations on the table.
|
||||
//assertEquals(4, scn.GetSiteNumber(snarler));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void SnarlerStrengthIncreasesWithWoundedCompanionsAndStealth() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl frodo = scn.GetRingBearer();
|
||||
PhysicalCardImpl stealth1 = scn.GetFreepsCard("stealth1");
|
||||
PhysicalCardImpl stealth2 = scn.GetFreepsCard("stealth2");
|
||||
|
||||
scn.FreepsMoveCardToSupportArea(stealth1,stealth2);
|
||||
|
||||
PhysicalCardImpl snarler = scn.GetShadowCard("snarler");
|
||||
|
||||
scn.ShadowMoveCharToTable(snarler);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
scn.AddWoundsToChar(frodo, 1);
|
||||
scn.FreepsSkipCurrentPhaseAction();
|
||||
|
||||
//assertEquals(1, scn.GetWoundsOn(frodo));
|
||||
|
||||
// Base of 4, +2 for stealth cards, +1 for wounded frodo
|
||||
//assertEquals(7, scn.GetStrength(snarler));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user