Added V2 Flood Insurance cards

- added self selector to PlayCardFromDrawDeck
This commit is contained in:
Christian 'ketura' McCarty
2024-11-04 16:43:58 -06:00
parent 59122c9bd3
commit 2cfd477ea8
17 changed files with 353 additions and 73 deletions

View File

@@ -841,7 +841,7 @@
cost: [
{
type: addThreats
amount: any
amount: 0-9
}
]
}

View File

@@ -230,26 +230,64 @@
culture: Dunland
twilight: 0
type: Event
timewords: Response
timewords: Shadow
effects: [
{
type: responseEvent
trigger: {
type: event
requires: {
type: CanSpotTwilight
amount: 25
}
cost: {
type: SendMessage
text: Placeholder effect for development.
type: RemoveTwilight
amount: 10
}
effect: [
{
type: SendMessage
text: Placeholder effect for development.
type: TakeControlOfSite
}
{
type: TakeControlOfSite
}
{
type: TakeControlOfSite
}
{
type: RemoveFromTheGame
select: self
}
]
}
{
type: ActivatedInDiscard
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: playCardFromDiscard
select: self
}
}
{
type: ActivatedInDrawDeck
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: PlayCardFromDrawDeck
select: self
shuffle: true
showAll: true
}
}
]
gametext: At the start of the Shadow phase, spot 25 twilight tokens and remove 10 to take control of 3 sites, then remove this from the game. This event may be played from your draw deck or discard pile.
gametext: Spot 25 twilight tokens and remove 10 to take control of 3 sites, then remove this from the game. This event may be played from your draw deck or discard pile.
lore: ""
promotext: ""
alts: {

View File

@@ -20,26 +20,59 @@
culture: Gollum
twilight: 0
type: Event
timewords: Response
timewords: Shadow
effects: [
{
type: responseEvent
trigger: {
type: event
requires: {
type: CanSpotTwilight
amount: 25
}
cost: {
type: SendMessage
text: Placeholder effect for development.
type: RemoveTwilight
amount: 10
}
effect: [
{
type: SendMessage
text: Placeholder effect for development.
type: DrawCards
count: 8
}
{
type: RemoveFromTheGame
select: self
}
]
}
{
type: ActivatedInDiscard
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: playCardFromDiscard
select: self
}
}
{
type: ActivatedInDrawDeck
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: PlayCardFromDrawDeck
select: self
shuffle: true
showAll: true
}
}
]
gametext: At the start of the Shadow phase, spot 25 twilight tokens and remove 10 to draw 8 cards, then remove this from the game. This event may be played from your draw deck or discard pile.
gametext: Spot 25 twilight tokens and remove 10 to draw 8 cards, then remove this from the game. This event may be played from your draw deck or discard pile.
lore: ""
promotext: ""
alts: {

View File

@@ -275,26 +275,63 @@
culture: Isengard
twilight: 0
type: Event
timewords: Response
timewords: Shadow
effects: [
{
type: responseEvent
trigger: {
type: event
requires: {
type: CanSpotTwilight
amount: 25
}
cost: {
type: SendMessage
text: Placeholder effect for development.
type: RemoveTwilight
amount: 10
}
effect: [
{
type: SendMessage
text: Placeholder effect for development.
type: Exert
select: all(character)
}
{
type: Exert
select: all(character,MinTwilight(4))
}
{
type: RemoveFromTheGame
select: self
}
]
}
{
type: ActivatedInDiscard
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: playCardFromDiscard
select: self
}
}
{
type: ActivatedInDrawDeck
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: PlayCardFromDrawDeck
select: self
shuffle: true
showAll: true
}
}
]
gametext: At the start of the Shadow phase, spot 25 twilight tokens and remove 10 to exert each character once (or twice if it costs (4) or more), then remove this from the game. This event may be played from your draw deck or discard pile.
gametext: Spot 25 twilight tokens and remove 10 to exert each character once (or twice if it costs (4) or more), then remove this from the game. This event may be played from your draw deck or discard pile.
lore: ""
promotext: ""
alts: {

View File

@@ -408,26 +408,85 @@
culture: Moria
twilight: 0
type: Event
timewords: Response
timewords: Shadow
effects: [
{
type: responseEvent
trigger: {
type: event
requires: {
type: CanSpotTwilight
amount: 25
}
cost: {
type: SendMessage
text: Placeholder effect for development.
type: RemoveTwilight
amount: 10
}
effect: [
{
type: SendMessage
text: Placeholder effect for development.
type: Repeat
times: 4
effect: {
type: Choice
texts: [
Take a Shadow condition into hand from your draw deck
Take a Shadow condition into hand from your discard pile
Pass
]
effects: [
{
type: PutCardsFromDeckIntoHand
select: choose(side(shadow),condition)
shuffle: true
reveal: true
showAll: true
}
{
type: PutCardsFromDiscardIntoHand
discard: you
select: choose(side(shadow),condition)
}
{
type: SendMessage
text: "{you} declines to take a Shadow condition into hand."
}
]
}
}
{
type: RemoveFromTheGame
select: self
}
]
}
{
type: ActivatedInDiscard
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: playCardFromDiscard
select: self
}
}
{
type: ActivatedInDrawDeck
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: PlayCardFromDrawDeck
select: self
shuffle: true
showAll: true
}
}
]
gametext: At the start of the Shadow phase, spot 25 twilight tokens and remove 10 to take up to 4 Shadow conditions into hand from your draw deck or discard pile, then remove this from the game. This event may be played from your draw deck or discard pile.
gametext: Spot 25 twilight tokens and remove 10 to take up to 4 Shadow conditions into hand from your draw deck or discard pile, then remove this from the game. This event may be played from your draw deck or discard pile.
lore: ""
promotext: ""
alts: {

View File

@@ -20,26 +20,61 @@
culture: Raider
twilight: 0
type: Event
timewords: Response
timewords: Shadow
effects: [
{
type: responseEvent
trigger: {
type: event
requires: {
type: CanSpotTwilight
amount: 25
}
cost: {
type: SendMessage
text: Placeholder effect for development.
type: RemoveTwilight
amount: 10
}
effect: [
{
type: SendMessage
text: Placeholder effect for development.
type: modifyArcheryTotal
side: shadow
amount: 6
until: regroup
}
{
type: RemoveFromTheGame
select: self
}
]
}
{
type: ActivatedInDiscard
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: playCardFromDiscard
select: self
}
}
{
type: ActivatedInDrawDeck
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: PlayCardFromDrawDeck
select: self
shuffle: true
showAll: true
}
}
]
gametext: At the start of the Shadow phase, spot 25 twilight tokens and remove 10 to make the minion archery total +6 until the regroup phase, then remove this from the game. This event may be played from your draw deck or discard pile.
gametext: Spot 25 twilight tokens and remove 10 to make the minion archery total +6 until the regroup phase, then remove this from the game. This event may be played from your draw deck or discard pile.
lore: ""
promotext: ""
alts: {

View File

@@ -20,26 +20,59 @@
culture: Wraith
twilight: 0
type: Event
timewords: Response
timewords: Shadow
effects: [
{
type: responseEvent
trigger: {
type: event
requires: {
type: CanSpotTwilight
amount: 25
}
cost: {
type: SendMessage
text: Placeholder effect for development.
type: RemoveTwilight
amount: 10
}
effect: [
{
type: SendMessage
text: Placeholder effect for development.
type: addThreats
amount: 0-9
}
{
type: RemoveFromTheGame
select: self
}
]
}
{
type: ActivatedInDiscard
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: playCardFromDiscard
select: self
}
}
{
type: ActivatedInDrawDeck
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: PlayCardFromDrawDeck
select: self
shuffle: true
showAll: true
}
}
]
gametext: At the start of the Shadow phase, spot 25 twilight tokens and remove 10 to add up to 9 threats, then remove this from the game. This event may be played from your draw deck or discard pile.
gametext: Spot 25 twilight tokens and remove 10 to add up to 9 threats, then remove this from the game. This event may be played from your draw deck or discard pile.
lore: ""
promotext: ""
alts: {

View File

@@ -20,26 +20,69 @@
culture: Sauron
twilight: 0
type: Event
timewords: Response
timewords: Shadow
effects: [
{
type: responseEvent
trigger: {
type: event
requires: {
type: CanSpotTwilight
amount: 25
}
cost: {
type: SendMessage
text: Placeholder effect for development.
type: RemoveTwilight
amount: 10
}
effect: [
{
type: SendMessage
text: Placeholder effect for development.
type: Repeat
times: 3
effect: {
type: Optional
text: Would you like to play another minion from your draw deck costing (5) or more?
effect: {
type: PlayCardFromDrawDeck
select: choose(minion,MinTwilight(5))
shuffle: true
showAll: true
}
}
}
{
type: RemoveFromTheGame
select: self
}
]
}
{
type: ActivatedInDiscard
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: playCardFromDiscard
select: self
}
}
{
type: ActivatedInDrawDeck
phase: Shadow
requires: [
{
type: canSelfBePlayed
}
]
effect: {
type: PlayCardFromDrawDeck
select: self
shuffle: true
showAll: true
}
}
]
gametext: At the start of the Shadow phase, spot 25 twilight tokens to play up to 3 minions from your draw deck costing (5) or more, then remove this from the game. This event may be played from your draw deck or discard pile.
gametext: Spot 25 twilight tokens to play up to 3 minions from your draw deck costing (5) or more, then remove this from the game. This event may be played from your draw deck or discard pile.
lore: ""
promotext: ""
alts: {

View File

@@ -328,7 +328,9 @@ public class CardResolver {
return actionContext.getGame().getGameState().getDeck(deckId);
};
if (type.startsWith("memory(") && type.endsWith(")")) {
if (type.equals("self")) {
return resolveSelf(choiceFilter, choiceFilter, countSource, memory, cardSource);
} else if (type.startsWith("memory(") && type.endsWith(")")) {
return resolveMemoryCards(type, choiceFilter, choiceFilter, countSource, memory, cardSource);
} else if (type.startsWith("all(") && type.endsWith(")")) {
return resolveAllCards(type, choiceFilter, memory, environment, cardSource);

View File

@@ -52,7 +52,7 @@ public class Card_V2_005_Tests
assertEquals(Side.SHADOW, card.getBlueprint().getSide());
assertEquals(Culture.DUNLAND, card.getBlueprint().getCulture());
assertEquals(CardType.EVENT, card.getBlueprint().getCardType());
assertTrue(scn.hasTimeword(card, Timeword.RESPONSE));
assertTrue(scn.hasTimeword(card, Timeword.SHADOW));
assertEquals(0, card.getBlueprint().getTwilightCost());
}

View File

@@ -52,7 +52,7 @@ public class Card_V2_015_Tests
assertEquals(Side.SHADOW, card.getBlueprint().getSide());
assertEquals(Culture.GOLLUM, card.getBlueprint().getCulture());
assertEquals(CardType.EVENT, card.getBlueprint().getCardType());
assertTrue(scn.hasTimeword(card, Timeword.RESPONSE));
assertTrue(scn.hasTimeword(card, Timeword.SHADOW));
assertEquals(0, card.getBlueprint().getTwilightCost());
}

View File

@@ -52,7 +52,7 @@ public class Card_V2_022_Tests
assertEquals(Side.SHADOW, card.getBlueprint().getSide());
assertEquals(Culture.ISENGARD, card.getBlueprint().getCulture());
assertEquals(CardType.EVENT, card.getBlueprint().getCardType());
assertTrue(scn.hasTimeword(card, Timeword.RESPONSE));
assertTrue(scn.hasTimeword(card, Timeword.SHADOW));
assertEquals(0, card.getBlueprint().getTwilightCost());
}

View File

@@ -52,7 +52,7 @@ public class Card_V2_042_Tests
assertEquals(Side.SHADOW, card.getBlueprint().getSide());
assertEquals(Culture.MORIA, card.getBlueprint().getCulture());
assertEquals(CardType.EVENT, card.getBlueprint().getCardType());
assertTrue(scn.hasTimeword(card, Timeword.RESPONSE));
assertTrue(scn.hasTimeword(card, Timeword.SHADOW));
assertEquals(0, card.getBlueprint().getTwilightCost());
}

