-Various card fixes
This commit is contained in:
wagic.the.homebrew@gmail.com
2009-09-06 09:55:11 +00:00
parent 5a2a4a7617
commit 8771ee7579
15 changed files with 197 additions and 138 deletions
+2 -2
View File
@@ -1612,7 +1612,7 @@ toughness=*
[card]
text={T}: Orcish Artillery deals 2 damage to target creature or player and 3 damage to you.
id=129663
alias=1309
auto={T}:damage:2 target(creature,player) && damage:3 controller
name=Orcish Artillery
rarity=U
type=Creature
@@ -2941,4 +2941,4 @@ mana={1}{W}
power=2
subtype=Human Knight
toughness=1
[/card]
[/card]
+1 -13
View File
@@ -674,16 +674,4 @@ subtype=Frog
auto={U}:flying
power=1
toughness=3
[/card]
[card]
text=When Wood Elves comes into play, search your library for a Forest card and put that card into play. Then shuffle your library.
auto=moveTo(mybattlefield) target(forest|myLibrary)
id=6135
name=Wood Elves
rarity=C
mana={2}{G}
type=Creature
subtype=Elf Scout
power=1
toughness=1
[/card]
[/card]
+18 -7
View File
@@ -1,4 +1,4 @@
[card]
[card]
id=6071
name=AEther Tide
mana={X}{U}
@@ -188,7 +188,7 @@ id=6120
name=Flowstone Flood
mana={3}{R}
type=Sorcery
text=BuybackPay 3 life, Discard a card at random (You may pay 3 life and discard a card at random in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves.) Destroy target land.
text=Buyback?Pay 3 life, Discard a card at random (You may pay 3 life and discard a card at random in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves.) Destroy target land.
rarity=U
[/card]
[card]
@@ -196,7 +196,7 @@ id=5157
name=Forbid
mana={1}{U}{U}
type=Instant
text=BuybackDiscard two cards. (You may discard two cards in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves.) Counter target spell.
text=Buyback?Discard two cards. (You may discard two cards in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves.) Counter target spell.
rarity=U
[/card]
[card]
@@ -498,7 +498,7 @@ id=6044
name=Pegasus Stampede
mana={1}{W}
type=Sorcery
text=BuybackSacrifice a land. (You may sacrifice a land in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves.) Put a 1/1 white Pegasus creature token with flying into play.
text=Buyback?Sacrifice a land. (You may sacrifice a land in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves.) Put a 1/1 white Pegasus creature token with flying into play.
rarity=U
[/card]
[card]
@@ -536,7 +536,7 @@ id=6037
name=Reaping the Rewards
mana={W}
type=Instant
text=BuybackSacrifice a land. (You may sacrifice a land in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves.) You gain 2 life.
text=Buyback?Sacrifice a land. (You may sacrifice a land in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves.) You gain 2 life.
rarity=C
[/card]
[card]
@@ -613,7 +613,7 @@ id=6097
name=Slaughter
mana={2}{B}{B}
type=Instant
text=BuybackPay 4 life. (You may pay 4 life in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves.) Destroy target nonblack creature. It can't be regenerated.
text=Buyback?Pay 4 life. (You may pay 4 life in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves.) Destroy target nonblack creature. It can't be regenerated.
rarity=U
[/card]
[card]
@@ -750,7 +750,18 @@ toughness=7
text=Defender (This creature can't attack.) At end of combat, remove from the game all creatures blocked by Wall of Nets. When Wall of Nets leaves play, return to play under their owners' control all creatures removed from the game with Wall of Nets.
rarity=R
[/card]
[card]
text=When Wood Elves comes into play, search your library for a Forest card and put that card into play. Then shuffle your library.
auto=moveTo(mybattlefield) target(forest|myLibrary)
id=6135
name=Wood Elves
rarity=C
mana={2}{G}
type=Creature
subtype=Elf Scout
power=1
toughness=1
[/card]
[card]
id=6156
name=Workhorse
+1 -1
View File
@@ -1380,7 +1380,7 @@ subtype=Rat
power=2
toughness=2
text=Relentless Rats gets +1/+1 for each other creature on the battlefield named Relentless Rats. A deck can have any number of cards named Relentless Rats.
auto=foreach(Relentless Rats) 1/1
auto=foreach(Relentless Rats) 1/1 other
rarity=U
[/card]
[card]
+1 -13
View File
@@ -1624,18 +1624,6 @@ mana={1}{G}{G}
type=Sorcery
[/card]
[card]
text=When Wood Elves comes into play, search your library for a Forest card and put that card into play. Then shuffle your library.
auto=moveTo(inPlay) target(forest|myLibrary)
id=4327
name=Wood Elves
rarity=R
type=Creature
mana={2}{G}
power=1
subtype=Elf Scout
toughness=1
[/card]
[card]
text=Destroy all creatures. They can't be regenerated.
auto=bury all(creature)
alias=1372
@@ -1644,4 +1632,4 @@ name=Wrath of God
rarity=R
mana={2}{W}{W}
type=Sorcery
[/card]
[/card]
+12 -1
View File
@@ -520,4 +520,15 @@ rarity=U
type=Sorcery
mana={2}{U}
[/card]
[card]
text=When Wood Elves comes into play, search your library for a Forest card and put that card into play. Then shuffle your library.
auto=moveTo(inPlay) target(forest|myLibrary)
id=4327
name=Wood Elves
rarity=R
type=Creature
mana={2}{G}
power=1
subtype=Elf Scout
toughness=1
[/card]
+3
View File
@@ -1541,6 +1541,7 @@ toughness=2
text={T}: Orcish Artillery deals 2 damage to target creature or player and 3 damage to you.
id=1309
name=Orcish Artillery
auto={T}:damage:2 target(creature,player) && damage:3 controller
rarity=U
type=Creature
mana={1}{R}{R}
@@ -2260,6 +2261,8 @@ subtype=Aura
[card]
text=Enchant creature Enchanted creature gets +3/+3. At the beginning of the upkeep of enchanted creature's controller, put a -1/-1 counter on that creature.
target=creature
auto=3/3
auto=@each targetcontroller upkeep:counter(-1/-1)
id=1228
name=Unstable Mutation
rarity=C
+5
View File
@@ -85,6 +85,7 @@ dross_harvester.txt
elvish_piper.txt
elvish_promenade.txt
fastbond.txt
fastbond2.txt
fault_line.txt
fists_of_ironwood.txt
flare.txt
@@ -106,6 +107,7 @@ goblin_king.txt
gravedigger.txt
#hammerfist_giant.txt
hannas_custody.txt
#harpoon_sniper.txt uncomment when damages are correctly resolved at the damage resolution step
hellfire.txt
howl_of_the_night_pack.txt
hymn_of_rebirth.txt
@@ -138,7 +140,9 @@ nightmare.txt
northern_paladin.txt
northern_paladin2.txt
Nyxathid.txt
orcish_artillery.txt
orcish_lumberjack.txt
overrun.txt
paralysis.txt
paralysis2.txt
persuasion.txt
@@ -185,6 +189,7 @@ terror.txt
titanic_ultimatum.txt
tranquil_domain.txt
volcanic_island.txt
unstable_mutation.txt
wall_of_diffusion.txt
wall_of_diffusion2.txt
welkin_hawk.txt
+19
View File
@@ -0,0 +1,19 @@
#Bug:Fastbond doesn't work properly the turn it comes into play
[INIT]
FIRSTMAIN
[PLAYER1]
hand:forest,mountain,plains,fastbond
[PLAYER2]
[DO]
forest
forest
fastbond
mountain
plains
[ASSERT]
FIRSTMAIN
[PLAYER1]
inplay:forest,mountain,plains,fastbond
life:18
[PLAYER2]
[END]
@@ -0,0 +1,26 @@
#Bug: harpoon sniper doesn't work correctly
[INIT]
COMBATATTACKERS
[PLAYER1]
inplay:grizzly bears
[PLAYER2]
inplay:harpoon sniper,coral merfolk,plains
[DO]
grizzly bears
next
#blockers
plains
harpoon sniper
choice 1
grizzly bears
next
#damage
next
#combat end
[ASSERT]
COMBATEND
[PLAYER1]
graveyard:grizzly bears
[PLAYER2]
inplay:harpoon sniper,coral merfolk,plains
[END]
@@ -0,0 +1,21 @@
#Bug: Orcish Artillery does not tap
[INIT]
FIRSTMAIN
[PLAYER1]
inplay:orcish artillery
[PLAYER2]
inplay:grizzly bears,white knight
[DO]
orcish artillery
white knight
orcish artillery
grizzly bears
[ASSERT]
FIRSTMAIN
[PLAYER1]
inplay:orcish artillery
life:17
[PLAYER2]
inplay:grizzly bears
graveyard:white knight
[END]
+30
View File
@@ -0,0 +1,30 @@
#Bug: Overrun from M10 seems not to work properly.It has regrowth effect instead
[INIT]
FIRSTMAIN
[PLAYER1]
inplay:grizzly bears,dragon engine
hand:189906
manapool:{2}{G}{G}{G}
[PLAYER2]
[DO]
189906
next
#begins
next
#attack
grizzly bears
dragon engine
next
#block
next
#damage
next
#end
[ASSERT]
COMBATEND
[PLAYER1]
inplay:grizzly bears,dragon engine
graveyard:189906
[PLAYER2]
life:11
[END]
@@ -0,0 +1,43 @@
#Bug: unstable mutation doesn't give +3/+3
[INIT]
FIRSTMAIN
[PLAYER1]
inplay:raging goblin
hand:unstable mutation
manapool:{U}
[PLAYER2]
[DO]
unstable mutation
raging goblin
next
#combat begins
next
#attackers
raging goblin
eot
eot
#untap
next
#upkeep
next
#draw
next
#main
next
#combat
next
#atackers
raging goblin
next
#blockers
next
#damage
next
end
[ASSERT]
COMBATEND
[PLAYER1]
inplay:raging goblin,unstable mutation
[PLAYER2]
life:13
[END]
+7 -89
View File
@@ -973,35 +973,6 @@ class APowerToughnessModifier: public MTGAbility{
};
// Permanent life alteration evry turn of the target's controller. Useful only for unstable mutation currently
class APowerToughnessModifierRegularCounter:public MTGAbility{
public:
int power, toughness;
int phase;
APowerToughnessModifierRegularCounter(int id, MTGCardInstance * _source, MTGCardInstance * _target, int _phase, int _power, int _toughness):MTGAbility(id,_source,_target),power(_power),toughness(_toughness), phase(_phase){
}
void Update(float dt){
if (newPhase !=currentPhase && newPhase==phase && game->currentPlayer==((MTGCardInstance *)target)->controller()){
((MTGCardInstance *)target)->power += power;
((MTGCardInstance *)target)->addToToughness(toughness);
}
}
virtual ostream& toString(ostream& out) const
{
out << "APowerToughnessModifierRegularCounter ::: power : " << power
<< " ; toughness : " << toughness
<< " ; phase : " << phase
<< " (";
return MTGAbility::toString(out) << ")";
}
APowerToughnessModifierRegularCounter * clone() const{
APowerToughnessModifierRegularCounter * a = NEW APowerToughnessModifierRegularCounter(*this);
a->isClone = 1;
return a;
}
};
//Alteration of Power and Toughness until end of turn (TargetAbility)
// Gives +n/+m until end of turn to any card that's a target
@@ -2763,6 +2734,11 @@ class AFastbond:public TriggeredAbility{
int previous;
AFastbond(int _id, MTGCardInstance * card):TriggeredAbility(_id, card){
alreadyPlayedALand = 0;
if (source->controller()->canPutLandsIntoPlay == 0){
alreadyPlayedALand = 1;
source->controller()->canPutLandsIntoPlay = 1;
}
previous = source->controller()->canPutLandsIntoPlay;
}
void Update(float dt){
@@ -2773,7 +2749,7 @@ class AFastbond:public TriggeredAbility{
}
int trigger(){
if(source->controller()->canPutLandsIntoPlay==0 && previous ==1){
if(source->controller()->canPutLandsIntoPlay==0 && previous == 1){
previous = 0;
source->controller()->canPutLandsIntoPlay = 1;
if (alreadyPlayedALand) return 1;
@@ -2786,6 +2762,7 @@ class AFastbond:public TriggeredAbility{
int resolve(){
game->mLayers->stackLayer()->addDamage(source, source->controller(), 1);
game->mLayers->stackLayer()->resolve();
return 1;
}
@@ -3412,29 +3389,6 @@ class AForceOfNature:public ActivatedAbility{
};
//1309 Orcish Artilery
class AOrcishArtillery: public TADamager{
public:
AOrcishArtillery(int _id,MTGCardInstance * card): TADamager(_id, card, NEW ManaCost(), 2){
}
int resolve(){
TADamager::resolve();
game->mLayers->stackLayer()->addDamage(source,source->controller(), 3);
return 1;
}
AOrcishArtillery * clone() const{
AOrcishArtillery * a = NEW AOrcishArtillery(*this);
a->isClone = 1;
return a;
}
};
//1351 Island Sanctuary
class AIslandSanctuary:public MTGAbility{
public:
@@ -3755,42 +3709,6 @@ class AARandomDiscarder:public ActivatedAbilityTP{
}
};
// Generic Karma
class ADamageForTypeControlled: public TriggeredAbility{
public:
char type[20];
ADamageForTypeControlled(int _id, MTGCardInstance * _source,const char * _type):TriggeredAbility(_id, _source){
sprintf(type,"%s",_type);
}
int trigger(){
if (newPhase != currentPhase && newPhase == Constants::MTG_PHASE_UPKEEP) return 1;
return 0;
}
int resolve(){
int totaldamage = 0;
MTGGameZone * zone = game->currentPlayer->game->inPlay;
for (int i = 0; i < zone->nb_cards; i++){
if (zone->cards[i]->hasType(type)) totaldamage++;;
}
if (totaldamage) game->mLayers->stackLayer()->addDamage(source,game->currentPlayer, totaldamage);
return 1;
}
virtual ostream& toString(ostream& out) const
{
out << "ADamageForTypeControlled ::: type : " << type
<< " (";
return TriggeredAbility::toString(out) << ")";
}
ADamageForTypeControlled * clone() const{
ADamageForTypeControlled * a = NEW ADamageForTypeControlled(*this);
a->isClone = 1;
return a;
}
};
// Dreamborn Muse
class ADreambornMuse: public TriggeredAbility{
+8 -12
View File
@@ -99,6 +99,7 @@ TriggeredAbility * AbilityFactory::parseTrigger(string magicText, int id, Spell
int who = 0;
if (s.find("my") != string::npos) who = 1;
if (s.find("opponent") != string::npos) who = -1;
if (s.find("targetcontroller") != string::npos) who = -2;
//Next Time...
found = s.find("next");
@@ -1288,13 +1289,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){
game->addObserver( NEW AControlStealAura(_id, card, card->target));
break;
}
case 1228: //Unstable mutation
{
game->addObserver(NEW APowerToughnessModifier(_id, card, card->target, 3, 3));
game->addObserver(NEW APowerToughnessModifierRegularCounter(_id, card, card->target, Constants::MTG_PHASE_UPKEEP, -1, -1));
break;
}
case 1235: //Aspect of Wolf
{
game->addObserver(NEW AAspectOfWolf(_id, card, card->target));
@@ -1396,11 +1390,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){
game->addObserver(NEW AFastbond(_id, card));
break;
}
case 1309: //Orcish Artillery
{
game->addObserver(NEW AOrcishArtillery(_id, card));
break;
}
case 1326: //Wheel of fortune
{
for (int i = 0; i < 2; i++){
@@ -2178,6 +2167,13 @@ int TriggerAtPhase::trigger(){
case -1:
if(g->currentPlayer != source->controller()) result = 1;
break;
case -2:
if(source->target) {
if (g->currentPlayer == source->target->controller()) result = 1;
}else {
if(g->currentPlayer == source->controller()) result = 1;
}
break;
default:
result = 1;
break;