From 182b133719b81651236267500389695a68ee83b6 Mon Sep 17 00:00:00 2001 From: "wagic.laurent" Date: Mon, 25 May 2009 21:07:17 +0000 Subject: [PATCH] =?UTF-8?q?Laurent=20-=20Updated=20the=20discard=20functio?= =?UTF-8?q?n.=20Also=20you=20can=20now=20target=20the=20opponent=20or=20yo?= =?UTF-8?q?urself.=20Once=20again=20this=20is=20the=20discard=20random=20f?= =?UTF-8?q?unction=20also=20mind=20rot=20(10E)=20is=20not=20100%=20correct?= =?UTF-8?q?=20since=20if=20you=20were=20to=20play=20on=20yourself=20you=20?= =?UTF-8?q?should=20be=20able=20to=20choose=20which=20card=20to=20discard.?= =?UTF-8?q?=20If=20a=20card=20as=20no=20target(either=20in=20the=20target?= =?UTF-8?q?=3D=20line=20or=20in=20the=20discard:x=20target(X)=20line=20the?= =?UTF-8?q?n=20it=20automatically=20applies=20to=20you.)=20it=20means=20ca?= =?UTF-8?q?rds=20that=20require=20you=20to=20discard=20a=20card=20at=20ran?= =?UTF-8?q?dom=20in=20addition=20to=20its=20cost=20can=20now=20be=20coded?= =?UTF-8?q?=20(e.g.=20balduvian=20horde=20from=20alliance),=20but=20at=20t?= =?UTF-8?q?he=20moment=20nothing=20will=20happen=20if=20you=20have=20no=20?= =?UTF-8?q?card=20to=20discard=20(did=20not=20test=20this=20one=20but=20it?= =?UTF-8?q?=20could=20be=20added=20if=20necessary).=20Updated=20the=20depl?= =?UTF-8?q?ete=20function.=20You=20can=20use=20deplete=20in=20instant=20an?= =?UTF-8?q?d=20sorcery=20(not=20tested)=20Updated=20rampage=20(add=20an=20?= =?UTF-8?q?issue=20with=20the=20last=20parameter=20and=20the=20annulation?= =?UTF-8?q?=20of=20the=20bonuses=20at=20end=20of=20turn)=20should=20be=20r?= =?UTF-8?q?esolved=20now=20(not=20tested).=20Added=20Basilik=20from=2010E?= =?UTF-8?q?=20and=20also=20lavaborn=20(not=20tested=20yet),=20should=20try?= =?UTF-8?q?=20to=20do=20a=20more=20generic=20basilik=20(abomination,=20coc?= =?UTF-8?q?katrice,=20basilik,=20all=20have=20the=20same=20abilities=20but?= =?UTF-8?q?=20different=20criteria=20for=20the=20=E2=80=9Ctype=E2=80=9D=20?= =?UTF-8?q?of=20creature=20that=20would=20be=20or=20not=20be=20affected.?= =?UTF-8?q?=20Also=20added=20Elvish=20promenade=20from=20LRW=20(this=20one?= =?UTF-8?q?=20is=20fun=20;D)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- projects/mtg/bin/Res/sets/10E/_cards.dat | 36 +++++++ projects/mtg/bin/Res/sets/10E/todo.dat | 35 +----- projects/mtg/bin/Res/sets/CFX/_cards.dat | 2 +- projects/mtg/bin/Res/sets/LRW/_cards.dat | 21 ++++ projects/mtg/bin/Res/sets/LRW/todo.dat | 9 -- projects/mtg/bin/Res/sets/ODY/_cards.dat | 12 +++ projects/mtg/bin/Res/sets/ODY/todo.dat | 11 -- projects/mtg/bin/Res/sets/POR/_cards.dat | 12 +++ projects/mtg/bin/Res/sets/POR/todo.dat | 11 -- projects/mtg/include/AllAbilities.h | 130 ++++++++++++++++++----- projects/mtg/include/MTGDefinitions.h | 12 +-- projects/mtg/src/MTGAbility.cpp | 96 ++++++++++------- projects/mtg/src/MTGDefinitions.cpp | 2 - 13 files changed, 246 insertions(+), 143 deletions(-) diff --git a/projects/mtg/bin/Res/sets/10E/_cards.dat b/projects/mtg/bin/Res/sets/10E/_cards.dat index cb9ddfc89..60cd63bba 100644 --- a/projects/mtg/bin/Res/sets/10E/_cards.dat +++ b/projects/mtg/bin/Res/sets/10E/_cards.dat @@ -1174,6 +1174,18 @@ type=Sorcery mana={4}{R} [/card] [card] +text=At the beginning of each opponent's upkeep, if that player has two or fewer cards in hand, Lavaborn Muse deals 3 damage to him or her. +id=130373 +name=Lavaborn Muse +rarity=R +color=Red +type=Creature +mana={3}{R} +power=3 +subtype=Spirit +toughness=3 +[/card] +[card] text=Haste (This creature can attack and {T} as soon as it comes under your control.) abilities=Haste id=129624 @@ -2239,6 +2251,18 @@ subtype=Drake toughness=2 [/card] [card] +text=Target player loses 4 life and you gain 4 life. +id=129739 +name=Soul Feast +target=player +auto=damage:4 +auto=life:4 +rarity=U +color=Black +type=Sorcery +mana={3}{B}{B} +[/card] +[card] text=Trample, haste (If this creature would deal enough combat damage to its blockers to destroy them, you may have it deal the rest of its damage to defending player. This creature can attack and {T} as soon as it comes under your control.) At end of turn, sacrifice Spark Elemental. abilities=trample,haste auto=@next endofturn:bury @@ -2415,6 +2439,18 @@ type=Basic Land subtype=Swamp [/card] [card] +text=Whenever Sylvan Basilisk becomes blocked by a creature, destroy that creature. +id=135215 +name=Sylvan Basilisk +rarity=U +color=Green +type=Creature +mana={3}{G}{G} +power=2 +subtype=Basilisk +toughness=4 +[/card] +[card] text=Flash (You may play this spell any time you could play an instant.) Reach (This creature can block creatures with flying.) abilities=flash,reach id=135231 diff --git a/projects/mtg/bin/Res/sets/10E/todo.dat b/projects/mtg/bin/Res/sets/10E/todo.dat index 13cc14877..5ff6bf52c 100644 --- a/projects/mtg/bin/Res/sets/10E/todo.dat +++ b/projects/mtg/bin/Res/sets/10E/todo.dat @@ -702,18 +702,6 @@ subtype=Human Knight toughness=2 [/card] [card] -text=At the beginning of each opponent's upkeep, if that player has two or fewer cards in hand, Lavaborn Muse deals 3 damage to him or her. -id=130373 -name=Lavaborn Muse -rarity=R -color=Red -type=Creature -mana={3}{R} -power=3 -subtype=Spirit -toughness=3 -[/card] -[card] text={W}{U}{B}{R}{G}: Remove target permanent from the game. If Legacy Weapon would be put into a graveyard from anywhere, reveal Legacy Weapon and shuffle it into its owner's library instead. id=135242 name=Legacy Weapon @@ -1202,16 +1190,6 @@ subtype=Minion toughness=3 [/card] [card] -text=Target player loses 4 life and you gain 4 life. -id=129739 -name=Soul Feast -target=player -rarity=U -color=Black -type=Sorcery -mana={3}{B}{B} -[/card] -[card] text=Whenever another creature comes into play, you gain 1 life. id=129740 name=Soul Warden @@ -1348,18 +1326,6 @@ type=Enchantment mana={3}{U}{U} [/card] [card] -text=Whenever Sylvan Basilisk becomes blocked by a creature, destroy that creature. -id=135215 -name=Sylvan Basilisk -rarity=U -color=Green -type=Creature -mana={3}{G}{G} -power=2 -subtype=Basilisk -toughness=4 -[/card] -[card] text=Search your library for a land card, reveal it, and put it into your hand. Then shuffle your library. id=130513 name=Sylvan Scrying @@ -1397,6 +1363,7 @@ type=Land [card] text=Flying (This creature can't be blocked except by creatures with flying or reach.) Whenever Thieving Magpie deals damage to an opponent, you draw a card. id=129764 +abilities=flying name=Thieving Magpie rarity=U color=Blue diff --git a/projects/mtg/bin/Res/sets/CFX/_cards.dat b/projects/mtg/bin/Res/sets/CFX/_cards.dat index edf449cdf..e529db566 100644 --- a/projects/mtg/bin/Res/sets/CFX/_cards.dat +++ b/projects/mtg/bin/Res/sets/CFX/_cards.dat @@ -450,7 +450,7 @@ toughness=2 [card] text=Double strike {B}{G}: Viashino Slaughtermaster gets +1/+1 until end of turn. Play this ability only once each turn. abilities=double strike -auto={B}{G}:1/1 limit 1 +auto={B}{G}:1/1 limit:1 id=179245 name=Viashino Slaughtermaster rarity=U diff --git a/projects/mtg/bin/Res/sets/LRW/_cards.dat b/projects/mtg/bin/Res/sets/LRW/_cards.dat index cbcecda81..734e33f7a 100644 --- a/projects/mtg/bin/Res/sets/LRW/_cards.dat +++ b/projects/mtg/bin/Res/sets/LRW/_cards.dat @@ -125,6 +125,15 @@ subtype=Merfolk Rogue toughness=1 [/card] [card] +text=Put a 1/1 green Elf Warrior creature token into play for each Elf you control. +id=139676 +name=Elvish Promenade +rarity=U +type=Sorcery +mana={3}{G} +subtype=Tribal Elf +[/card] +[card] text=Flash Enchant creature Enchanted creature gets +5/+5 and has trample. abilities=flash target=creature @@ -451,6 +460,18 @@ type=Instant mana={3}{W} [/card] [card] +text=Flying Nightshade Stinger can't block. +id=139456 +name=Nightshade Stinger +abilities=flying,cantblock +rarity=C +type=Creature +mana={B} +power=1 +subtype=Faerie Rogue +toughness=1 +[/card] +[card] text=Vigilance, trample abilities=vigilance,trample id=139494 diff --git a/projects/mtg/bin/Res/sets/LRW/todo.dat b/projects/mtg/bin/Res/sets/LRW/todo.dat index c0176aa35..a56b4c028 100644 --- a/projects/mtg/bin/Res/sets/LRW/todo.dat +++ b/projects/mtg/bin/Res/sets/LRW/todo.dat @@ -564,15 +564,6 @@ subtype=Elf Druid toughness=2 [/card] [card] -text=Put a 1/1 green Elf Warrior creature token into play for each Elf you control. -id=139676 -name=Elvish Promenade -rarity=U -type=Tribal Sorcery -mana={3}{G} -subtype=Elf -[/card] -[card] text=Whenever you clash, tap target creature an opponent controls. If you won, that creature doesn't untap during its controller's next untap step. (This ability triggers after the clash ends.) id=146583 name=Entangling Trap diff --git a/projects/mtg/bin/Res/sets/ODY/_cards.dat b/projects/mtg/bin/Res/sets/ODY/_cards.dat index d08cc3aea..053ad67c3 100644 --- a/projects/mtg/bin/Res/sets/ODY/_cards.dat +++ b/projects/mtg/bin/Res/sets/ODY/_cards.dat @@ -654,6 +654,18 @@ type=Enchantment rarity=U [/card] [card] +text=When Minotaur Explorer comes into play, sacrifice it unless you discard a card at random. +id=31786 +auto=discard:1 +name=Minotaur Explorer +rarity=U +type=Creature +mana={1}{R} +power=3 +subtype=Minotaur Scout +toughness=3 +[/card] +[card] text=Mortivore's power and toughness are each equal to the number of creature cards in all graveyards. {B}: Regenerate Mortivore. (The next time this creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.) id=29946 name=Mortivore diff --git a/projects/mtg/bin/Res/sets/ODY/todo.dat b/projects/mtg/bin/Res/sets/ODY/todo.dat index 9edd32457..4319495f2 100644 --- a/projects/mtg/bin/Res/sets/ODY/todo.dat +++ b/projects/mtg/bin/Res/sets/ODY/todo.dat @@ -1144,17 +1144,6 @@ subtype=Dwarf toughness=1 [/card] [card] -text=When Minotaur Explorer comes into play, sacrifice it unless you discard a card at random. -id=31786 -name=Minotaur Explorer -rarity=U -type=Creature -mana={1}{R} -power=3 -subtype=Minotaur Scout -toughness=3 -[/card] -[card] text=Whenever you play an instant or sorcery spell, you may pay {3}. If you do, copy that spell. You may choose new targets for the copy. id=31801 name=Mirari diff --git a/projects/mtg/bin/Res/sets/POR/_cards.dat b/projects/mtg/bin/Res/sets/POR/_cards.dat index 3f4046cc7..767de2b94 100644 --- a/projects/mtg/bin/Res/sets/POR/_cards.dat +++ b/projects/mtg/bin/Res/sets/POR/_cards.dat @@ -879,6 +879,18 @@ toughness=2 abilities=unblockable [/card] [card] +text=When Pillaging Horde comes into play, sacrifice it unless you discard a card at random. +id=4353 +auto=discard:1 +name=Pillaging Horde +rarity=R +type=Creature +mana={2}{R}{R} +power=5 +subtype=Human Barbarian +toughness=5 +[/card] +[card] text={T}: Add {W} to your mana pool. auto={T}: Add {W} id=4425 diff --git a/projects/mtg/bin/Res/sets/POR/todo.dat b/projects/mtg/bin/Res/sets/POR/todo.dat index 63eaa0672..ec4a41176 100644 --- a/projects/mtg/bin/Res/sets/POR/todo.dat +++ b/projects/mtg/bin/Res/sets/POR/todo.dat @@ -456,17 +456,6 @@ type=Sorcery mana={U} [/card] [card] -text=When Pillaging Horde comes into play, sacrifice it unless you discard a card at random. -id=4353 -name=Pillaging Horde -rarity=R -type=Creature -mana={2}{R}{R} -power=5 -subtype=Human Barbarian -toughness=5 -[/card] -[card] text=When Plant Elemental comes into play, sacrifice it unless you sacrifice a Forest. id=4313 name=Plant Elemental diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index abb5d371d..7efcac8dc 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -1613,7 +1613,6 @@ class AOldSchoolDeathtouch:public MTGAbility{ } }; - //Converts a card to a creature (Aura) class AConvertToCreatureAura:public MTGAbility{ public: @@ -3222,6 +3221,102 @@ class AStasis:public ActivatedAbility{ //--------------Addon Abra------------------ +//Basilik +class ABasilik:public MTGAbility{ + public: + MTGCardInstance * opponents[20]; + int nbOpponents; + ABasilik (int _id, MTGCardInstance * _source):MTGAbility(_id, _source){ + nbOpponents = 0; + } + + void Update(float dt){ + if (newPhase != currentPhase){ + if( newPhase == Constants::MTG_PHASE_COMBATDAMAGE){ + nbOpponents = 0; + MTGCardInstance * opponent = source->getNextOpponent(); + while (opponent){ + opponents[nbOpponents] = opponent; + nbOpponents ++; + opponent = source->getNextOpponent(opponent); + } + }else if (newPhase == Constants::MTG_PHASE_COMBATEND){ + for (int i = 0; i < nbOpponents ; i++){ + game->mLayers->stackLayer()->addPutInGraveyard(opponents[i]); + } + } + } + } + + int testDestroy(){ + if(!game->isInPlay(source) && currentPhase != Constants::MTG_PHASE_UNTAP){ + return 0; + }else{ + return MTGAbility::testDestroy(); + } + } + + virtual ostream& toString(ostream& out) const + { + out << "ABasilik ::: opponents : " << opponents + << " ; nbOpponents : " << nbOpponents + << " ("; + return MTGAbility::toString(out) << ")"; + } +}; + + +//Lavaborn - quick and very dirty ;) copy of ALifezonelink but without the multiplier. +class ALavaborn:public MTGAbility{ + public: + int phase; + int condition; + int life; + int controller; + int nbcards; + MTGGameZone * zone; + ALavaborn(int _id ,MTGCardInstance * card, int _phase, int _condition, int _life, int _controller = 0, MTGGameZone * _zone = NULL):MTGAbility(_id, card){ + phase = _phase; + condition = _condition; + controller = _controller; + life = _life; + zone = _zone; + if (zone == NULL){ + if (controller){ + zone = game->currentPlayer->game->hand; + }else{ + zone = game->opponent()->game->hand; + } + } + } + + void Update(float dt){ + if (newPhase != currentPhase && newPhase == phase){ + if ((controller && game->currentPlayer == source->controller()) ||(!controller && game->currentPlayer != source->controller()) ){ + if ((condition < 0 && zone->nb_cards < - condition) ||(condition >0 && zone->nb_cards > condition)){ + int diff = zone->nb_cards - condition; + if (condition < 0) diff = - condition - zone->nb_cards; + if (life > 0){ + game->currentPlayer->life+=life; + }else{ + game->mLayers->stackLayer()->addDamage(source,game->currentPlayer,-life); + } + } + } + } + } +virtual ostream& toString(ostream& out) const + { + out << "ALavaborn ::: phase : " << phase + << " ; condition : " << condition + << " ; life : " << life + << " ; controller : " << controller + << " ; nbcards : " << nbcards + << " ("; + return MTGAbility::toString(out) << ")"; + } +}; + //GenericMillstone class ADeplete:public TargetAbility{ @@ -3241,6 +3336,9 @@ class ADeplete:public TargetAbility{ } return 1; } + const char * getMenuText(){ + return "Deplete"; + } virtual ostream& toString(ostream& out) const { @@ -3330,34 +3428,6 @@ class AShieldOfTheAge: public TargetAbility{ } }; -// People of the Woods -class APeopleOfTheWoods:public ListMaintainerAbility{ - public: - APeopleOfTheWoods(int _id, MTGCardInstance * _source):ListMaintainerAbility(_id, _source){ - } - - int canBeInList(MTGCardInstance * card){ - if (source->controller()->game->inPlay->hasCard(card) && card->hasType("forest") ) return 1; - return 0; - } - - int added(MTGCardInstance * card){ - source->addToToughness(1); - return 1; - } - - int removed(MTGCardInstance * card){ - source->addToToughness(-1); - return 1; - } - - virtual ostream& toString(ostream& out) const - { - out << "APeopleOfTheWoods ::: ("; - return ListMaintainerAbility::toString(out) << ")"; - } -}; - //Abomination Kill blocking creature if white or green class AAbomination :public MTGAbility{ public: @@ -3577,8 +3647,10 @@ class ARampageAbility:public MTGAbility{ } } if( newPhase == Constants::MTG_PHASE_AFTER_EOT ){ + for (int i = 0; i < nbOpponents; i++){ source->power-= PowerModifier; source->addToToughness(-ToughnessModifier); + } } } } diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index ac4432509..5d8cc3a08 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -91,14 +91,12 @@ class Constants MOUNTAINHOME = 33, SWAMPHOME = 34, PLAINSHOME = 35, - FLANKING = 36, - RAMPAGE = 37, - CLOUD = 38, - CANTATTACK = 39, - MUSTATTACK = 40, - CANTBLOCK = 41, + CLOUD = 36, + CANTATTACK = 37, + MUSTATTACK = 38, + CANTBLOCK = 39, - NB_BASIC_ABILITIES = 42, + NB_BASIC_ABILITIES = 40, RARITY_M = 'M', diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 1ecdf8eca..8e0864eda 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -670,9 +670,13 @@ int AbilityFactory::magicText(int id, Spell * spell, MTGCardInstance * card){ if (tc){ game->addObserver (NEW ADeplete(id,card,cost,nbcards,tc,doTap)); }else{ - //todo + Player * player = spell->getNextPlayerTarget(); + MTGLibrary * library = player->game->library; + for (int i = 0; i < nbcards; i++){ + if (library->nb_cards) + player->game->putInZone(library->cards[library->nb_cards-1],library, player->game->graveyard); + } } - } result++; continue; @@ -699,12 +703,19 @@ int AbilityFactory::magicText(int id, Spell * spell, MTGCardInstance * card){ if (tc){ game->addObserver (NEW ADiscard(id,card,cost,nbcards,tc,doTap)); }else{ - for (int i = 0; i < nbcards; i++){ - game->opponent()->game->discardRandom(game->opponent()->game->hand); - } + Player * player = spell->getNextPlayerTarget(); + if(player){ + for (int i=0; igame->discardRandom(player->game->hand); + } + }else{ + for (int i=0; icurrentlyActing()->game->discardRandom(game->currentlyActing()->game->hand); + } + } } } - result++; + result++; continue; } @@ -728,7 +739,7 @@ int AbilityFactory::magicText(int id, Spell * spell, MTGCardInstance * card){ } break; } - int MaxOpponent = atoi(s.substr(found+1).c_str()); + int MaxOpponent = atoi(s.substr(end+1,end+2).c_str()); if(tc){ //TODO?? }else{ @@ -1633,29 +1644,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ break; } - //Addons The Dark - - case 1797: //Inferno does 6 damage to all players and all creatures. - { - for (int i = 0; i < 2 ; i++){ - game->mLayers->stackLayer()->addDamage(card, game->players[i], 6); - for (int j = 0; j < game->players[i]->game->inPlay->nb_cards; j++){ - MTGCardInstance * current = game->players[i]->game->inPlay->cards[j]; - if (current->isACreature()){ - game->mLayers->stackLayer()->addDamage(card, current, 6); - } - } - } - break; - } - - case 1773 : //People of the Woods - { - game->addObserver(NEW APeopleOfTheWoods(_id, card)); - break; - } - - //Addons Legends case 1427: //Abomination { @@ -1734,6 +1722,17 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ game->addObserver(NEW ATargetterPowerToughnessModifierUntilEOT(id, card, 1,2, NEW ManaCost(cost,1),tc)); break; } + +//---addon Alliance--- + + case 3194: // Exile + { + Player * p = card->target->controller(); + p->game->putInZone(card->target,p->game->inPlay,card->owner->game->removedFromGame); + game->currentlyActing()->life+= card->target->toughness; + break; + } + //---addon Tempest--- case 4801: //Ancient Rune { @@ -1797,6 +1796,19 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ card->target->controller()->life-= 3; break; } + + case 130373: //Lavaborn Muse + { + game->addObserver( NEW ALavaborn(_id ,card, Constants::MTG_PHASE_UPKEEP, -2,-3)); + break; + } + case 135215: //Sylvan Basilisk + { + game->addObserver( NEW ABasilik (_id ,card)); + break; + } + + //--- addon shm--- case 146013: //Corrupt { @@ -1808,18 +1820,30 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ } // --- addon Invasion--- - case 23195: //Artifact Mutation (works fine but display is strange if you bury a target from opponent, need to wait your turn to have the token put in play) + case 23195: //Artifact Mutation (works fine but display is strange if you bury a target from opponent) { card->target->controller()->game->putInGraveyard(card->target); int x = card->target->getManaCost()->getConvertedCost(); ATokenCreator * tok = NEW ATokenCreator(id,card,NEW ManaCost(),"Saproling token","creature",1,1,"green",0); for (int i=0; i < x; i++){ tok->resolve(); - } - delete tok; + } break; } + +// --- addon Lorwynn--- + case 139676: // Elvish Promenade + { + int x = card->controller()->game->inPlay->countByType("Elf"); + ATokenCreator * tok = NEW ATokenCreator(id,card,NEW ManaCost(),"Elf Warrior token","creature",1,1,"green",0); + for (int i=0; i < x-1; i++){ + tok->resolve(); + } + break; + } + + default: break; } @@ -1863,12 +1887,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ game->addObserver(NEW AStrongLandLinkCreature(_id, card,"plains")); } - // New Abilities Flanking and Rampage - - if (card->basicAbilities [Constants::RAMPAGE]){ - game->addObserver (NEW ARampageAbility(_id, card, 1, 1,1)); - } - //Instants are put in the graveyard automatically if that's not already done if (!putSourceInGraveyard){ if (card->hasType("instant") || card->hasType("sorcery")){ diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index db0596539..bd035d825 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -44,8 +44,6 @@ const char* Constants::MTGBasicAbilities[] = { "moutainhome", "swamphome", "plainshome", -"flanking", -"rampage", "cloud", "cantattack", "mustattack",