I will look into the Arcanite/Supreme Magician issues. Arcanite Magician was part of some decklists before, Shaddolls for example, so I am pretty sure, it worked at some point. But some of the more recent changes might have interfered with that.
From what I gathered from neftalimich's post, he already explained to you, that inherent summons do not have a triggering id, yet still use OnSelectCard to handle the card selection. That makes it harder to detect them, and as he says, I usually use global variables to keep track of this.
I have attempted to add more generic functions to handle this. If you add the handling of Silent Magician's summon, instead of returning the index manually, you can return the "SpSummon" function instead. It takes the index and the id as parameters:
for i,c in pairs(SpSum) do
if c.id == 41175645
and SummonSilentMagician()
then
return SpSummon(i,c.id)
end
end
Or, if you prefer:
if HasID(SpSum,41175645,SummonSilentMagician) then
return SpSummon(nil,41175645) -- nil means use global index defined in HasID
end
This does set up the global variable for inherent summons, causing the system to redirect the next call to "OnSelectCard" to a custom function called "OnSelectMaterial" instead. You can find that in the SelectTribute.lua file as well, and you can use it by setting up a Material function for your deck file:
MyDeck = NewDeck("Silent Magician Deck",41175645)
MyDeck.Material(cards,min,max,id)
if id == 41175645 -- material selection for Silent Magician
then
return Add(cards,PRIO_TOGRAVE,min) -- send the
end
end
Does this help you?