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); }