Fixed some primitives with conjure and phyrexian mana, fixed a bug on "conjure" ability, improved getCardbyName method for castcard with namedcard option, for meld and for flip/turnside ability.
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
#Primitives Pack for Wagic the Homebrew.
|
||||
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card
|
||||
#I sorted this programmatically so the other comments are removed except for AUTO_DEFINE - Vitty85 23-06-2023
|
||||
#I sorted this programmatically so the other comments are removed except for AUTO_DEFINE - Vitty85 24-06-2023
|
||||
[card]
|
||||
name=Abandon Reason
|
||||
target=<upto:2>creature
|
||||
@@ -92997,7 +92997,7 @@ type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Reckless Assault
|
||||
auto={L:2}{1}:damage:1 target(creature,player)
|
||||
auto={L:2}{1}:damage:1 target(player,creature)
|
||||
text={1}, Pay 2 life: Reckless Assault deals 1 damage to target creature or player.
|
||||
mana={2}{B}{R}
|
||||
type=Enchantment
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#Planeswalkers Primitives Pack for Wagic the Homebrew.
|
||||
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card
|
||||
#We sorted this in alphabetical order - Luruz & Vitty85 23-06-2023
|
||||
#We sorted this in alphabetical order - Luruz & Vitty85 24-06-2023
|
||||
[card]
|
||||
name=Abian, Luvion Usurper
|
||||
auto=counter(0/0,5,loyalty)
|
||||
@@ -961,7 +961,7 @@ auto=counter(0/0,4,Loyalty)
|
||||
auto={C(0/0,1,Loyalty)}:name(+1: Don't untap any elf) moverandom(elf) from(myhand) to(myHand) and!( counter(1/1.1.PerpetualPT) )!
|
||||
auto={C(0/0,1,Loyalty)}:name(+1: Untap target elf) target(elf|mybattlefield) transforms((,newability[untap],newability[counter(1/1.1.PerpetualPT)],newability[name(Random elf perpetually gets 1/1) moverandom(elf) from(myhand) to(myHand) and!( counter(1/1.1.PerpetualPT) )!])) forever
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Seek an Elf) moverandom(*[elf]) from(mylibrary) to(myhand)
|
||||
auto={C(0/0,-6,Loyalty)}:name(-6: Conjure a Regal Force) conjure cards(Regal Force) zone(myreveal) and!( moveto(mybattlefield) )!
|
||||
auto={C(0/0,-6,Loyalty)}:name(-6: Conjure a Regal Force) conjure cards(Regal Force) zone(mybattlefield)
|
||||
text=+1: Choose up to one target Elf. Untap it. It and a random Elf creature card in your hand each perpetually gets +1/+1. -- −1: Seek an Elf card. -- −6: Conjure a Regal Force card onto the battlefield.
|
||||
mana={1}{G}{G}
|
||||
type=Legendary Planeswalker
|
||||
@@ -1063,21 +1063,21 @@ subtype=Garruk
|
||||
name=Garruk, Wrath of the Wilds
|
||||
auto=counter(0/0,3,loyalty)
|
||||
auto={C(0/0,1,Loyalty)}:name(+1: Creature perpetually gets 1/1) target(creature|myhand) transforms((,newability[counter(1/1.1.PerpetualPT) notrg],newability[changecost(colorless:-1) forcedalive])) forever
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Mosscoat Goriak) conjure cards(Mosscoat Goriak) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Sylvan Brushstrider) conjure cards(Sylvan Brushstrider) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Murasa Rootgrazer) conjure cards(Murasa Rootgrazer) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Dire Wolf Prowler) conjure cards(Dire Wolf Prowler) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Ferocious Pup) conjure cards(Ferocious Pup) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Pestilent Wolf) conjure cards(Pestilent Wolf) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Garruk's Uprising) conjure cards(Garruk's Uprising) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Dawntreader Elk) conjure cards(Dawntreader Elk) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Nessian Hornbeetle) conjure cards(Nessian Hornbeetle) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Territorial Scythecat) conjure cards(Territorial Scythecat) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Trufflesnout) conjure cards(Trufflesnout) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Wary Okapi) conjure cards(Wary Okapi) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Scurrid Colony) conjure cards(Scurrid Colony) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Barkhide Troll) conjure cards(Barkhide Troll) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Underdark Basilisk) conjure cards(Underdark Basilisk) zone(myreveal) and!( moveto(myBattlefield) )!
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Mosscoat Goriak) conjure cards(Mosscoat Goriak) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Sylvan Brushstrider) conjure cards(Sylvan Brushstrider) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Murasa Rootgrazer) conjure cards(Murasa Rootgrazer) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Dire Wolf Prowler) conjure cards(Dire Wolf Prowler) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Ferocious Pup) conjure cards(Ferocious Pup) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Pestilent Wolf) conjure cards(Pestilent Wolf) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Garruk's Uprising) conjure cards(Garruk's Uprising) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Dawntreader Elk) conjure cards(Dawntreader Elk) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Nessian Hornbeetle) conjure cards(Nessian Hornbeetle) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Territorial Scythecat) conjure cards(Territorial Scythecat) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Trufflesnout) conjure cards(Trufflesnout) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Wary Okapi) conjure cards(Wary Okapi) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Scurrid Colony) conjure cards(Scurrid Colony) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Barkhide Troll) conjure cards(Barkhide Troll) zone(mybattlefield)
|
||||
auto={C(0/0,-1,Loyalty)}:name(-1: Draft Underdark Basilisk) conjure cards(Underdark Basilisk) zone(mybattlefield)
|
||||
auto={C(0/0,-5,Loyalty)}:name(-3: Your creatures get 3/3) all(creature|myBattlefield) transforms((,newability[3/3],newability[trample])) ueot
|
||||
text=+1: Choose a creature card in your hand. it perpetually gets +1/+1 and perpetually gains "This spell costs {1} less to cast." -- −1: Draft a card from Garruk, Wrath of the Wild's spellbook and put it onto the battlefield. -- −5: Until end of turn, creatures you control get +3/+3 and gain trample.
|
||||
mana={2}{G}{G}
|
||||
@@ -3176,7 +3176,7 @@ name=Teyo, Aegis Adept
|
||||
auto=counter(0/0,4,Loyalty)
|
||||
auto={C(0/0,1,Loyalty)}:name(+1: Don't target any creature) donothing
|
||||
auto={C(0/0,1,Loyalty)}:name(+1: Creature can attack) target(creature) counter(0/0.1.PerpetualTeyoEffect)
|
||||
auto={C(0/0,-2,Loyalty)}:name(-2: Conjure a Lumbering Lightshield) conjure cards(Lumbering Lightshield) zone(myreveal) and!( moveto(mybattlefield) )!
|
||||
auto={C(0/0,-2,Loyalty)}:name(-2: Conjure a Lumbering Lightshield) conjure cards(Lumbering Lightshield) zone(mybattlefield)
|
||||
auto={C(0/0,-6,Loyalty)}:name(-6: Emblem Return creature) ability$!emblem transforms((,newability[@each my endofturn:name(Return white creature) name(Return white creature) target(creature[white]|mygraveyard) moveto(mybattlefield) and!( transforms((,newability[life:toughness controller])) oneshot )!])) forever dontremove!$ controller
|
||||
auto=emblem transforms((,newability[lord(*[counter{0/0.1.PerpetualTeyoEffect}]|myzones) transforms((,setpower=t,newability[canattack]))])) forever dontremove
|
||||
text=+1: Up to one target creature's base power perpetually becomes equal to its toughness. It perpetually gains "This creature can attack as though it didn't have defender." -- −2: Conjure a Lumbering Lightshield card onto the battlefield. −6: You get an emblem with "At the beginning of your end step, return target white creature card from your graveyard to the battlefield. You gain life equal to its toughness."
|
||||
|
||||
@@ -2472,7 +2472,7 @@ MTGCardInstance * AAConjure::makeCard()
|
||||
newName = names.at(std::rand() % names.size());
|
||||
}
|
||||
MTGCardInstance * card = NULL;
|
||||
MTGCard * cardData = MTGCollection()->getCardByName(newName);
|
||||
MTGCard * cardData = MTGCollection()->getCardByName(newName, source->setId);
|
||||
if(!cardData) return NULL;
|
||||
card = NEW MTGCardInstance(cardData, source->controller()->game);
|
||||
card->owner = source->controller();
|
||||
@@ -2489,7 +2489,26 @@ int AAConjure::resolve()
|
||||
if(_target->mutation && _target->parentCards.size() > 0) return 0; // Mutated down cards cannot be conjured, they will follow the fate of top-card
|
||||
theNamedCard = makeCard();
|
||||
if(theNamedCard){
|
||||
MTGCardInstance * copy = source->controller()->game->putInZone(theNamedCard, theNamedCard->currentZone, MTGGameZone::stringToZone(game, cardZone, theNamedCard, NULL));
|
||||
Spell * spell = NULL;
|
||||
MTGGameZone * targetZone = MTGGameZone::stringToZone(game, cardZone, theNamedCard, NULL);
|
||||
MTGCardInstance * copy = source->controller()->game->putInZone(theNamedCard, theNamedCard->currentZone, targetZone);
|
||||
if(!copy){
|
||||
this->forceDestroy = true;
|
||||
return 0;
|
||||
}
|
||||
if(targetZone == copy->controller()->game->battlefield){
|
||||
copy->changeController(source->controller(), true);
|
||||
if (game->targetChooser)
|
||||
{
|
||||
game->targetChooser->Owner = source->controller();
|
||||
spell = game->mLayers->stackLayer()->addSpell(copy, game->targetChooser, NULL, 1, 0);
|
||||
game->targetChooser = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
spell = game->mLayers->stackLayer()->addSpell(copy, NULL, NULL, 1, 0);
|
||||
}
|
||||
}
|
||||
if(andAbility)
|
||||
{
|
||||
MTGAbility * andAbilityClone = andAbility->clone();
|
||||
@@ -2504,9 +2523,9 @@ int AAConjure::resolve()
|
||||
andAbilityClone->addToGame();
|
||||
}
|
||||
}
|
||||
this->forceDestroy = true;
|
||||
return 1;
|
||||
}
|
||||
this->forceDestroy = true;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -4816,7 +4835,7 @@ int AATurnSide::resolve()
|
||||
if(_target->isFlipped == 0){
|
||||
if(_SideName == "backside" && _target->backSide != "")
|
||||
_SideName = _target->backSide; // Added to allow to turn a card on its backside.
|
||||
fcard = MTGCollection()->getCardByName(_SideName);
|
||||
fcard = MTGCollection()->getCardByName(_SideName, _target->setId);
|
||||
if(!fcard) return 0;
|
||||
sideCard = NEW MTGCardInstance(fcard, _target->controller()->game);
|
||||
_target->nameOrig = _target->name;
|
||||
@@ -4843,7 +4862,7 @@ int AATurnSide::resolve()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fcard = MTGCollection()->getCardByName(_target->nameOrig);
|
||||
fcard = MTGCollection()->getCardByName(_target->nameOrig, _target->setId);
|
||||
if(!fcard) return 0;
|
||||
_target->name = _target->nameOrig;
|
||||
_target->setName(_target->nameOrig);
|
||||
@@ -4952,7 +4971,7 @@ int AAFlip::resolve()
|
||||
flipStats = _target->chooseaname; // Added to allow the transformation of a card in a choosen name.
|
||||
else if(flipStats == "backside" && _target->backSide != "")
|
||||
flipStats = _target->backSide; // Added to allow the transformation of a card in its backside (e.g. Werewolves transformations).
|
||||
MTGCard * fcard = MTGCollection()->getCardByName(flipStats);
|
||||
MTGCard * fcard = MTGCollection()->getCardByName(flipStats, _target->setId);
|
||||
if(!fcard) return 0;
|
||||
MTGCardInstance * myFlip = NEW MTGCardInstance(fcard, _target->controller()->game);
|
||||
MTGCardInstance * myParent = NULL;
|
||||
@@ -4976,7 +4995,7 @@ int AAFlip::resolve()
|
||||
_target->text = myFlip->text;
|
||||
_target->formattedText = myFlip->formattedText;
|
||||
if(_target->enchanted || _target->equipment > 0){ // Try to keep auras and equipment effects on basicAbilities (issue #1065).
|
||||
MTGCardInstance * myOrig = NEW MTGCardInstance(MTGCollection()->getCardByName(nameOrig), _target->controller()->game);
|
||||
MTGCardInstance * myOrig = NEW MTGCardInstance(MTGCollection()->getCardByName(nameOrig, _target->setId), _target->controller()->game);
|
||||
for(unsigned int i = 0; i < _target->basicAbilities.size(); i++) {
|
||||
if(myOrig->basicAbilities[i] == 1)
|
||||
_target->basicAbilities[i] = 0;
|
||||
@@ -9344,9 +9363,9 @@ void ABlink::resolveBlink()
|
||||
//it is later moved to garbage by garbage collection.
|
||||
//then we build 2 seperate blinks with the 2 parts as the targets.
|
||||
vector<string> names = split(_target->MeldedFrom, '|');
|
||||
MTGCard * cardone = MTGCollection()->getCardByName(names[0]);
|
||||
MTGCard * cardone = MTGCollection()->getCardByName(names[0], _target->setId);
|
||||
MTGCardInstance * cardOne = NEW MTGCardInstance(cardone, _target->owner->game);
|
||||
MTGCard * cardtwo = MTGCollection()->getCardByName(names[1]);
|
||||
MTGCard * cardtwo = MTGCollection()->getCardByName(names[1], _target->setId);
|
||||
MTGCardInstance * cardTwo = NEW MTGCardInstance(cardtwo, _target->owner->game);
|
||||
_target->controller()->game->putInZone(_target, _target->currentZone,
|
||||
_target->owner->game->temp);
|
||||
@@ -10031,7 +10050,7 @@ int AACastCard::reactToTargetClick(Targetable * object)
|
||||
MTGCardInstance * AACastCard::makeCard()
|
||||
{
|
||||
MTGCardInstance * card = NULL;
|
||||
MTGCard * cardData = MTGCollection()->getCardByName(cardNamed);
|
||||
MTGCard * cardData = MTGCollection()->getCardByName(cardNamed, source->setId);
|
||||
if(!cardData) return NULL;
|
||||
card = NEW MTGCardInstance(cardData, source->controller()->game);
|
||||
card->owner = source->controller();
|
||||
|
||||
@@ -832,9 +832,11 @@ MTGCard * MTGAllCards::getCardByName(string nameDescriptor, int forcedSetId)
|
||||
|
||||
map<string, MTGCard * >::iterator cached = mtgCardByNameCache.find(nameDescriptor);
|
||||
|
||||
if ((forcedSetId < 0) && (cached!= mtgCardByNameCache.end()))
|
||||
if (cached!= mtgCardByNameCache.end())
|
||||
{
|
||||
return cached->second;
|
||||
MTGCard* card = cached->second;
|
||||
if(forcedSetId < 0 || (card && forcedSetId == card->setId))
|
||||
return card;
|
||||
}
|
||||
|
||||
int cardnb = atoi(nameDescriptor.c_str());
|
||||
|
||||
@@ -684,12 +684,12 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone
|
||||
if (copy->previous && copy->previous->MeldedFrom.size() && !copy->isACopier && !copy->isToken)//!copier & !token fix kiki-jiki clones crash
|
||||
{
|
||||
vector<string> names = split(copy->previous->MeldedFrom, '|');
|
||||
MTGCard * cardone = MTGCollection()->getCardByName(names[0]);
|
||||
MTGCard * cardone = MTGCollection()->getCardByName(names[0], copy->setId);
|
||||
MTGCardInstance * cardOne = NEW MTGCardInstance(cardone, copy->owner->game);
|
||||
to->addCard(cardOne);
|
||||
WEvent * e = NEW WEventZoneChange(cardOne, from, to);
|
||||
g->receiveEvent(e);
|
||||
MTGCard * cardtwo = MTGCollection()->getCardByName(names[1]);
|
||||
MTGCard * cardtwo = MTGCollection()->getCardByName(names[1], copy->setId);
|
||||
MTGCardInstance * cardTwo = NEW MTGCardInstance(cardtwo, copy->owner->game);
|
||||
to->addCard(cardTwo);
|
||||
WEvent * e2 = NEW WEventZoneChange(cardTwo, from, to);
|
||||
|
||||
Reference in New Issue
Block a user