diff --git a/projects/mtg/bin/Res/sets/ALA/_cards.dat b/projects/mtg/bin/Res/sets/ALA/_cards.dat index 057450a0f..b78c4ed86 100644 --- a/projects/mtg/bin/Res/sets/ALA/_cards.dat +++ b/projects/mtg/bin/Res/sets/ALA/_cards.dat @@ -367,6 +367,15 @@ subtype=Ogre Mutant toughness=1 [/card] [card] +text=All creatures get -2/-2 until end of turn. +auto=loard(creatures) -2/-2 +id=179424 +name=Infest +rarity=U +type=Sorcery +mana={1}{B}{B} +[/card] +[card] text={T}: Add {U} to your mana pool. auto={T}:Add{U} id=174979 @@ -771,6 +780,17 @@ subtype=Human Wizard toughness=1 [/card] [card] +text=Until end of turn, target creature you control gets +3/+3 and other creatures you control get +1/+1. +target=creature|myinplay +auto=2/2 +auto=lord(creatures|myinplay) 1/1 +id=177597 +name=Sigil Blessing +rarity=C +type=Instant +mana={G}{W} +[/card] +[card] text=First strike Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.) abilities=first strike, exalted id=174958 @@ -858,6 +878,18 @@ type=Basic Land subtype=Swamp [/card] [card] +text=Until end of turn, creatures you control get +5/+5 and gain first strike, lifelink, and trample. +auto=lord(creatures|myinplay) 5/5 +auto=lord(creatures|myinplay) lifelink +auto=lord(creatures|myinplay) first strike +auto=lord(creatures|myinplay) trample +id=174839 +name=Titanic Ultimatum +rarity=R +type=Sorcery +mana={R}{R}{G}{G}{G}{W}{W} +[/card] +[card] text=Flying abilities=flying id=174924 diff --git a/projects/mtg/bin/Res/sets/ALA/todo.dat b/projects/mtg/bin/Res/sets/ALA/todo.dat index 3ef5328f2..9375183ff 100644 --- a/projects/mtg/bin/Res/sets/ALA/todo.dat +++ b/projects/mtg/bin/Res/sets/ALA/todo.dat @@ -638,14 +638,7 @@ rarity=R type=Artifact mana={2}{B}{B} [/card] -[card] -text=All creatures get -2/-2 until end of turn. -id=179424 -name=Infest -rarity=U -type=Sorcery -mana={1}{B}{B} -[/card] + [card] text=Count the number of cards in your library. Your life total becomes that number. id=175039 @@ -1240,14 +1233,7 @@ power=5 subtype=Sphinx toughness=5 [/card] -[card] -text=Until end of turn, target creature you control gets +3/+3 and other creatures you control get +1/+1. -id=177597 -name=Sigil Blessing -rarity=C -type=Instant -mana={G}{W} -[/card] + [card] text=Sigil of Distinction comes into play with X charge counters on it. Equipped creature gets +1/+1 for each charge counter on Sigil of Distinction. Equip-Remove a charge counter from Sigil of Distinction. id=174867 @@ -1471,14 +1457,7 @@ power=2 subtype=Bird toughness=1 [/card] -[card] -text=Until end of turn, creatures you control get +5/+5 and gain first strike, lifelink, and trample. -id=174839 -name=Titanic Ultimatum -rarity=R -type=Sorcery -mana={R}{R}{G}{G}{G}{W}{W} -[/card] + [card] text=Tap an untapped creature you control: Topan Ascetic gets +1/+1 until end of turn. id=174999 diff --git a/projects/mtg/bin/Res/test/_tests.txt b/projects/mtg/bin/Res/test/_tests.txt index b338dbaef..f6bb46217 100644 --- a/projects/mtg/bin/Res/test/_tests.txt +++ b/projects/mtg/bin/Res/test/_tests.txt @@ -101,6 +101,7 @@ steelclad_serpent1.txt steelclad_serpent2.txt sword_to_plowshares.txt terror.txt +titanic_ultimatum.txt tranquil_domain.txt volcanic_island.txt wall_of_diffusion.txt @@ -112,4 +113,4 @@ zombify.txt ######################## #Momir Basic Tests ######################## -momir/keldon_warlord.txt \ No newline at end of file +momir/keldon_warlord.txt diff --git a/projects/mtg/bin/Res/test/titanic_ultimatum.txt b/projects/mtg/bin/Res/test/titanic_ultimatum.txt new file mode 100644 index 000000000..812d89994 --- /dev/null +++ b/projects/mtg/bin/Res/test/titanic_ultimatum.txt @@ -0,0 +1,45 @@ +#Test new lord Until end of turn abilities +[INIT] +FIRSTMAIN +[PLAYER1] +inplay:grizzly bears +hand:titanic ultimatum +manapool:{R}{R}{G}{G}{G}{W}{W} +[PLAYER2] +[DO] +titanic ultimatum +next +#combat begin +next +#attackers +grizzly bears +eot +eot +#untap +next +#upkeep +next +#draw +next +#main +next +#combat begins +next +#attackers +grizzly bears +next +#blcokers +next +#combat damage +next +#combatend +[ASSERT] +COMBATEND +[PLAYER1] +inplay:grizzly bears +graveyard:titanic ultimatum +manapool:{0} +life:27 +[PLAYER2] +life:11 +[END] \ No newline at end of file diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 4fe1f56ca..15cd29308 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -1040,6 +1040,18 @@ class ALord:public ListMaintainerAbility{ }; +class ALordUEOT:public ALord{ +public: + ALordUEOT(int _id, MTGCardInstance * card, TargetChooser * _tc, int _includeSelf, int _power = 0 , int _toughness = 0, int _ability = -1, ManaCost * _regenCost = NULL, int _modifier = 1): ALord(_id, card, _tc, _includeSelf, _power , _toughness , _ability , _regenCost, _modifier){ + } + + + int testDestroy(){ + if (newPhase == Constants::MTG_PHASE_AFTER_EOT) return 1; + return 0; + } +}; + //Foreach (plague rats...) class AForeach:public ListMaintainerAbility{ public: diff --git a/projects/mtg/src/GameStateMenu.cpp b/projects/mtg/src/GameStateMenu.cpp index 04e21c374..9fe1cca7b 100644 --- a/projects/mtg/src/GameStateMenu.cpp +++ b/projects/mtg/src/GameStateMenu.cpp @@ -6,7 +6,7 @@ #include "../include/GameApp.h" #include "../include/MTGCard.h" -static const char* GAME_VERSION = "WTH?! 0.6.0 - by WilLoW"; +static const char* GAME_VERSION = "WTH?! 0.6.1 - by WilLoW"; #define ALPHA_WARNING 0 #define DEFAULT_ANGLE_MULTIPLIER 0.4 diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 4c50d5124..0117a2a49 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -609,7 +609,15 @@ int AbilityFactory::magicText(int id, Spell * spell, MTGCardInstance * card){ if (lordType == PARSER_LORD){ - game->addObserver(NEW ALord(id,card,lordTargets,lordIncludeSelf,power,toughness)); + if (!cost){ + if(card->hasType("instant") || card->hasType("sorcery")){ + game->addObserver(NEW ALordUEOT(id,card,lordTargets,lordIncludeSelf,power,toughness)); + }else{ + game->addObserver(NEW ALord(id,card,lordTargets,lordIncludeSelf,power,toughness)); + } + }else{ + //TODO + } }else{ if(tc){ game->addObserver(NEW ATargetterPowerToughnessModifierUntilEOT(id, card,power,toughness, cost, tc,doTap)); @@ -682,7 +690,11 @@ int AbilityFactory::magicText(int id, Spell * spell, MTGCardInstance * card){ break; }else{ if (lordType == PARSER_LORD){ - game->addObserver(NEW ALord(id,card,lordTargets,lordIncludeSelf,0,0,j,0,modifier)); + if(card->hasType("instant") || card->hasType("sorcery")){ + game->addObserver(NEW ALordUEOT(id,card,lordTargets,lordIncludeSelf,0,0,j,0,modifier)); + }else{ + game->addObserver(NEW ALord(id,card,lordTargets,lordIncludeSelf,0,0,j,0,modifier)); + } }else if (lordType == PARSER_ASLONGAS){ game->addObserver(NEW AKirdApe(id,card,lordTargets,lordIncludeSelf,0,0,j,modifier)); }else{