예제 #1
0
    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));
        }
    }