CD doesnt work that way kev. never has and never should.kevlahnota wrote:I think its only for colorless attribute so it will not collide with color= on targetchooser.cpp
Example card: Eye of Ugin. But other attribute don't use "is"...Code: Select all
if (attribute.find("iscolorless") != string::npos) { attributefound = 1; for (int cid = 1; cid < Constants::NB_Colors; cid++) { cd->SetExclusionColor(cid); } cd->mode = CardDescriptor::CD_OR; }
furthermore, isattacking, isbasic, island <----no **** this was used for "is a land" it makes it look for islands......
whatever was the cause of that change is whats broken and needs to be corrected itself, [colorless] was used on
[colorless] = card that is not red,green,blue,white,black. color artifact. I'm not understanding what bug it would have amd why if any it couldnt be corrected with a single line of code rather than changing it. second, it was not listed as a change or bug fix.
[card]
name=Dissension in the Ranks
auto=name(why not act of treason?) damage:20 controller
text=Target blocking creature fights another target blocking creature.
mana={3}{R}{R}
type=Instant
[/card]
[card]
name=Geistblast
target=creature,player
auto=damage:2
autograveyard={2}{U}{moveto(exile)}:target(instant,sorcery|myhand) storm ueot
text=Geistblast deals 2 damage to target creature or player. -- {2}{U}, Exile Geistblast from your graveyard: Copy target instant or sorcery spell you control. You may choose new targets for the copy.
mana={2}{R}
type=Instant
[/card]
cards like the one above.....added to primitives being spread around. "auto=name(why not act of treason?) damage:20 controller" <----is this supposed to be funny? cause its not. and the fight ability is supported, a simple search for that effect in primitives would have come up with the code needed for that card.
auto=lord(eldrazi[colorless]|myhand,mylibrary,mygraveyard,myexile) altercost(colorless,-2)
when the engine reads this line of code.
it reads "lord(" then targetchooser "*" followed by [carddescripter] it reads "colorless" sets excludes on cid. the second part is stored as MTGABILITY for the lord its building, read as altercost, then its string.
at no point at all will the parser confuse colorless with altercost colorless.
for example, lord(creature[red]) altercost(attacking) will do absolutely nothing it will not build any ability for the lord becuase the altercost is parsed as "attacking" which doesnt exist.
im confused when you say collides with color=
if you are talking about "color" in the CD, this is new, and it needs to go BELOW colorless....so the parser has a chance to find colorless FIRST. top to bottom, left to right.
did you find colorless, no ok, did you find color, great!
this is true for any and all parsing, if you look for
string "land"
{
blah
}
string "island"
{
blah
}
you will ALWAYS find land, but if its reversed
string "island"
{
blah
}
string "land"
{
blah
}
it will not find land before checking if it found island.
anyways the color in CD is nested in a check for "shares!" it would never collide.