diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index 1ce4452b5..f94a93173 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -110,10 +110,10 @@ $AUTO_DEFINE _CLASH_ Put here a code if compare the casting cost based on Errati #AUTO_DEFINE _SOULSHIFT_($c) @movedTo(this|myGraveyard) from(battlefield):may moveTo(myHand) target(creature[spirit;manacost<=$c]|myGraveyard) # Ascend, Set XLN -#AUTO_DEFINE _ASCEND_ if type(*[City's_blessing]|mybattlefield)~lessthan~1 then transforms((,newability[if type(*|mybattlefield)~morethan~9 then token(City's_blessing^notrigger)])) oneshot +#AUTO_DEFINE _ASCEND_ if type(City's Blessing|mybattlefield)~lessthan~1 then transforms((,newability[if type(*|mybattlefield)~morethan~9 then token(City's Blessing^notrigger)])) oneshot # Effect with the City's blessing, Set XLN -#AUTO_DEFINE _CITY'S_BLESSING_ aslongas(*[City's_blessing]|mybattlefield)>0 +#AUTO_DEFINE _CITY'S_BLESSING_ aslongas(City's Blessing|mybattlefield)>0 # Monarch #AUTO_DEFINE _MONARCH_CONTROLLER_ if type(The Monarch|battlefield)~lessthan~1 then token(The Monarch) else all(The Monarch|battlefield) moveto(mybattlefield) and!( transforms((,newability[becomesmonarch controller])) forever )! diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index a2e47ca47..b7c0cd9c7 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -33087,7 +33087,6 @@ type=Artifact [/card] [card] name=Jared Carthalion, True Heir -abilities=haste auto=_MONARCH_OPPONENT_ auto=emblem transforms((,newability[@becomesmonarchof(player):name(You can't become the monarch) _MONARCH_OPPONENT_])) ueot auto=this(variable{pmonarch}>0) vigor @@ -61324,8 +61323,7 @@ toughness=5 [/card] [card] name=Stormwild Capridor -abilities=flying -auto=@damaged(this) from(NoncombatDamage):all(trigger[to]) vigor +abilities=flying,noncombatvigor text=Flying -- If noncombat damage would be dealt to Stormwild Capridor, prevent that damage. Put a +1/+1 counter on Stormwild Capridor for each 1 damage prevented this way. mana={2}{W} type=Creature diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index c36256e41..6371a2d99 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -316,7 +316,8 @@ class Constants DUNGEONCOMPLETED = 189, PERPETUALLIFELINK = 190, PERPETUALDEATHTOUCH = 191, - NB_BASIC_ABILITIES = 192, + NONCOMBATVIGOR = 192, + NB_BASIC_ABILITIES = 193, RARITY_S = 'S', //Special Rarity RARITY_M = 'M', //Mythics diff --git a/projects/mtg/src/Damage.cpp b/projects/mtg/src/Damage.cpp index b6781121c..d915ef7cb 100644 --- a/projects/mtg/src/Damage.cpp +++ b/projects/mtg/src/Damage.cpp @@ -116,6 +116,14 @@ int Damage::resolve() } damage = 0; } + if ((_target)->has(Constants::NONCOMBATVIGOR) && typeOfDamage != DAMAGE_COMBAT) + { + for (int j = damage; j > 0; j--) + { + (_target)->counters->addCounter(1, 1); + } + damage = 0; + } if ((_target)->has(Constants::HYDRA)) { for (int j = damage; j > 0; j--) diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index a4df78c72..d33dc5679 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -222,7 +222,8 @@ const char* Constants::MTGBasicAbilities[] = { "counterdeath", //It gains a 1/1 counter when it returns from graveyard (to use with inplaydeath and inplaytapdeath)" "dungeoncompleted", //This dungeon has been completed "perpetuallifelink", //It gains lifelink perpetually - "perpetualdeathtouch" //It gains deathtouch perpetually + "perpetualdeathtouch", //It gains deathtouch perpetually + "noncombatvigor" //instead of taking non-combat damage the source gains +1/+1 counters (e.g. "Stormwild Capridor") }; map Constants::MTGBasicAbilitiesMap;