Template:CardSearch: Difference between revisions
From LOTR-TCG Wiki
No edit summary |
(Adding proper hunter support to the has keyword section) |
||
(144 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
</noinclude><includeonly> | </noinclude><includeonly> | ||
{{#cargo_query:tables=Formats=F,Cards=C,CardReleases=EN,CardReleases=CR,CardSets=S,Languages=L | |||
|join on=F.ValidSets HOLDS C.SetNum,C.ReprintBaseID = EN.ID,EN.ID = CR.BaseCardID,C.SetNum=S.ID,CR.LanguageCode=L.Code | |||
{{#cargo_query:tables=Cards=C,CardReleases=EN,CardReleases=CR,CardSets=S,Languages=L | |||
|join on=C.ReprintBaseID = EN.ID,EN.ID = CR.BaseCardID,C.SetNum=S.ID,CR.LanguageCode=L.Code | |||
|fields= | |fields= | ||
CONCAT('[[Image:Culture_', C.Culture, '.svg|x20px|text-bottom|link=', C.Culture, '_Culture|class=whitebg]]', ' <span class="tooltip">[[', REPLACE(REPLACE(C._pageName, '/Data', ''), 'Data:', ''), '|', CASE WHEN CR.LanguageCode <> 'EN' THEN CONCAT("'''", CR.LanguageCode, "''' ") ELSE '' END, IFNULL(CR.Title,EN.Title), CASE WHEN IFNULL(CR.Subtitle,EN.Subtitle) IS NULL THEN '' ELSE CONCAT(', ', IFNULL(CR.Subtitle,EN.Subtitle)) END, ' (', IFNULL(CR.CollInfo,C.CollInfo), ')', CASE WHEN CR.Revision > 0 THEN CONCAT(' [E',CR.Revision,']') ELSE '' END, ']]<span>[[File:', IFNULL(CR.ImageFilename,'Card_Not_Found.jpg'), '|500x500px]]</span></span>')=CardName | CONCAT('[[Image:Culture_', C.Culture, '.svg|x20px|text-bottom|link=', C.Culture, '_Culture|class=whitebg]]', ' <span class="tooltip">[[', REPLACE(REPLACE(C._pageName, '/Data', ''), 'Data:', ''), '|', CASE WHEN CR.LanguageCode <> 'EN' THEN CONCAT("'''", CR.LanguageCode, "''' ") ELSE '' END, IFNULL(CR.Title,EN.Title), CASE WHEN IFNULL(CR.Subtitle,EN.Subtitle) IS NULL THEN '' ELSE CONCAT(', ', IFNULL(CR.Subtitle,EN.Subtitle)) END, ' (', IFNULL(CR.CollInfo,C.CollInfo), ')', CASE WHEN CR.Revision > 0 THEN CONCAT(' [E',CR.Revision,']') ELSE '' END, ']]<span>[[File:', IFNULL(CR.ImageFilename,'Card_Not_Found.jpg'), '|500x500px]]</span></span>')=CardName | ||
|where= ('{{{isUnique|any}}}' = 'any' OR CR.IsUnique = {{Boolean|{{{isUnique|any}}}}}) | |where= ('{{{isUnique|any}}}' = 'any' OR CR.IsUnique = {{Boolean|{{{isUnique|any}}}}}) | ||
AND ("{{{title|}}}" = "" OR | AND ("{{{title|}}}" = "" OR C.Title RLIKE "{{{title|}}}") | ||
AND ("{{{subtitle|}}}" = "" OR | AND ("{{{subtitle|}}}" = "" OR C.Subtitle RLIKE "{{{subtitle|}}}") | ||
AND ("{{{side|}}}" = "" OR C.Side = "{{{side|}}}") | AND ("{{{side|}}}" = "" OR C.Side = "{{{side|}}}") | ||
AND ("{{{format|}}}" = "" OR (F.Name = "{{{format|}}}" AND ((C.CardType != 'Site' AND F.XList HOLDS NOT C.CollInfo) OR (C.CardType = 'Site' AND CR.Block = F.SitePath)))) | |||
AND ("{{{creator|}}}" = "" OR "{{{creator|}}}" LIKE CONCAT('%', S.Creator, '%')) | AND ("{{{creator|}}}" = "" OR "{{{creator|}}}" LIKE CONCAT('%', S.Creator, '%')) | ||
AND ("{{{setnums|}}}" = "" OR "{{{setnums|}}}" LIKE CONCAT('%', S.Name, '%')) | AND ("{{{setnums|}}}" = "" OR "{{{setnums|}}}" LIKE CONCAT('%', S.Name, '%')) | ||
Line 19: | Line 18: | ||
AND ("{{{textSearch|}}}" = "" OR CR.GameText LIKE "%{{{textSearch|}}}%") | AND ("{{{textSearch|}}}" = "" OR CR.GameText LIKE "%{{{textSearch|}}}%") | ||
AND ("{{{textRegexSearch|}}}" = "" OR CR.GameText RLIKE "{{{textRegexSearch|}}} | AND ("{{{textRegexSearch|}}}" = "" OR CR.GameText RLIKE "{{#replace:{{{textRegexSearch|}}}|\|\\}}") | ||
AND ("{{{culture|}}}" = "" OR "{{{culture|}}}" LIKE CONCAT('%', C.Culture, '%')) | AND ("{{{culture|}}}" = "" OR "{{{culture|}}}" LIKE CONCAT('%', C.Culture, '%')) | ||
Line 34: | Line 32: | ||
AND ("{{{usesItemClass|}}}" = "" OR CR.GameText RLIKE "({{#replace:{{#replace:{{#replace:{{#replace:{{{usesItemClass|}}}|,|{{!}}}}||}}|RangedWeapon|Ranged Weapon}}|HandWeapon|Hand Weapon}})" ) | AND ("{{{usesItemClass|}}}" = "" OR CR.GameText RLIKE "({{#replace:{{#replace:{{#replace:{{#replace:{{{usesItemClass|}}}|,|{{!}}}}||}}|RangedWeapon|Ranged Weapon}}|HandWeapon|Hand Weapon}})" ) | ||
AND ("{{{keyword|}}}" = "" OR CR.GameText RLIKE '(?<!\\w )({{#replace:{{#replace:{{#replace:{{#replace:{{{keyword|}}}|,|{{!}}}}||}}|+|XX \\+}}|XX|}})\\.' OR ("{{{keyword|}}}" LIKE '%Ring-bound%' AND (C.Title IN ('Frodo', 'Sam') OR CR.CanBearRing = 1)) OR ("{{{keyword|}}}" LIKE '%Unbound%' AND (C.CardType = 'Companion' AND C.Title NOT IN ('Frodo', 'Sam') AND CR.GameText NOT RLIKE '(?<!\\w )Ring-bound\\.')) OR ("{{{keyword|}}}" LIKE '%Ambush%' AND CR.GameText RLIKE '(?<!\\w )Ambush \\(\\d+\\)\\.') ) | AND ("{{{phaseAction|}}}" = "" OR ((C.CardType IN ('Event') AND "{{{phaseAction|}}}" LIKE CONCAT('%', CR.Subtypes__full, '%')) OR CR.GameText RLIKE "({{#replace:{{#replace:{{{phaseAction|}}}:|,|:{{!}}}}||}})")) | ||
AND ("{{{keyword|}}}" = "" OR CR.GameText RLIKE '(?<!\\w )({{#replace:{{#replace:{{#replace:{{#replace:{{{keyword|}}}|,|{{!}}}}||}}|+|XX \\+}}|XX|}})\\.' OR ("{{{keyword|}}}" LIKE '%Ring-bound%' AND (C.Title IN ('Frodo', 'Sam') OR CR.CanBearRing = 1)) OR ("{{{keyword|}}}" LIKE '%Unbound%' AND (C.CardType = 'Companion' AND C.Title NOT IN ('Frodo', 'Sam') AND CR.GameText NOT RLIKE '(?<!\\w )Ring-bound\\.')) OR ("{{{keyword|}}}" LIKE '%Ambush%' AND CR.GameText RLIKE '(?<!\\w )Ambush \\(\\d+\\)\\.') OR ("{{{keyword|}}}" LIKE '%Hunter%' AND CR.GameText RLIKE '(?<!\\w )Hunter \\d+\\.') ) | |||
AND ("{{{usesKeyword|}}}" = "" OR (CR.GameText RLIKE '(?<=\\w )({{#replace:{{#replace:{{{usesKeyword|}}}|,|{{!}}}}||}})' AND (1 = CASE WHEN "{{{usesKeyword|}}}" LIKE '%Archer%' AND CR.GameText LIKE '%Archer%' THEN CR.GameText RLIKE '(?<=\\w )archer\\b' ELSE 1 END )) ) | AND ("{{{usesKeyword|}}}" = "" OR (CR.GameText RLIKE '(?<=\\w )({{#replace:{{#replace:{{{usesKeyword|}}}|,|{{!}}}}||}})' AND (1 = CASE WHEN "{{{usesKeyword|}}}" LIKE '%Archer%' AND CR.GameText LIKE '%Archer%' THEN CR.GameText RLIKE '(?<=\\w )archer\\b' ELSE 1 END )) ) | ||
Line 44: | Line 44: | ||
AND ("{{{strength|}}}" = "" OR CASE WHEN "{{{strength|}}}" RLIKE '(\\+{{!}}-)\\d+' THEN CR.StrengthMod = "{{{strength|}}}" ELSE CR.Strength = "{{{strength|}}}" END) | AND ("{{{strength|}}}" = "" OR CASE WHEN "{{{strength|}}}" RLIKE '(\\+{{!}}-)\\d+' THEN CR.StrengthMod = "{{{strength|}}}" ELSE CR.Strength = "{{{strength|}}}" END) | ||
AND ("{{{strengthMore|}}}" = "" OR CASE WHEN "{{{strengthMore|}}}" RLIKE '(\\+{{!}}-)\\d+' THEN CAST(CR.StrengthMod AS INT) >= CAST("{{{strengthMore|}}}" AS INT) ELSE CR.Strength >= "{{{strengthMore|}}}" END) | AND ("{{{strengthMore|}}}" = "" OR CASE WHEN "{{{strengthMore|}}}" RLIKE '(\\+{{!}}-)\\d+' THEN CAST(CR.StrengthMod AS INT) >= CAST("{{{strengthMore|}}}" AS INT) ELSE CR.Strength >= "{{{strengthMore|}}}" END) | ||
AND ("{{{strengthLess|}}}" = "" OR CASE WHEN "{{{strengthLess|}}}" RLIKE '(\\+{{!}}-)\\d+' THEN CAST(CR.StrengthMod AS INT) <= CAST("{{{strengthLess|}}}" AS INT) ELSE CR.Strength | AND ("{{{strengthLess|}}}" = "" OR CASE WHEN "{{{strengthLess|}}}" RLIKE '(\\+{{!}}-)\\d+' THEN CAST(CR.StrengthMod AS INT) <= CAST("{{{strengthLess|}}}" AS INT) ELSE CR.Strength <= "{{{strengthLess|}}}" END) | ||
AND ("{{{vitality|}}}" = "" OR CASE WHEN "{{{vitality|}}}" RLIKE '(\\+{{!}}-)\\d+' THEN CR.VitalityMod = "{{{vitality|}}}" ELSE CR.Vitality = "{{{vitality|}}}" END) | AND ("{{{vitality|}}}" = "" OR CASE WHEN "{{{vitality|}}}" RLIKE '(\\+{{!}}-)\\d+' THEN CR.VitalityMod = "{{{vitality|}}}" ELSE CR.Vitality = "{{{vitality|}}}" END) | ||
Line 60: | Line 60: | ||
AND ("{{{signet|}}}" = "" OR CR.Signet = "{{{signet|}}}") | AND ("{{{signet|}}}" = "" OR CR.Signet = "{{{signet|}}}") | ||
AND ("{{{sitesitenum|}}}" = "" OR (C.CardType = 'Site' AND CR.SiteNum = "{{{sitesitenum|}}}")) | AND ("{{{sitesitenum|}}}" = "" OR (C.CardType = 'Site' AND CR.SiteNum = "{{{sitesitenum|}}}")) | ||
AND ("{{{sitesitenumMore|}}}" = "" OR (C.CardType = 'Site' AND CR.SiteNum >= "{{{sitesitenumMore|}}}")) | AND ("{{{sitesitenumMore|}}}" = "" OR (C.CardType = 'Site' AND CR.SiteNum >= "{{{sitesitenumMore|}}}")) | ||
Line 69: | Line 68: | ||
AND ("{{{shadownumLess|}}}" = "" OR (C.CardType = 'Site' AND IFNULL(CR.ShadowNum, CR.TwilightCost) <= "{{{shadownumLess|}}}")) | AND ("{{{shadownumLess|}}}" = "" OR (C.CardType = 'Site' AND IFNULL(CR.ShadowNum, CR.TwilightCost) <= "{{{shadownumLess|}}}")) | ||
AND ("{{{isSanctuary|any}}}" = "" OR CASE WHEN {{Boolean|{{{isSanctuary|any}}}}} = 1 THEN CR.GameText RLIKE '(?<!\\w )Sanctuary\\.' ELSE CR.GameText NOT RLIKE '(?<!\\w )Sanctuary\\.' END) | AND ("{{{isSanctuary|any}}}" = "any" OR CASE WHEN {{Boolean|{{{isSanctuary|any}}}}} = 1 THEN CR.GameText RLIKE '(?<!\\w )Sanctuary\\.' ELSE CR.GameText NOT RLIKE '(?<!\\w )Sanctuary\\.' END) | ||
AND ("{{{arrowDir|Any}}}" = " | AND ("{{{arrowDir|Any}}}" = "any" OR CR.ArrowDir = "{{{arrowDir|any}}}") | ||
AND (CASE WHEN {{Boolean|{{{isFoil|no}}}}} = 0 THEN CR.Subset NOT IN ('F', 'A', 'O') ELSE CR.Subset IN ('F', 'A', 'O') END) | AND (CASE WHEN {{Boolean|{{{isFoil|no}}}}} = 0 THEN CR.Subset NOT IN ('F', 'A', 'O') ELSE CR.Subset IN ('F', 'A', 'O') END) | ||
Line 79: | Line 78: | ||
AND ("{{#replace:{{{loreSearch|}}}|"|}}" = "" OR CR.Lore RLIKE "{{#replace:{{{loreSearch|}}}|"|}}") | AND ("{{#replace:{{{loreSearch|}}}|"|}}" = "" OR CR.Lore RLIKE "{{#replace:{{{loreSearch|}}}|"|}}") | ||
AND ("{{{advancedOptions|}}}" = "" OR | AND ("{{{advancedOptions|}}}" = "" OR | ||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Burdens:{{!}}Auto-corruption)' AND CR.GameText RLIKE 'corrupt') OR | ||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Burdens:{{!}}Add Burdens)' AND CR.GameText RLIKE 'add (up to )?(a{{!}}X{{!}}\\d) burden') OR | ||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Burdens:{{!}}Prevent Burden Removal)' AND CR.GameText RLIKE '(burden[^\\.]*(can{{!}}may) ?not (be )?remove{{!}}about to remove[^\\.]*burdens?,)') OR | ||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Burdens:{{!}}Remove Burdens)' AND CR.GameText RLIKE 'remove (up to )?(a{{!}}X{{!}}\\d) burden') OR | ||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Burdens:{{!}}Prevent Burden Adding)' AND CR.GameText RLIKE '(burden[^\\.]*(can{{!}}may) ?not (be )?add{{!}}about to add[^\\.]*burdens?,)') OR | ||
("{{{advancedOptions|}}}" RLIKE '(Burdens:{{!}}Spot Burdens)' AND CR.GameText RLIKE '(spot (an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) burden{{!}}burden you (can )? spot{{!}}\\(or \\d burdens\\){{!}}for each burden)') OR | |||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Stats:{{!}}Modify Strength:{{!}}Add Strength)' AND CR.GameText RLIKE 'strength (of [^\\d\\.\\+-]* )?\\+') OR | ||
("{{{advancedOptions|}}}" RLIKE '(Stats:{{!}}Modify Strength:{{!}}Remove Strength)' AND CR.GameText RLIKE 'strength (of [^\\d\\.\\+-]* )?-') OR | |||
("{{{advancedOptions|}}}" | |||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Stats:{{!}}Modify Resistance:{{!}}Add Resistance)' AND CR.GameText RLIKE 'resistance (of [^\\d\\.\\+-]* )?\\+') OR | ||
("{{{advancedOptions|}}}" RLIKE '(Stats:{{!}}Modify Resistance:{{!}}Remove Resistance)' AND CR.GameText RLIKE 'resistance (of [^\\d\\.\\+-]* )?-') OR | |||
("{{{advancedOptions|}}}" | |||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Stats:{{!}}Modify Site Number:{{!}}Add Site Number)' AND CR.GameText RLIKE 'site number (of [^\\d\\.\\+-]* )?\\+') OR | ||
("{{{advancedOptions|}}}" RLIKE '(Stats:{{!}}Modify Site Number:{{!}}Remove Site Number)' AND CR.GameText RLIKE 'site number (of [^\\d\\.\\+-]* )?-') OR | |||
("{{{advancedOptions|}}}" | |||
("{{{advancedOptions|}}}" LIKE '%Ally Removal%' AND CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (\\[\\w+\\] )?(\\w+ or )?ally') OR | ("{{{advancedOptions|}}}" LIKE '%Ally Removal%' AND (CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (\\[\\w+\\] )?(\\w+ or )?ally' OR C.CollInfo IN ('8R103'))) OR | ||
("{{{advancedOptions|}}}" LIKE '%Companion Removal%' AND CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (\\[\\w+\\] )?(\\w+ or )?companion(?! from hand)') OR | ("{{{advancedOptions|}}}" LIKE '%Companion Removal%' AND CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (\\[\\w+\\] )?(\\w+ or )?companion(?! from hand)') OR | ||
("{{{advancedOptions|}}}" LIKE '%Minion Removal%' AND CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (\\[\\w+\\] )?(\\w+ or )?minion') OR | ("{{{advancedOptions|}}}" LIKE '%Minion Removal%' AND CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (\\[\\w+\\] )?(\\w+ or )?minion') OR | ||
("{{{advancedOptions|}}}" LIKE '%Follower Removal%' AND CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (\\[\\w+\\] )?(\\w+ or )?follower') OR | ("{{{advancedOptions|}}}" LIKE '%Follower Removal%' AND (CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (\\[\\w+\\] )?(\\w+ or )?follower' OR C.CollInfo IN ('4R32', '8R103'))) OR | ||
("{{{advancedOptions|}}}" LIKE '%Condition Removal%' AND CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(\\w+ or (Free Peoples {{!}}Shadow )?)?condition') OR | ("{{{advancedOptions|}}}" LIKE '%Condition Removal%' AND (CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(\\w+ or (Free Peoples {{!}}Shadow )?)?condition' OR C.CollInfo IN ('4R32', '8R103'))) OR | ||
("{{{advancedOptions|}}}" LIKE '%Possession Removal%' AND CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(\\w+ or (Free Peoples {{!}}Shadow )?)?possession') OR | ("{{{advancedOptions|}}}" LIKE '%Possession Removal%' AND (CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(\\w+ or (Free Peoples {{!}}Shadow )?)?possession' OR C.CollInfo IN ('4R32', '8R103'))) OR | ||
("{{{advancedOptions|}}}" LIKE '%Artifact Removal%' AND CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(\\w+ or (Free Peoples {{!}}Shadow )?)?artifact') OR | ("{{{advancedOptions|}}}" LIKE '%Artifact Removal%' AND (CR.GameText RLIKE 'discard (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(\\w+ or (Free Peoples {{!}}Shadow )?)?artifact' OR C.CollInfo IN ('4R32', '8R103'))) OR | ||
("{{{advancedOptions|}}}" RLIKE '(Cycling:{{!}}Draw Cards)' AND (CR.GameText RLIKE 'draw (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) card' AND CR.GameText NOT RLIKE 'opponent shuffle[^\\.]*draw deck and draw' AND CR.GameText NOT RLIKE '(Free Peoples {{!}}Shadow )?player (must {{!}}may )?draw' OR CR.GameText RLIKE 'muster')) OR | |||
("{{{advancedOptions|}}}" RLIKE '(Cycling:{{!}}Recover Cards Into Hand)' AND CR.GameText RLIKE 'take [^\\.]*into hand') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Cycling:{{!}}Discard From Your Hand)' AND (CR.GameText RLIKE 'discard [^\\.]*from hand' AND CR.GameText NOT RLIKE '(opponent{{!}}owner{{!}}(Free Peoples {{!}}Shadow )?player)[^\\.]* discard[^\\.]*from hand' OR CR.GameText RLIKE 'muster')) OR | |||
("{{{advancedOptions|}}}" RLIKE '(Recursion:{{!}}Take Cards Into Hand From Discard)' AND CR.GameText RLIKE 'take [^\\.]*into hand from[^\\.]*discard') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Recursion:{{!}}Take Cards Into Hand From Deck)' AND CR.GameText RLIKE 'take [^\\.]*into hand from[^\\.]*draw deck') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Recursion:{{!}}Play Cards From Discard)' AND CR.GameText RLIKE 'play (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (\\[\\w+\\] )?(Free Peoples {{!}}Shadow )?\\w* from your discard pile') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Recursion:{{!}}Play Cards From Deck)' AND CR.GameText RLIKE 'play (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (\\[\\w+\\] )?(Free Peoples {{!}}Shadow )?\\w* from your draw deck') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Skirmishing:{{!}}Ally Participation)' AND CR.GameText RLIKE '(participates? in (archery fire and )?skirmish)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Skirmishing:{{!}}Cancel Skirmish)' AND CR.GameText RLIKE '(Cancel [^\\.]*skirmish)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Skirmishing:{{!}}Dodge Skirmish)' AND (C.CollInfo IN ('4C310','4C314','4C322','17U103','7R129') OR CR.GameText RLIKE '(remove [^\\.]*from a skirmish)')) OR | |||
("{{{advancedOptions|}}}" RLIKE '(Skirmishing:{{!}}Replace Skirmish)' AND CR.GameText RLIKE 'replace[^\\.]*skirmish') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Skirmishing:{{!}}Overwhelm Protection)' AND CR.GameText RLIKE '(overwhelmed unless)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Signets:{{!}}Uses Aragorn Signet)' AND CR.GameText RLIKE 'Aragorn signet') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Signets:{{!}}Uses Frodo Signet)' AND CR.GameText RLIKE 'Frodo signet') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Signets:{{!}}Uses Gandalf Signet)' AND CR.GameText RLIKE 'Gandalf signet') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Signets:{{!}}Uses Théoden Signet)' AND CR.GameText RLIKE 'Theoden signet') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Culture Tokens:{{!}}Add Tokens)' AND CR.GameText RLIKE '(add{{!}}place{{!}}reinforce) (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(culture )?token') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Culture Tokens:{{!}}Reinforce Tokens)' AND CR.GameText RLIKE '(reinforce) (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(culture )?token') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Culture Tokens:{{!}}Remove Tokens)' AND CR.GameText RLIKE '(remove) (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(culture )?token') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Culture Tokens:{{!}}Remove Token From Others)' AND CR.GameText RLIKE '(remove) (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(culture )?tokens? (?!from here)(?!from this card)(?!here)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Culture Tokens:{{!}}Spot Tokens)' AND (CR.GameText RLIKE '(spot) (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each) (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(culture )?tokens? (?!from here)(?!from this card)(?!here)' OR CR.GameText RLIKE 'for each (Free Peoples {{!}}Shadow )?(\\[\\w+\\] )?(culture )?tokens? (?!from here)(?!from this card)(?!here)') ) OR | |||
("{{{advancedOptions|}}}" RLIKE '(Threats:{{!}}Add Threats)' AND CR.GameText RLIKE 'add (up to )?(a{{!}}X{{!}}\\d) threat') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Threats:{{!}}Prevent Threat Removal)' AND CR.GameText RLIKE '(threat[^\\.]*(can{{!}}may) ?not (be )?remove{{!}}about to remove[^\\.]*threats?,)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Threats:{{!}}Remove Threats)' AND CR.GameText RLIKE 'remove (up to )?(a{{!}}X{{!}}\\d) threat') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Move Limit:{{!}}Increase Move Limit)' AND CR.GameText RLIKE 'move limit (for this turn )?(is )?\\+') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Move Limit:{{!}}Decrease Move Limit)' AND CR.GameText RLIKE 'move limit (for this turn )?(is )?-') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Move Limit:{{!}}Force Move)' AND CR.GameText RLIKE 'move again') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Move Limit:{{!}}Force Stop)' AND CR.GameText RLIKE 'prevent[^\\.]*moving again') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Site Manipulation:{{!}}Play Site)' AND CR.GameText RLIKE '((play{{!}}replace) the fellowship''s{{!}}replace it with your site{{!}}replace a site)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Site Manipulation:{{!}}Prevent Site Replacement)' AND CR.GameText RLIKE 'not (be )?replace') OR | |||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Site Control:{{!}}Take Control Of Site)' AND C.Side <> 'Free Peoples' AND CR.GameText RLIKE '(take control{{!}}to control)') OR | ||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Site Control:{{!}}Liberate Site)' AND CR.GameText RLIKE 'liberate') OR | ||
("{{{advancedOptions|}}}" | ("{{{advancedOptions|}}}" RLIKE '(Site Control:{{!}}Prevent Site Control)' AND CR.GameText RLIKE 'about to (take )?control') OR | ||
("{{{advancedOptions|}}}" RLIKE '(Site Control:{{!}}Your Site Control Bonus)' AND CR.GameText RLIKE '(you control)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Site Control:{{!}}No Site Control Bonus)' AND CR.GameText RLIKE '(no opponent control)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Initiative:{{!}}Initiative Bonus)' AND CR.GameText RLIKE '((while{{!}}if) (you{{!}}shadow) (have{{!}}has) initiative)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Initiative:{{!}}Shadow Initiative Manipulation)' AND CR.GameText RLIKE '((?<!if )(?<!if the )shadow (player )?has initiative{{!}}to have initiative)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Initiative:{{!}}Freeps Initiative Loss Bonus)' AND C.Side = 'Free Peoples' AND CR.GameText RLIKE '(you lose initiative{{!}}shadow has initiative)') OR | |||
("{{{advancedOptions|}}}" RLIKE '(Card Manipulation:{{!}}Look At Top Of Deck)' AND CR.GameText RLIKE "(look at the top (\\w+ )?cards? of (your{{!}}its owners{{!}}(your{{!}}an) opponent's{{!}}his or her{{!}}their) draw deck)") OR | |||
("{{{advancedOptions|}}}" RLIKE '(Card Manipulation:{{!}}Reveal Top Of Deck)' AND CR.GameText RLIKE "(reveal the top (\w+ )?cards? of (your{{!}}its owners{{!}}(your{{!}}an) opponent's{{!}}his or her{{!}}their) draw deck)") OR | |||
("{{{advancedOptions|}}}" RLIKE '(Card Manipulation:{{!}}Place On Top Of Deck)' AND CR.GameText RLIKE "(on top of ((or beneath )?your{{!}}its owners{{!}}(your{{!}}an) opponent's{{!}}his or her{{!}}their) draw deck)") OR | |||
("{{{advancedOptions|}}}" RLIKE '(Card Manipulation:{{!}}Place On Bottom Of Deck)' AND CR.GameText RLIKE "((on the bottom of{{!}}beneath) (your{{!}}its owners{{!}}(your{{!}}an) opponent's{{!}}his or her{{!}}their) draw deck)") OR | |||
("{{{advancedOptions|}}}" RLIKE '(Card Manipulation:{{!}}Shuffle Into Deck)' AND CR.GameText RLIKE "shuffle (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each)[^\\.]* into (your{{!}}its owners{{!}}(your{{!}}an) opponent's{{!}}his or her{{!}}their) draw deck") OR | |||
("{{{advancedOptions|}}}" RLIKE '(Card Manipulation:{{!}}Discard From Your Deck)' AND CR.GameText RLIKE "discards? (up to )?(the{{!}}an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each)[^\\.]* (from{{!}}of) (the top of )?your draw deck") OR | |||
("{{{advancedOptions|}}}" RLIKE '(Card Manipulation:{{!}}Discard From Opponent''s Deck)' AND CR.GameText RLIKE "discards? (up to )?(the{{!}}an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each)[^\\.]* (from{{!}}of) (the top of )?(its owners{{!}}(your{{!}}an) opponent's{{!}}his{{!}}his or her{{!}}their) draw deck") OR | |||
("{{{advancedOptions|}}}" RLIKE '(Card Manipulation:{{!}}Discard From Opponent''s Hand)' AND CR.GameText RLIKE "(discards? (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each)[^\\.]* from (its owners{{!}}(your{{!}}an) opponent's{{!}}the shadow player''s{{!}}his{{!}}his or her{{!}}their) hand{{!}}((choose{{!}}make) )?(an opponent{{!}}the shadow player{{!}}the free peoples player{{!}}that player)( to)? discard[^\\.]*from hand){{!}}owner discards") OR | |||
("{{{advancedOptions|}}}" RLIKE '(Card Manipulation:{{!}}Reveal Opponent''s Hand)' AND CR.GameText RLIKE "(reveal (up to )?(an?{{!}}X{{!}}\\d{{!}}all{{!}}every{{!}}each)[^\\.]* from (its owners{{!}}(your{{!}}an) opponent's{{!}}his{{!}}his or her{{!}}their) hand{{!}}reveal (your{{!}}an) opponent's hand)") OR | |||
Latest revision as of 04:34, 22 June 2023
This is the "CardSearch" template.
It should be called in the following format:
{{CardSearch |isUnique= |sort= }}
Edit the page to see the template text.