The work with the list won't affect the displayed text. The list is just to prevent things calling "CW_Filter_AddEnchantments()" and similar functions from getting the vanguard cards. I've done this just now, although it hasn't been tested at all. Make sure your CW_GENERAL and CW_FILTERS are updated, and then test out something that targets enchantments and another that targets permanents (and maybe another that target planeswalkers). If there's a problem, let me know and I'll make sure to devote the time needed to get it all working smoothly.
For the displayed type, I just tested in game and discovered that the type vanguard doesn't appear on the type line. This means that it probably won't be possible to get it to appear correctly. I checked, and CARD_TYPE_VANGUARD is defined in the text permanent file SYSTEM_TEXT0000.XML from DATA_CORE.WAD. However, the CARD_TYPES.TXT specs file does not contain vanguard, and so the engine doesn't consider it a valid card type. One workaround is to include a new enchantment type "Vanguard" and add it to each one. Include help text for how the vanguard subtype works, which I've already typed up (though it needs to be translated, like most of the CW's text permanent stuff).
"<HELP title="CW_MORE_INFO_TITLE_VANGUARD" body="CW_MORE_INFO_BODY_VANGUARD" zone="ZONE_ANY" />"
Also, you should be able to safely remove the protection and intrinsic abilities. They're meant to protect it from being targeted or destroyed or affected, but there shouldn't be any cards remaining for it to need protection from. They've all been fixed (or should be) to use CW_Filter_AddPermanents() and similar functions. The manager tokens don't even
really need those anymore, but they're invisible, so it doesn't really matter. Since these are visible, it'll clean up the look quite a bit, and they don't actually add anything useful. If you discover issues after removing them, let me know.
For
Nettlevine Blight, the ability should be granted, which means that EffectSource() from within that ability would be the parent itself. You should be able to use EffectSource() to get the parent and use Object() to get the enchantment.
Bear Umbra should use the same basic idea (albeit without referencing the enchantment from within the ability). If Object() doesn't work, use a LinkedDC and set EffectSource() inside of that. That
should work.
Underworld Cerberus works, and it exiles itself.
Greenwarden of Murasa and
Moldgraf Monstrosity are both broken, unfortunately.
Elemental Resonance: I'm not certain why it isn't working, but you could parse it yourself. Whatever the issue is, that should fix it.
- Code: Select all
<RESOLUTION_TIME_ACTION>
local sManaString = ""
sManaString = S_GetManaCostString(EffectSource():GetParent(), EffectController(), 0)
for sSymbol in string.gmatch(sManaString, "({[^}]+})") do
if string.match(sSymbol, "W") then
RSN_ProduceNoTrigger("{W}", 1)
elseif string.match(sSymbol, "U") then
RSN_ProduceNoTrigger("{U}", 1)
elseif string.match(sSymbol, "B") then
RSN_ProduceNoTrigger("{B}", 1)
elseif string.match(sSymbol, "R") then
RSN_ProduceNoTrigger("{R}", 1)
elseif string.match(sSymbol, "G") then
RSN_ProduceNoTrigger("{G}", 1)
else
sSymbol = tonumber(sSymbol:sub(2, -2))
if sSymbol ~= nil then
RSN_ProduceNoTrigger("{1}", sSymbol)
end
end
end
RSN_FireManaTrigger()
</RESOLUTION_TIME_ACTION>
Harsh Judgment shouldn't be preventing damage. It's not prevention, but rather is redirection. See
Empyrial Archangel or
Aegis of Honor (which I just corrected to use the same method as the archangel and tested). For the issue at hand, instead of checking if "TriggerObject():GetColour() == SomeColour", check for "TriggerObject():GetColour():Test(SomeColour)". GetColour() doesn't return a colour (which would just be a number). It returns a 'colour object', which can only be properly interacted with via the functions provided by the developers.
- Probably flawed theoretical rambling | Open
- To be fair, we can technically interact with the objects, but they're of type UserData, which is Lua's way of saying it's a blob of 1s and 0s that aren't directly handled by Lua at all. They could be as simple as a single small array, one bit per colour, each set to 1 or 0. They could also be as complex as a C++ object being passed into Lua and manipulated internally using calls to the C++ libraries. But that's all very much outside of my definite understanding of the situation, and for simplicity's sake, we can't do anything with them except what the developers accounted for...