LTC 8 cards (#3803)

This commit is contained in:
Simisays
2023-09-24 12:20:20 +02:00
committed by GitHub
parent 8117e0da39
commit 2b941bcbfb
10 changed files with 100 additions and 5 deletions

View File

@@ -2672,17 +2672,25 @@ public class AbilityUtils {
// Count$ThisTurnCast <Valid>
// Count$LastTurnCast <Valid>
if (sq[0].startsWith("ThisTurnCast") || sq[0].startsWith("LastTurnCast")) {
final String[] workingCopy = l[0].split("_");
String[] paidparts = l[0].split("\\$", 2);
final String[] workingCopy = paidparts[0].split("_");
final String validFilter = workingCopy[1];
List<Card> res = Lists.newArrayList();
List<Card> res;
if (workingCopy[0].contains("This")) {
res = CardUtil.getThisTurnCast(validFilter, c, ctb, player);
} else {
res = CardUtil.getLastTurnCast(validFilter, c, ctb, player);
}
return doXMath(res.size(), expr, c, ctb);
int num;
if (paidparts.length > 1) {
num = handlePaid(res, paidparts[1], c, ctb);
} else {
num = res.size();
}
return doXMath(num, expr, c, ctb);
}
// Count$ThisTurnEntered <ZoneDestination> [from <ZoneOrigin>] <Valid>

View File

@@ -9,6 +9,7 @@ import forge.game.zone.ZoneType;
public class StaticAbilityCantGainLosePayLife {
static String MODE_CANT_GAIN_LIFE = "CantGainLife";
static String MODE_CANT_LOSE_LIFE = "CantLoseLife";
static String MODE_CANT_CHANGE_LIFE = "CantChangeLife";
static String MODE_CANT_PAY_LIFE = "CantPayLife";
@@ -36,7 +37,7 @@ public class StaticAbilityCantGainLosePayLife {
final Game game = player.getGame();
for (final Card ca : game.getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES)) {
for (final StaticAbility stAb : ca.getStaticAbilities()) {
if (!stAb.checkConditions(MODE_CANT_CHANGE_LIFE)) {
if (!(stAb.checkMode(MODE_CANT_LOSE_LIFE) || stAb.checkMode(MODE_CANT_CHANGE_LIFE))) {
continue;
}
@@ -53,7 +54,7 @@ public class StaticAbilityCantGainLosePayLife {
final Game game = player.getGame();
for (final Card ca : game.getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES)) {
for (final StaticAbility stAb : ca.getStaticAbilities()) {
if (!(stAb.checkMode(MODE_CANT_PAY_LIFE) || stAb.checkMode(MODE_CANT_CHANGE_LIFE))) {
if (!(stAb.checkMode(MODE_CANT_PAY_LIFE) || stAb.checkMode(MODE_CANT_LOSE_LIFE) || stAb.checkMode(MODE_CANT_CHANGE_LIFE))) {
continue;
}

View File

@@ -0,0 +1,12 @@
Name:Anduril, Narsil Reforged
ManaCost:2
Types:Legendary Artifact Equipment
K:Ascend
T:Mode$ Attacks | ValidCard$ Creature.EquippedBy | Execute$ TrigCounter | TriggerDescription$ Whenever equipped creature attacks, put a +1/+1 counter on each creature you control. If you have the city's blessing, put two +1/+1 counters on each creature you control instead.
SVar:TrigCounter:DB$ PutCounterAll | ValidCards$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ X
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddSVar$ AE
SVar:X:Count$Blessing.2.1
K:Equip:3
SVar:AE:SVar:HasAttackEffect:TRUE
DeckHas:Ability$Counters
Oracle:Ascend (If you control ten or more permanents, you get the city's blessing for the rest of the game.)\nWhenever equipped creature attacks, put a +1/+1 counter on each creature you control. If you have the city's blessing, put two +1/+1 counters on each creature you control instead.\nEquip {3}

View File

@@ -0,0 +1,10 @@
Name:Aragorn, Hornburg Hero
ManaCost:1 R G W
Types:Legendary Creature Human Soldier
PT:4/4
S:Mode$ Continuous | Affected$ Creature.attacking+YouCtrl | AddKeyword$ First Strike & Renown:1 | Description$ Attacking creatures you control have first strike and renown 1. (When a creature with renown 1 deals combat damage to a player, if it isn't renowned, put a +1/+1 counter on it and it becomes renowned.)
T:Mode$ DamageDone | ValidSource$ Creature.IsRenowned+YouCtrl | Execute$ TrigDouble | CombatDamage$ True | ValidTarget$ Player | TriggerZones$ Battlefield | TriggerDescription$ Whenever a renowned creature you control deals combat damage to a player, double the number of +1/+1 counters on it.
SVar:TrigDouble:DB$ MultiplyCounter | Defined$ TriggeredSourceLKICopy | CounterType$ P1P1
DeckHas:Ability$Counters
DeckHints:Ability$Counters
Oracle:Attacking creatures you control have first strike and renown 1. (When a creature with renown 1 deals combat damage to a player, if it isn't renowned, put a +1/+1 counter on it and it becomes renowned.)\nWhenever a renowned creature you control deals combat damage to a player, double the number of +1/+1 counters on it.

View File

@@ -0,0 +1,11 @@
Name:Arboreal Alliance
ManaCost:X G G
Types:Enchantment
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create an X/X green Treefolk creature token.
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_x_x_treefolk | TokenPower$ X | TokenToughness$ X
SVar:X:Count$xPaid
T:Mode$ AttackersDeclared | ValidAttackers$ Creature.Elf+YouCtrl | Execute$ TrigPopulate | TriggerZones$ Battlefield | TriggerDescription$ Whenever you attack with one or more Elves, populate. (Create a token that's a copy of a creature token you control.)
SVar:TrigPopulate:DB$ CopyPermanent | Choices$ Creature.token+YouCtrl | Populate$ True
DeckHas:Ability$Token & Type$Treefolk
DeckHints:Type$Elf
Oracle:When Arboreal Alliance enters the battlefield, create an X/X green Treefolk creature token.\nWhenever you attack with one or more Elves, populate. (Create a token that's a copy of a creature token you control.)

View File

@@ -0,0 +1,8 @@
Name:Call Forth the Tempest
ManaCost:5 R R R
Types:Sorcery
K:Cascade
K:Cascade
A:SP$ DamageAll | NumDmg$ X | ValidCards$ Creature.OppCtrl | ValidDescription$ each creature your opponents controls | SpellDescription$ CARDNAME deals damage to each creature your opponents control equal to the total mana value of other spells you've cast this turn.
SVar:X:Count$ThisTurnCast_Card.YouCtrl+Other$SumCMC
Oracle:Cascade, cascade (When you cast this spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order. Then do it again.)\nCall Forth the Tempest deals damage to each creature your opponents control equal to the total mana value of other spells you've cast this turn.

View File

@@ -0,0 +1,10 @@
Name:Courageous Resolve
ManaCost:2 W
Types:Instant
A:SP$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select up to one target creature you control | TargetMin$ 0 | TargetMax$ 1 | SubAbility$ DBDraw | KW$ Protection:Card.ControlledBy Player.PlayerUID_ChosenPlayerUID,Emblem.ControlledBy Player.PlayerUID_ChosenPlayerUID:Protection from ChosenPlayerName | DefinedKW$ Opponent | SpellDescription$ Up to one target creature you control gains protection from each of your opponents until end of turn. Draw a card. (It can't be blocked, targeted, dealt damage, enchanted, or equipped by anything controlled by those players.)
SVar:DBDraw:DB$ Draw | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | StaticAbilities$ STKeepLife,STCantLose | ConditionCheckSVar$ FatefulHour | ConditionSVarCompare$ LE5 | AILogic$ Fog | SpellDescription$ Fateful hour — If you have 5 or less life, you can't lose life this turn, you can't lose the game this turn, and your opponents can't win the game this turn.
SVar:STKeepLife:Mode$ CantLoseLife | ValidPlayer$ You | Description$ You can't lose life this turn.
SVar:STCantLose:Mode$ Continuous | Affected$ You | AddKeyword$ You can't lose the game. & Your opponents can't win the game. | Description$ You can't lose the game. Your opponents can't win the game.
SVar:FatefulHour:Count$YourLifeTotal
Oracle:Up to one target creature you control gains protection from each of your opponents until end of turn. Draw a card. (It can't be blocked, targeted, dealt damage, enchanted, or equipped by anything controlled by those players.)\nFateful hour — If you have 5 or less life, you can't lose life this turn, you can't lose the game this turn, and your opponents can't win the game this turn.

View File

@@ -0,0 +1,15 @@
Name:Fell Beast of Mordor
ManaCost:2 B B
Types:Creature Drake Beast
PT:3/3
K:Flying
K:Devour:1
T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, target opponent loses X life and you gain X life, where X is the number of +1/+1 counters on it.
T:Mode$ Attacks | ValidCard$ Card.Self | Secondary$ True | Execute$ TrigLoseLife | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, target opponent loses X life and you gain X life, where X is the number of +1/+1 counters on it.
SVar:TrigLoseLife:DB$ LoseLife | LifeAmount$ X | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SubAbility$ DBGainLife
SVar:DBGainLife:DB$ GainLife | LifeAmount$ X | Defined$ You
SVar:X:Count$CardCounters.P1P1
DeckHas:Ability$Sacrifice|Counters|LifeGain
DeckHints:Ability$Counters
SVar:HasAttackEffect:TRUE
Oracle:Flying\nDevour 1 (As this enters the battlefield, you may sacrifice any number of creatures. This creature enters the battlefield with that many +1/+1 counters on it.)\nWhenever Fell Beast of Mordor enters the battlefield or attacks, target opponent loses X life and you gain X life, where X is the number of +1/+1 counters on it.

View File

@@ -0,0 +1,11 @@
Name:Fell Beast's Shriek
ManaCost:U R
Types:Sorcery
K:Splice:Instant,Sorcery:2 U R
A:SP$ RepeatEach | RepeatPlayers$ Opponent | RepeatSubAbility$ DBChoose | SubAbility$ DBTapAll | SpellDescription$ Each opponent chooses a creature they control. Tap and goad the chosen creatures. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.)
SVar:DBChoose:DB$ ChooseCard | Defined$ Remembered | Amount$ 1 | Choices$ Creature.RememberedPlayerCtrl | Mandatory$ True | RememberChosen$ True
SVar:DBTapAll:DB$ TapAll | ValidCards$ Creature.IsRemembered | SubAbility$ DBGoad
SVar:DBGoad:DB$ Goad | Defined$ Remembered | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
DeckHints:Type$Instant|Sorcery
Oracle:Each opponent chooses a creature they control. Tap and goad the chosen creatures. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.)\nSplice onto instant or sorcery {2}{U}{R} (As you cast an instant or sorcery spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card's effects to that spell.)

View File

@@ -0,0 +1,9 @@
Name:Galadhrim Brigade
ManaCost:2 G
Types:Creature Elf Soldier
PT:2/2
K:Squad:1 G
S:Mode$ Continuous | Affected$ Elf.Other+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Other Elves you control get +1/+1.
DeckHas:Ability$Token
DeckHints:Type$Elf
Oracle:Squad {1}{G} (As an additional cost to cast this spell, you may pay any number of times. When this creature enters the battlefield, create that many tokens that are copies of it.)\nOther Elves you control get +1/+1.