diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 67e71ccf2..a21344cc3 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -16926,7 +16926,8 @@ toughness=2 [card] name=Flamerush Rider other={2}{R}{R} name(Dash) -auto=@combat(attacking) source(this):clone((other creature[attacking;tapped]) with(unearth,haste[attacking])) +auto=if paid(alternative) then transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveto(ownerhand)]))ueot +auto=@combat(attacking) source(this):target(other creature[attacking]) clone with(unearth,battleready) text=Whenever Flamerush Rider attacks, create a token that’s a copy of another target attacking creature and that’s tapped and attacking. Exile the token at end of combat. -- Dash {2}{R}{R} (You may cast this spell for its dash cost. If you do, it gains haste, and it’s returned from the battlefield to its owner’s hand at the beginning of the next end step.) mana={4}{R} type=Creature diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 94c221083..f51f08ef8 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -1454,6 +1454,7 @@ public: string with; string types; string options; + bool battleReady; list awith; list colors; list typesToAdd; diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 3844b22ea..adedf5b9a 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -5153,6 +5153,7 @@ AACloner::AACloner(GameObserver* observer, int _id, MTGCardInstance * _source, M target = _target; source = _source; options = optionsList; + battleReady = (abilitiesStringList.find("battleready") != string::npos)?true:false; if (abilitiesStringList.size() > 0) { PopulateAbilityIndexVector(awith, abilitiesStringList); @@ -5265,6 +5266,12 @@ int AACloner::resolve() TokenandAbilityClone->addToGame(); } } + if(battleReady) + { + spell->source->summoningSickness = 0; + spell->source->tap(); + spell->source->setAttacker(1); + } if(andAbility) { MTGAbility * andAbilityClone = andAbility->clone(); diff --git a/projects/mtg/src/WParsedInt.cpp b/projects/mtg/src/WParsedInt.cpp index 552fef1b7..ce406cbba 100644 --- a/projects/mtg/src/WParsedInt.cpp +++ b/projects/mtg/src/WParsedInt.cpp @@ -938,7 +938,7 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card) } } } - else if (s.find("sametypecreatures") != string::npos)//Count the greatest number creatures that share same subtype (creatures with changeling counts as +1 for all creature types) + else if (s.find("sametypecreatures") != string::npos)//Count the greatest number creatures that share same subtype { intValue = 0; bool opponent = (s.find("oppsametypecreatures")!=string::npos)?true:false; @@ -948,13 +948,13 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card) list.push_back(0); if(opponent){ for (int j = card->controller()->opponent()->game->inPlay->nb_cards - 1; j >= 0; --j){ - if (card->controller()->opponent()->game->inPlay->cards[j]->hasType(values[i]) || card->controller()->opponent()->game->inPlay->cards[j]->has(Constants::CHANGELING)){ + if (card->controller()->opponent()->game->inPlay->cards[j]->hasType(values[i])){ list[i]++; } } } else { for (int j = card->controller()->game->inPlay->nb_cards - 1; j >= 0; --j){ - if (card->controller()->game->inPlay->cards[j]->hasType(values[i]) || card->controller()->game->inPlay->cards[j]->has(Constants::CHANGELING)){ + if (card->controller()->game->inPlay->cards[j]->hasType(values[i])){ list[i]++; } }