diff --git a/projects/mtg/bin/Res/sets/10E/_cards.dat b/projects/mtg/bin/Res/sets/10E/_cards.dat index 502137763..fb0efabfe 100644 --- a/projects/mtg/bin/Res/sets/10E/_cards.dat +++ b/projects/mtg/bin/Res/sets/10E/_cards.dat @@ -79,6 +79,7 @@ toughness=4 [card] text=Whenever a player plays a white spell, you may gain 1 life. id=129466 +auto=@movedTo(*[white]|stack):may life:1 name=Angel's Feather rarity=U color=Artifact @@ -609,6 +610,7 @@ mana={3}{R} text=Whenever a player plays a black spell, you may gain 1 life. id=129523 name=Demon's Horn +auto=@movedTo(*[black]|stack):may life:1 rarity=U color=Artifact type=Artifact @@ -662,6 +664,7 @@ mana={4}{R}{R} [card] text=Whenever a player plays a red spell, you may gain 1 life. id=129527 +auto=@movedTo(*[red]|stack):may life:1 name=Dragon's Claw rarity=U color=Artifact @@ -1404,6 +1407,7 @@ toughness=3 text=Whenever a player plays a blue spell, you may gain 1 life. id=129619 name=Kraken's Eye +auto=@movedTo(*[blue]|stack): may life:1 rarity=U color=Artifact type=Artifact @@ -2512,6 +2516,7 @@ toughness=2 [card] text=Whenever another creature comes into play, you gain 1 life. id=129740 +auto=@movedTo(*|battlefield): life:1 name=Soul Warden rarity=U color=White @@ -3001,6 +3006,7 @@ toughness=2 [card] text=At the beginning of each upkeep, put a 1/1 green Saproling creature token into play under your control. id=129788 +auto=@each upkeep:token(Saproling,Creature Saproling,1/1,green) name=Verdant Force rarity=R color=Green @@ -3126,6 +3132,7 @@ mana={2}{W}{W} [card] text=Whenever a player plays a green spell, you may gain 1 life. id=129809 +auto=@movedTo(*[green]|stack): may life:1 name=Wurm's Tooth rarity=U color=Artifact diff --git a/projects/mtg/bin/Res/sets/MIR/_cards.dat b/projects/mtg/bin/Res/sets/MIR/_cards.dat index 439735df5..59a1f1a3b 100644 --- a/projects/mtg/bin/Res/sets/MIR/_cards.dat +++ b/projects/mtg/bin/Res/sets/MIR/_cards.dat @@ -43,6 +43,15 @@ toughness=1 rarity=C [/card] [card] +text=Tap all nonwhite creatures. +id=3480 +auto=tap all(creature[-white]) +name=Blinding Light +rarity=U +type=Sorcery +mana={2}{W} +[/card] +[card] text=Defender (This creature can't attack.) id=3430 name=Blistering Barrier diff --git a/projects/mtg/bin/Res/sets/MIR/todo.dat b/projects/mtg/bin/Res/sets/MIR/todo.dat index ed8c7ab46..a5300fdc6 100644 --- a/projects/mtg/bin/Res/sets/MIR/todo.dat +++ b/projects/mtg/bin/Res/sets/MIR/todo.dat @@ -255,14 +255,6 @@ type=Instant mana={2}{R}{R} [/card] [card] -text=Tap all nonwhite creatures. -id=3480 -name=Blinding Light -rarity=U -type=Sorcery -mana={2}{W} -[/card] -[card] text=Defender (This creature can't attack.) id=3430 name=Blistering Barrier diff --git a/projects/mtg/bin/Res/sets/RV/_cards.dat b/projects/mtg/bin/Res/sets/RV/_cards.dat index a3122e33d..eac29a64f 100644 --- a/projects/mtg/bin/Res/sets/RV/_cards.dat +++ b/projects/mtg/bin/Res/sets/RV/_cards.dat @@ -126,6 +126,9 @@ subtype=Mountain Swamp [card] text=Basalt Monolith doesn't untap during your untap step. {3}: Untap Basalt Monolith. {T}: Add {3} to your mana pool. id=1096 +auto=doesnotuntap +auto={3}:untap +auto={T}:add:{3} name=Basalt Monolith rarity=U type=Artifact @@ -248,6 +251,8 @@ mana={X}{U}{U} [card] text=Brass Man doesn't untap during your untap step. At the beginning of your upkeep, you may pay {1}. If you do, untap Brass Man. id=1099 +auto=doesnotuntap +auto={1}:untap name=Brass Man rarity=U type=Artifact Creature @@ -460,6 +465,7 @@ mana={1} text=Enchant land At the beginning of the upkeep of enchanted land's controller, Cursed Land deals 1 damage to that player. target=land id=1148 +alias=1200 name=Cursed Land rarity=U type=Enchantment @@ -1107,6 +1113,9 @@ subtype=Island [card] text=Island Fish Jasconius can't attack unless defending player controls an Island. Jasconius doesn't untap during your untap step. At the beginning of your upkeep, you may pay {U}{U}{U}. If you do, untap Jasconius. When you control no Islands, sacrifice Jasconius. id=1203 +abilities=islandhome +auto=doesnotuntap +auto={U}{U}{U}:untap name=Island Fish Jasconius rarity=R type=Creature @@ -1596,7 +1605,7 @@ text=Pirate Ship can't attack unless defending player controls an Island. {T id=1214 name=Pirate Ship abilities=islandhome -auto={T}:damage target(creature,player) +auto={T}:damage:1 target(creature,player) rarity=R type=Creature mana={4}{U} @@ -1887,6 +1896,7 @@ toughness=1 [card] text=Sea Serpent can't attack unless defending player controls an Island. When you control no Islands, sacrifice Sea Serpent. id=1220 +abilities=islandhome name=Sea Serpent rarity=C type=Creature diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 9353f27e3..16c58c1a9 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -37,7 +37,7 @@ public: } int triggerOnEvent(WEvent * event){ - WEventZoneChange * e = dynamic_cast(event); + WEventZoneChange * e = dynamic_cast(event); if (!e) return 0; if (!toTc->canTarget(e->card)) return 0; if (fromTc && !fromTc->targetsZone(e->from)) return 0; @@ -4016,54 +4016,6 @@ class AGravebornMuse: public TriggeredAbility{ } }; -// Verdant Force -class AVerdantForce: public TriggeredAbility{ - public: - listtypes; - AVerdantForce(int _id, MTGCardInstance * _source):TriggeredAbility(_id, _source){ - string s = "Saproling Creature"; - while (s.size()){ - unsigned int found = s.find(" "); - if (found != string::npos){ - int id = Subtypes::subtypesList->Add(s.substr(0,found)); - types.push_back(id); - s = s.substr(found+1); - }else{ - int id = Subtypes::subtypesList->Add(s); - types.push_back(id); - s = ""; - } - } - } - int trigger(){ - if (newPhase != currentPhase && newPhase == Constants::MTG_PHASE_UPKEEP) return 1; - return 0; - } - int resolve(){ - Token * myToken = NEW Token("Saproling",source,1,1); - list::iterator it; - for ( it=types.begin() ; it != types.end(); it++ ){ - myToken->addType(*it); - } - myToken->setColor(Constants::MTG_COLOR_GREEN); - source->controller()->game->stack->addCard(myToken); - Spell * spell = NEW Spell(myToken); - spell->resolve(); - delete spell; - return 1; - } - virtual ostream& toString(ostream& out) const - { - out << "AVerdantForce ::: ("; - return TriggeredAbility::toString(out) << ")"; - } - - AVerdantForce * clone() const{ - AVerdantForce * a = NEW AVerdantForce(*this); - a->isClone = 1; - return a; - } -}; //Instant Steal control of a target class AInstantControlSteal: public InstantAbility{ diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index c9dd73d1f..ec794ba9f 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -852,17 +852,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ game->addObserver(ability); break; } - case 1096: //Basalt Monolith - { - int cost[] = {Constants::MTG_COLOR_ARTIFACT, 3}; - AManaProducer * ability = NEW AManaProducer(_id, card, NEW ManaCost(cost,1)); - AUntapManaBlocker * ability2 = NEW AUntapManaBlocker(_id+1, card, NEW ManaCost(cost,1)); - AUnBlocker * ability3 = NEW AUnBlocker(_id+1, card,card, NEW ManaCost(cost,1)); - game->addObserver(ability); - game->addObserver(ability2); - game->addObserver(ability3); - break; - } case 1097: //Black Vise { game->addObserver( NEW ALifeZoneLink(_id ,card, Constants::MTG_PHASE_UPKEEP, 4)); @@ -878,12 +867,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ } break; } - case 1099: //Brass Man - { - int cost[] = {Constants::MTG_COLOR_ARTIFACT, 1}; - game->addObserver(NEW AUntapManaBlocker(_id, card, NEW ManaCost(cost,1))); - break; - } case 1237: //Channel { game->addObserver(NEW AChannel(_id, card)); @@ -1144,11 +1127,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ card->target = ((MTGCardInstance * )a->target); break; } - case 1148 : //Cursed lands - { - game->addObserver(NEW AWanderlust(_id, card, card->target)); - break; - } case 1156: //Drain Life { Damageable * target = spell->getNextDamageableTarget(); @@ -1270,36 +1248,16 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ game->addObserver(NEW AControlStealAura(_id, card, card->target)); break; } - case 1200 : //Feedback { game->addObserver(NEW AWanderlust(_id, card, card->target)); break; } - - case 1203: //Island Fish - { - int cost[] = {Constants::MTG_COLOR_BLUE, 3}; - game->addObserver(NEW AUntapManaBlocker(_id, card, NEW ManaCost(cost,1))); - game->addObserver(NEW AStrongLandLinkCreature(_id, card, "island")); - break; - } - case 1214: //Pirate Ship - { - game->addObserver(NEW AStrongLandLinkCreature(_id, card, "island")); - game->addObserver(NEW TADamager(_id+1, card, NEW ManaCost(), 1)); - break; - } case 1218: //Psychic Venom { game->addObserver(NEW APsychicVenom(_id, card, card->target)); break; } - case 1220: //Sea Serpent - { - game->addObserver(NEW AStrongLandLinkCreature(_id, card, "island")); - break; - } case 1221: //Serendib Efreet { game->addObserver( NEW ASerendibEfreet(_id, card)); @@ -1664,14 +1622,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ //-- addon 10E--- - case 129740: // Soul Warden - { - TargetChooser * tc = NULL; - TargetChooserFactory tcf; - tc = tcf.createTargetChooser("creature", card); - game->addObserver ( NEW ALifeModifierPutinplay(_id,card,tc,1,1,1)); - break; - } case 129710: //Angelic Chorus { @@ -1692,31 +1642,7 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ lordTargets = tcf.createTargetChooser("creature", card); break; } - case 129523: //Demon's Horn - { - game->addObserver( NEW ASpellCastLife(_id, card, Constants::MTG_COLOR_BLACK, NEW ManaCost() , 1)); - break; - } - case 129527: //Dragon's Claw - { - game->addObserver( NEW ASpellCastLife(_id, card, Constants::MTG_COLOR_RED, NEW ManaCost() , 1)); - break; - } - case 129619: //Kraken's Eye - { - game->addObserver( NEW ASpellCastLife(_id, card, Constants::MTG_COLOR_BLUE, NEW ManaCost() , 1)); - break; - } - case 129809: //Wurm's Tooth - { - game->addObserver( NEW ASpellCastLife(_id, card, Constants::MTG_COLOR_GREEN, NEW ManaCost() , 1)); - break; - } - case 129466: //Angel's Feather - { - game->addObserver( NEW ASpellCastLife(_id, card, Constants::MTG_COLOR_WHITE, NEW ManaCost() , 1)); - break; - } + case 129909: //Cryoclasm { card->target->controller()->game->putInGraveyard(card->target); @@ -1758,11 +1684,7 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ break; } - case 129788: // Verdant Force - { - game->addObserver( NEW AVerdantForce(_id,card)); - break; - } + case 135215: //Sylvan Basilisk { game->addObserver( NEW ABasilik (_id ,card));