private HeroInfo PrepareHeroInfo(PlayerInfo.SimpleHeroInfo simpInfo) { HeroEntity heroEntity = HeroDBModel.Instance.Get(simpInfo.HeroId); HeroLevelEntity heroLevelEntity = HeroLevelDBModel.Instance.GetList().Find(x => x.Level == simpInfo.HeroLevel); JobEntity jobEntity = JobDBModel.Instance.Get(heroEntity.Job); HeroStarEntity heroStarEntity = HeroStarDBModel.Instance.GetList().Find(x => x.Star == simpInfo.HeroStar); if (heroLevelEntity != null || heroLevelEntity != null || jobEntity != null || heroStarEntity != null) { HeroInfo info = new HeroInfo(); info.RoleId = simpInfo.RoleId; info.RoleNickName = heroEntity.Name; info.Level = heroLevelEntity.Level; info.MaxHP = (int)(heroLevelEntity.Hp * heroEntity.Hp * jobEntity.Hp * heroStarEntity.Hp); info.CurrentHP = info.MaxHP; info.PhyAtk = (int)(heroLevelEntity.PhyAtk * heroEntity.PhyAtk * jobEntity.PhyAtk * heroStarEntity.PhyAtk); info.MgicAtk = (int)(heroLevelEntity.MgicAtk * heroEntity.MgicAtk * jobEntity.MgicAtk * heroStarEntity.MgicAtk); info.Cri = (int)(heroLevelEntity.Cri * heroEntity.Cri * jobEntity.Cri * heroStarEntity.Cri); info.CriValue = (int)(heroLevelEntity.CriValue * heroEntity.CriValue * jobEntity.CriValue * heroStarEntity.CriValue); info.PhyDef = (int)(heroLevelEntity.PhyDef * heroEntity.PhyDef * jobEntity.PhyDef * heroStarEntity.PhyDef); info.MgicDef = (int)((heroLevelEntity.MgicDef * heroEntity.MgicDef * jobEntity.MgicDef * heroStarEntity.MgicDef)); info.HeroID = heroEntity.Id; info.JobID = jobEntity.Id; info.HeroStar = simpInfo.HeroStar; for (int j = 0; j < simpInfo.SkillInfoList.Count; j++) { RoleInfoSkill skillInfo = new RoleInfoSkill(); skillInfo.SkillId = simpInfo.SkillInfoList[j].SkillId; skillInfo.SKillLevel = simpInfo.SkillInfoList[j].SkillLevel; info.SkillList.Add(skillInfo); } return(info); } return(null); }
/// <summary> /// 创建角色 /// </summary> /// <param name="heroId"></param> /// <param name="heroStar"></param> /// <returns></returns> public HeroInfo CreateHero(int heroId, int heroStar = 1) { PlayerInfo.SimpleHeroInfo heroInfo = new PlayerInfo.SimpleHeroInfo(); heroInfo.RoleId = DateTime.Now.Ticks; heroInfo.HeroId = heroId; heroInfo.HeroLevel = PlayerInfo.Level; heroInfo.HeroStar = heroStar; HeroEntity heroEntity = HeroDBModel.Instance.Get(heroId); heroInfo.SkillInfoList = new List <PlayerInfo.SimpleSkillInfo>(); string[] skillArr = heroEntity.UesSkill.Split('|'); for (int i = 0; i < skillArr.Length; i++) { PlayerInfo.SimpleSkillInfo skillInfo = new PlayerInfo.SimpleSkillInfo(); skillInfo.SkillId = skillArr[i].ToInt(); skillInfo.SkillLevel = 1; heroInfo.SkillInfoList.Add(skillInfo); } HeroInfo info = PrepareHeroInfo(heroInfo); info.RoleId = heroInfo.RoleId; PlayerInfo.HeroList.Add(heroInfo); PlayerInfo.ToJson(); return(info); }
/// <summary> /// 英雄升星 /// </summary> /// <param name="roleId"></param> /// <returns></returns> public HeroInfo UpgradeHeroStart(long roleId) { PlayerInfo.SimpleHeroInfo simpleHeroInfo = PlayerInfo.HeroList.Find(x => x.RoleId == roleId); PlayerInfo.HeroList.Remove(simpleHeroInfo); if (simpleHeroInfo.HeroStar < 5) { simpleHeroInfo.HeroStar++; } PlayerInfo.HeroList.Add(simpleHeroInfo); HeroInfo heroInfo = PrepareHeroInfo(simpleHeroInfo); PlayerInfo.ToJson(); return(heroInfo); }