Just passing by to tell that it's solved. 'll let my thinking process here to help others.
The paradigm:
I need to emulate a Deck, the player have 15 card slots, and he can have a lot more cards than he can equip, so he need to be able to swap cards on his deck. To realize a quick prototype I did not create the deck function, I create 15 new gear slots named cards, and weapon types named cards. Said weapons have an ability equip function, that equip the same ability as the card's name. So far everything working on ORK.
on the combat the player cannot choose his skills, he must use a class skill named DRAW, and this skill is supposed to go over the entire array of equipped skills, choose 3 unique skills at random and present the possibility for the player to cast any of the 3. these 3 skills are the player's "hand of cards".
II took off the abilities menu in that actor battle menu, and I created a Shortcut bar to receive the 3 draw skills.
For this part on the draw skill I realizes I would have to script, so I created an event on the draw skill to call a script called Draw, that contains the method DrawSkill.
Beware, I`m a graphic designer that know very little about C#, but here is my solution:
public void DrawSkills() {
System.Random rnd = new System.Random ();
List<AbilityShortcut> drawSkills = new List<AbilityShortcut>();
Combatant combatant = ComponentHelper.GetCombatant(player);
List<AbilityShortcut> abilities = combatant.Abilities.GetAbilities(UseableIn.Battle, IncludeCheckType.No);
abilities.RemoveAll(item => item == null);
//Debug.Log("antes do for");
int pick;
for(int i=0;i<=2; i++){
do{
pick = rnd.Next(1, abilities.Count );
//Debug.Log(pick);
//Debug.Log("carta "+i+" draw");
}while (drawSkills.Contains(abilities[pick]));
drawSkills.Add(abilities[pick]);
combatant.Shortcuts.Current[i]= drawSkills[i];
}
}
}