View File

@@ -52,7 +52,7 @@ public class Card_V2_043_Tests
assertEquals(Side.SHADOW, card.getBlueprint().getSide());
assertEquals(Culture.RAIDER, card.getBlueprint().getCulture());
assertEquals(CardType.EVENT, card.getBlueprint().getCardType());
assertTrue(scn.hasTimeword(card, Timeword.RESPONSE));
assertTrue(scn.hasTimeword(card, Timeword.SHADOW));
assertEquals(0, card.getBlueprint().getTwilightCost());
}

View File

@@ -52,7 +52,7 @@ public class Card_V2_044_Tests
assertEquals(Side.SHADOW, card.getBlueprint().getSide());
assertEquals(Culture.WRAITH, card.getBlueprint().getCulture());
assertEquals(CardType.EVENT, card.getBlueprint().getCardType());
assertTrue(scn.hasTimeword(card, Timeword.RESPONSE));
assertTrue(scn.hasTimeword(card, Timeword.SHADOW));
assertEquals(0, card.getBlueprint().getTwilightCost());
}

View File

@@ -52,7 +52,7 @@ public class Card_V2_057_Tests
assertEquals(Side.SHADOW, card.getBlueprint().getSide());
assertEquals(Culture.SAURON, card.getBlueprint().getCulture());
assertEquals(CardType.EVENT, card.getBlueprint().getCardType());
assertTrue(scn.hasTimeword(card, Timeword.RESPONSE));
assertTrue(scn.hasTimeword(card, Timeword.SHADOW));
assertEquals(0, card.getBlueprint().getTwilightCost());
}

View File

@@ -27,7 +27,7 @@ public class Card_V2_070_Tests
put("site2", "1_327");
put("site3", "1_337");
put("site4", "1_343");
put("site5", "102_66");
put("site5", "102_70");
put("site6", "1_351");
put("site7", "1_353");
put("site8", "1_356");