/// <summary> /// 吃经验. /// </summary> /// <param name="Num">Number.</param> private void AddItemUseNum(int Num) { m_parent.SetItemNum(); m_iHaveAddNum = m_iHaveAddNum + Num; if (!MyHead.LblNumUsed.gameObject.activeInHierarchy) { MyHead.LblNumUsed.gameObject.SetActive(true); } MyHead.LblNumUsed.text = "X" + m_iHaveAddNum.ToString(); int MaxLvl = UserM.GetUserMaxHeroLevel(UserDC.GetLevel()); Info.EXP += int.Parse(m_ItemInfo.m_args); int MaxExp = SoldierM.GetSoldierTotalExpAtLevel(MaxLvl); int LevExp = SoldierM.GetSoldierExp(Info.Level); if (Info.EXP >= LevExp && Info.Level < MaxLvl) { int exp = SoldierM.GetSoldierExp(Info.Level); CalUplevelNum(exp, MaxLvl); } int Exp = SoldierM.GetSoldierExp(Info.Level); float pre = (Info.EXP * 1.0f) / (Exp * 1.0f); AddLeveAndExp(Info.Level, pre, true); }
/// <summary> /// 设置 灵魂石数量/升级数量 和 进度条. /// </summary> /// <param name="current">拥有的量</param> /// <param name="upValue">升级数量</param> public void SetPercentageNum() { int Exp = SoldierM.GetSoldierExp(Info.Level); if (MyHead.SprNumPercentage) { MyHead.SprNumPercentage.fillAmount = (Info.EXP * 1.0f) / (Exp * 1.0f); } }
private void CalUplevelNum(int LevExp, int MaxLvl) { if (Info.EXP >= LevExp && LevExp > 0) { if (Info.Level < MaxLvl) { Info.EXP -= LevExp; } AddLeveAndExp(Info.Level, 1f, true); ShowLabel(); Info.Level += 1; int NextLevExp = SoldierM.GetSoldierExp(Info.Level); SoldierM.GetSoldierInfo(ref Info); SetPower(Info.m_combat_power); if (NextLevExp > 0 && Info.Level < MaxLvl) { CalUplevelNum(NextLevExp, MaxLvl); } } }
/// <summary> /// 炮弹兵是否能增加经验 0:可以增加,1:已经满级不能增加,2:吃完了. /// </summary> /// <returns><c>true</c>, if can add exp was checked, <c>false</c> otherwise.</returns> /// <param name="SoldireTypeID">炮弹兵ID.</param> /// <param name="AddExpNum">炮弹兵增加的经验值</param> /// private int CheckCanAdd() { if (m_parent.GetItemNum() <= 0) { return(2); } sdata.s_soldier_experienceInfo expInfo = SoldierM.GetSoldierExpData(Info.Level); if (expInfo.exp == 0) { return(1); } int MaxLvl = UserM.GetUserMaxHeroLevel(UserDC.GetLevel()); int MaxExp = SoldierM.GetSoldierExp(MaxLvl); if (Info.EXP >= MaxExp && Info.Level >= MaxLvl) { return(1); } return(0); }