public void GainSkills(string skillId) { if (GetSkillAsset(skillId) == null) { return; } SkillAsset sa = GetSkillAsset(skillId); foreach (SkillPrerequist s in sa.PrerequistSkills) { SkillInfo preSkill = GetOwnedSkill(s.skillId); if (preSkill == null || preSkill.SkillLvl < s.level) { return; } } SkillInfo skillInfo = GetOwnedSkill(skillId); if (skillInfo == null) { skillInfo = new SkillInfo(skillId); OwnedSkills.Add(skillInfo); skillInfo.SkillLvl = 1; } else { skillInfo.SkillLvl += 1; mCardMgr.RemoveSkillCards(skillId); } if (skillInfo.SkillLvl - 1 < sa.AttachCards.Count) { string[] cards = sa.AttachCards[skillInfo.SkillLvl - 1].Split(','); mCardMgr.AddSkillCards(skillId, new List <string>(cards)); } }