Merge pull request #9 from Northmoc/snc_vivien

SNC Vivien and tweaks
This commit is contained in:
Agetian
2022-04-12 13:47:02 +03:00
committed by GitHub
4 changed files with 35 additions and 3 deletions

View File

@@ -172,7 +172,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
} }
final String cardTag = type.contains("card") ? "" : " card"; final String cardTag = type.contains("card") ? "" : " card";
sb.append(Lang.nounWithNumeralExceptOne(num, type + cardTag)).append(", "); sb.append(Lang.nounWithNumeralExceptOne(num, type + cardTag)).append(", ");
if (!sa.hasParam("NoReveal") || !destination.equals("Battlefield")) { if (!sa.hasParam("NoReveal") && !destination.equals("Battlefield")) {
if (choosers.size() == 1) { if (choosers.size() == 1) {
sb.append(num > 1 ? "reveals them, " : "reveals it, "); sb.append(num > 1 ? "reveals them, " : "reveals it, ");
} else { } else {
@@ -294,6 +294,14 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
// for the non-targeted SAs when you choose what is returned on resolution // for the non-targeted SAs when you choose what is returned on resolution
sb.append("Return ").append(num).append(" ").append(type).append(" card(s) "); sb.append("Return ").append(num).append(" ").append(type).append(" card(s) ");
sb.append(" to your ").append(destination); sb.append(" to your ").append(destination);
} else if (origin.equals("Graveyard")) {
// for non-targeted SAs when you choose what is moved on resolution
// this will need expansion as more cards use it
sb.append(chooserNames).append(" puts ");
final String cardTag = type.contains("card") ? "" : " card";
sb.append(num != 0 ? Lang.nounWithNumeralExceptOne(num, type + cardTag) :
sa.getParamOrDefault("ChangeNumDesc", "") + " " + type + cardTag);
sb.append(" into their ").append(destination.toLowerCase()).append(".");
} }
return sb.toString(); return sb.toString();

View File

@@ -213,6 +213,10 @@ public class SacrificeEffect extends SpellAbilityEffect {
String valid = sa.getParamOrDefault("SacValid", "Self"); String valid = sa.getParamOrDefault("SacValid", "Self");
String num = sa.getParamOrDefault("Amount", "1"); String num = sa.getParamOrDefault("Amount", "1");
if (sa.hasParam("Optional")) { // TODO make boolean and handle verb reconjugation throughout
sb.append("(OPTIONAL) ");
}
final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), num, sa); final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), num, sa);
if (valid.equals("Self")) { if (valid.equals("Self")) {
@@ -228,9 +232,9 @@ public class SacrificeEffect extends SpellAbilityEffect {
msg = CardType.CoreType.isValidEnum(msg) ? msg.toLowerCase() : msg; msg = CardType.CoreType.isValidEnum(msg) ? msg.toLowerCase() : msg;
if (sa.hasParam("Destroy")) { if (sa.hasParam("Destroy")) {
sb.append(oneTgtP ? "destroys " : " destroys "); sb.append(oneTgtP ? "destroys " : " destroy ");
} else { } else {
sb.append(oneTgtP ? "sacrifices " : "sacrifices "); sb.append(oneTgtP ? "sacrifices " : "sacrifice ");
} }
sb.append(Lang.nounWithNumeralExceptOne(amount, msg)).append("."); sb.append(Lang.nounWithNumeralExceptOne(amount, msg)).append(".");
} }

View File

@@ -0,0 +1,14 @@
Name:Vivien on the Hunt
ManaCost:4 G G
Types:Legendary Planeswalker Vivien
Loyalty: 4
A:AB$ Sacrifice | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | Optional$ True | SacValid$ Creature | RememberSacrificed$ True | SubAbility$ DBChangeZone | SpellDescription$ You may sacrifice a creature. If you do, search your library for a creature card with mana value equal to 1 plus the sacrificed creature's mana value, put it onto the battlefield, then shuffle.
SVar:DBChangeZone:DB$ ChangeZone | ConditionDefined$ Remembered | ConditionPresent$ Card | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.cmcEQX | ChangeTypeDesc$ creature card with mana value equal to 1 plus the sacrificed creature's mana value | ChangeNum$ 1 | SubAbility$ DBCleanup
SVar:X:Remembered$CardManaCost/Plus.1
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
A:AB$ Mill | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | NumCards$ 5 | RememberMilled$ True | SubAbility$ DBChangeZone2 | SpellDescription$ Mill five cards, then put any number of creature cards milled this way into your hand.
SVar:DBChangeZone2:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Hidden$ True | ChangeType$ Creature.IsRemembered | ChangeTypeDesc$ creature cards milled this way | ChangeNum$ Z | ChangeNumDesc$ any number of | SelectPrompt$ Select any number of creature cards milled this way | SubAbility$ DBCleanup
SVar:Z:Remembered$Valid Creature
A:AB$ Token | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | TokenScript$ g_4_4_rhino_warrior | SpellDescription$ Create a 4/4 green Rhino Warrior creature token.
DeckHas:Ability$Sacrifice|Token|Mill|Graveyard & Type$Rhino
Oracle:[+2]: You may sacrifice a creature. If you do, search your library for a creature card with mana value equal to 1 plus the sacrificed creature's mana value, put it onto the battlefield, then shuffle.\n[+1]: Mill five cards, then put any number of creature cards milled this way into your hand.\n[1]: Create a 4/4 green Rhino Warrior creature token.

View File

@@ -0,0 +1,6 @@
Name:Rhino Warrior Token
ManaCost:no cost
Colors:green
Types:Creature Rhino Warrior
PT:4/4
Oracle: