Merge pull request #687 from kevlahnota/master

Combat Toughness
This commit is contained in:
Anthony Calosa
2016-06-10 07:45:17 +08:00
committed by GitHub
7 changed files with 81 additions and 20 deletions
+20 -1
View File
@@ -5552,6 +5552,15 @@ mana={4}{B}{B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Assault Formation
auto=lord(creature|mybattlefield) combattoughness
auto={G}:target(creature[defender]) canattack
auto={2}{G}:lord(creature|myBattlefield) 0/1 ueot
text=Each creature you control assigns combat damage equal to its toughness rather than its power. -- {G}: Target creature with defender can attack this turn as though it didn't have defender. -- {2}{G}: Creatures you control get +0/+1 until end of turn.
mana={1}{G}
type=Enchantment
[/card]
[card]
name=Assault Griffin name=Assault Griffin
abilities=flying abilities=flying
text=Flying text=Flying
@@ -26026,6 +26035,16 @@ power=0
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Doran, the Siege Tower
auto=lord(creature) combattoughness
text=Each creature assigns combat damage equal to its toughness rather than its power.
mana={W}{B}{G}
type=Legendary Creature
subtype=Treefolk Shaman
power=0
toughness=5
[/card]
[card]
name=Dormant Sliver name=Dormant Sliver
auto=lord(sliver) defender auto=lord(sliver) defender
auto=@movedTo(sliver|myBattlefield):draw:1 controller auto=@movedTo(sliver|myBattlefield):draw:1 controller
@@ -115669,7 +115688,7 @@ toughness=5
[card] [card]
name=Wrench Mind name=Wrench Mind
target=player target=player
auto=ability$!choice name(discard 2 cards) target(<2>*|myhand) reject _ choice name(discard artifact) target(artifact|myhand) reject !$ targetedplayer auto=ability$! name(discard 2 cards) choice name(discard 2 cards) target(<2>*|myhand) reject _ if type(artifact|myhand)~morethan~0 then name(discard artifact) choice name(discard artifact) target(artifact|myhand) reject !$ targetedplayer
text=Target player discards two cards unless he or she discards an artifact card. text=Target player discards two cards unless he or she discards an artifact card.
mana={B}{B} mana={B}{B}
type=Sorcery type=Sorcery
@@ -956,12 +956,6 @@ mana={R} // {3}{G}
type=Sorcery // Sorcery type=Sorcery // Sorcery
[/card] [/card]
[card] [card]
name=Assault Formation
text=Each creature you control assigns combat damage equal to its toughness rather than its power. -- {G}: Target creature with defender can attack this turn as though it didn't have defender. -- {2}{G}: Creatures you control get +0/+1 until end of turn.
mana={1}{G}
type=Enchantment
[/card]
[card]
name=Astral Cornucopia name=Astral Cornucopia
text=Astral Cornucopia enters the battlefield with X charge counters on it. -- {T}: Choose a color. Add one mana of that color to your mana pool for each charge counter on Astral Cornucopia. text=Astral Cornucopia enters the battlefield with X charge counters on it. -- {T}: Choose a color. Add one mana of that color to your mana pool for each charge counter on Astral Cornucopia.
mana={X}{X}{X} mana={X}{X}{X}
@@ -5634,15 +5628,6 @@ mana={B}{B}{B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Doran, the Siege Tower
text=Each creature assigns combat damage equal to its toughness rather than its power.
mana={W}{B}{G}
type=Legendary Creature
subtype=Treefolk Shaman
power=0
toughness=5
[/card]
[card]
name=Dormant Gomazoa name=Dormant Gomazoa
text=Flying -- Dormant Gomazoa enters the battlefield tapped. -- Dormant Gomazoa doesn't untap during your untap step. -- Whenever you become the target of a spell, you may untap Dormant Gomazoa. text=Flying -- Dormant Gomazoa enters the battlefield tapped. -- Dormant Gomazoa doesn't untap during your untap step. -- Whenever you become the target of a spell, you may untap Dormant Gomazoa.
mana={1}{U}{U} mana={1}{U}{U}
+48
View File
@@ -0,0 +1,48 @@
#Testing Doran, The Siege Tower
[INIT]
FIRSTMAIN
[PLAYER1]
life:20
inplay:140201, True Conviction
manapool:{3}{U}
[PLAYER2]
life:30
[DO]
next
#begin
next
#attackers
140201
next
#blockers
next
#damage
next
eot
eot
#untap
next
#upkeep
next
#draw
next
#main1
next
#combat begin
next
#attackers
140201
next
#blockers
next
#damage
next
next
[ASSERT]
COMBATEND
[PLAYER1]
inplay:140201, True Conviction
life:40
[PLAYER2]
life:10
[END]
+1
View File
@@ -276,6 +276,7 @@ dingus_staff_i153.txt
Distorting_Wake.txt Distorting_Wake.txt
Distorting_Wake2.txt Distorting_Wake2.txt
divergent_growth.txt divergent_growth.txt
Doran.txt
doomed_necromancer.txt doomed_necromancer.txt
double_strike_i145.txt double_strike_i145.txt
double_strike2_i145.txt double_strike2_i145.txt
+2 -1
View File
@@ -243,7 +243,8 @@ class Constants
LIBRARYEATER = 122, LIBRARYEATER = 122,
DEVOID = 123, DEVOID = 123,
CANTCHANGELIFE = 124, CANTCHANGELIFE = 124,
NB_BASIC_ABILITIES = 125, COMBATTOUGHNESS = 125,
NB_BASIC_ABILITIES = 126,
RARITY_S = 'S', //Special Rarity RARITY_S = 'S', //Special Rarity
+8 -2
View File
@@ -1540,7 +1540,10 @@ int MTGCardInstance::stepPower(CombatStep step)
case FIRST_STRIKE: case FIRST_STRIKE:
case END_FIRST_STRIKE: case END_FIRST_STRIKE:
if (has(Constants::FIRSTSTRIKE) || has(Constants::DOUBLESTRIKE)) if (has(Constants::FIRSTSTRIKE) || has(Constants::DOUBLESTRIKE))
return MAX(0, power); if(has(Constants::COMBATTOUGHNESS))
return MAX(0, toughness);
else
return MAX(0, power);
else else
return 0; return 0;
case DAMAGE: case DAMAGE:
@@ -1549,7 +1552,10 @@ int MTGCardInstance::stepPower(CombatStep step)
if (has(Constants::FIRSTSTRIKE) && !has(Constants::DOUBLESTRIKE)) if (has(Constants::FIRSTSTRIKE) && !has(Constants::DOUBLESTRIKE))
return 0; return 0;
else else
return MAX(0, power); if(has(Constants::COMBATTOUGHNESS))
return MAX(0, toughness);
else
return MAX(0, power);
} }
} }
+2 -1
View File
@@ -154,7 +154,8 @@ const char* Constants::MTGBasicAbilities[] = {
"canplayfromexile", "canplayfromexile",
"libraryeater", "libraryeater",
"devoid", "devoid",
"cantchangelife" "cantchangelife",
"combattoughness"
}; };
map<string,int> Constants::MTGBasicAbilitiesMap; map<string,int> Constants::MTGBasicAbilitiesMap;