But for complex actions I could use Functions. Like a function called "turn it into a nemesis" could double the object's size, restore it's HP, give it a powerful weapon and attach it to him, start showing it on the minimap, and point the player in its direction.
Absolutely, that kind of stuff is where functions become useful. As for calling function with picked UID's you could do something like this:
text variable UIDs
pick sprites you need
for each picked sprite
append sprite.uid & ";" to UIDs
call "Function" (with UIDs as function parameter)
"OnFunction"
for 0 to tokencount(function.param(0), ";")-1
pick sprite with UID tokenat(function.param(0), loopIndex ";")
do your thing
What this basically should do, is save all selected UID's into text variable separated by ; symbol. Then inside the function you can parse the string again to pick them one by one.
I still think C2 offers much simpler ways to do stuff like this, it feels very 'coderish' way to do stuff! :) C2 allows for higher level of design and I really have to force myself out of the coder mold when using C2 to maximize it's potential.
You'll still have a problem if you can't use families, so you'll need to have all the sprites in single object. Hope this helps :)