コード例 #1
0
ファイル: SkillTreeMgr2.cs プロジェクト: nmbswls/CSCI529
    public bool learnSkill(string skillId)
    {
        SkillInfo2 skill = GetSkillAsset(skillId);

        if (skill == null)
        {
            return(false);
        }

        if (skill.isLearned)
        {
            mUIMgr.ShowHint("这个技能已经学会了");
            return(false);
        }

        if (!checkSkillRequirement(skill))
        {
            return(false);
        }

        if (!checkBranch(skill.Branch, skill.Level))
        {
            mUIMgr.ShowHint("你需要先学习前一个技能");
            return(false);
        }

        skill.isLearned = true;
        branchLevel[skill.Branch]++;
        // calculate requirement
        mRoleMdl.AddSkillPoint(-skill.Requirements.reqSkillPointValue);

        // gainRewards
        for (int i = 0; i < skill.Rewards.bonus.Count; i++)
        {
            switch (skill.Rewards.bonus[i])
            {
            case SkillBonusType.addKoucai:
                mRoleMdl.AddKoucai(skill.Rewards.rewValue[i]);
                mUIMgr.ShowHint("口才 + " + skill.Rewards.rewValue[i]);
                break;

            case SkillBonusType.addCaiyi:
                mRoleMdl.AddCaiyi(skill.Rewards.rewValue[i]);
                mUIMgr.ShowHint("才艺 + " + skill.Rewards.rewValue[i]);
                break;

            case SkillBonusType.addJishu:
                mRoleMdl.AddJishu(skill.Rewards.rewValue[i]);
                mUIMgr.ShowHint("技术 + " + skill.Rewards.rewValue[i]);
                break;

            case SkillBonusType.addKangya:
                mRoleMdl.AddKangya(skill.Rewards.rewValue[i]);
                mUIMgr.ShowHint("抗压 + " + skill.Rewards.rewValue[i]);
                break;

            case SkillBonusType.addWaiguan:
                mRoleMdl.AddWaiguan(skill.Rewards.rewValue[i]);
                mUIMgr.ShowHint("外观 + " + skill.Rewards.rewValue[i]);
                break;

            case SkillBonusType.addPower:
                //加能量
                break;

            case SkillBonusType.addMoney:
                mUIMgr.ShowHint("金钱 + " + skill.Rewards.rewValue[i]);
                break;

            case SkillBonusType.addFensi:
                mUIMgr.ShowHint("粉丝 + " + skill.Rewards.rewValue[i]);
                break;
            }
        }

        LearnedSkill.Add(skillId);

        return(true);
    }