Thanks for the response.
Seems like a decent card. Although, can it be called a weapon if it does no damage? It looks more like a permanent since it does no damage. You could easily make it do 1 damage per turn.
I didn't want it to damage in a physical sense. Metacaster is a magic sceptre and its power comes from allowing the user to cast spells not from striking or shooting magic or the like. The actual weapon is interdimensional. If game code dictates that as a weapon in the weapon slot that it needs a damage value then yes I guess just 1 would be appropriate. To me tho, because it isn't used in a direct fashion I hadn't given it an attack value at all. The Damage it deals is because you pulled that Fire-Lance card and jammed it at opponent or creature. If you're unlucky and don't get a direct damage spell or are able to summon a creature with it. It's just too bad. Thats the price you pay for having access to all elemental magic.
Also, and I correct everyone on this, the wording of the upgraded version seems vague. Why not just make it say "Add a Random Spell or Creature Card of an Element that matches your mark." I know you want it to search your entire deck for the different elements and count them up individually, THEN choose the highest element, but that seems like a lot (especially to code!).
It does not ever search your deck for a card at alll, the card is created from nothing. In the basic version you could get Firebolt when playing a Time|Life deck the card will be useless to you. You could get firebolt in your mono-fire deck. Any spell or creature is possible. The Basic version favours playing multiple elemental types just so you hvva more chance to be able to use the spell/creature you get.
In the Elite version the choice of cards is limited to things you are more likely to be able to use. A function to search for a players highest element count could be useful for other things too. Step checking is the easiest to code. This is really just a check for Each element comparing the current value to each other element. If this Value is the highest count among all elements and not equal to and other count then this element is the highest otherwise move onto the next element. If you get through all the elements and no element completes the check then the procedure resolves that there is no highest element. Very simple while loops or array traces can do this. Depending on what libraries elements uses the code could even use simple actions like MAX on the filled array.
An example of Metacaster could be as follows. I have 15 Light Quanta and my mark is time but I only have 1 Time quanta because I am just running the Mark of Time and no time pillars. I activate the staff and get a light card becasue thats what I have the most quanta in. This allows me to gain a directly beneficial use out of Metacaster.
Another situation could be a Firefly Queen deck. I have an Air Mark and 3 air Quanta, 6 Life Quanta and 6 Fire Quanta. If I use Metacaster now I'll get an Air Card. Or I could activate a Queen bringing the Life count down so I'll get a Fire card. Or I cast the firebolt in my hand and then use Metacaster to get a Life card. 1 in 8 chance of a Heal.
Leaving Metacaster locked to the Mark removes your dynamic play and is not really in the theme I had in mind.
As per the card text being Vague, this follows the trent of various complex cards in Elements. Look at Discord. It does not tell you how many quanta it is going to move, the text just says "convert some of the opponent's quantums into other elements." Some other deliberately vague cards are mutation and adrenaline. In this case the detail is far to complex to sit on card face and the player is given an idea of what it can do and may have to search the wiki to find the exact trick.