public void SetHeroData(int heroId, int addHeroExp, float delay = 0) { HeroInfo info = HeroProxy.instance.GetHeroInfo((uint)heroId); if (info == null) { return; } HeroInfo temp = new HeroInfo(info.instanceID, info.heroData.id, 0, 0, info.advanceLevel); int totalExp = info.TotalLevelUpExp - addHeroExp; HeroExpData oldData = HeroExpData.GetHeroExpData(totalExp); bool isMax = oldData == null; if (isMax) { temp = info; } else { temp.level = HeroExpData.GetHeroExpData(totalExp).lv; temp.exp = totalExp - HeroExpData.GetHeroExpDataByLv(temp.level - 1).exp_total; } //Debugger.Log(string.Format("[HeroView][SetHeroData]heroid: {0}, old exp:{1}, old level: {2}, new exp:{3}, new level :{4}, addExp:{5}",heroId,temp.exp,temp.level,info.exp,info.level,addHeroExp)); SetHeroData(temp, addHeroExp, delay); }
public static float GetPlayerExpPercentToNextLevel(PlayerInfo playerInfo) { float playerExpPercentToNextLevel = 0; if (HeroExpData.GetPlayerExpDataByLv(playerInfo.level).exp > 0) { playerExpPercentToNextLevel = (float)playerInfo.exp / HeroExpData.GetHeroExpDataByLv(playerInfo.level).exp; } return(playerExpPercentToNextLevel); }
public static float GetHeroExpPercentToNextLevel(HeroInfo heroInfo) { float heroExpPercentToNextLevel = 0; if (HeroExpData.GetHeroExpDataByLv(heroInfo.level).exp > 0) { heroExpPercentToNextLevel = (float)heroInfo.exp / HeroExpData.GetHeroExpDataByLv(heroInfo.level).exp; } return(heroExpPercentToNextLevel); }
private void UpdateHeroBar() { float duringTime = 1f; if (_curHeroLevel > _nextHeroLevel) { return; } if (_curHeroLevel == _nextHeroLevel) { int exp_need = 1; int exp_cur = 0; if (_isLeader) { HeroExpData expData = HeroExpData.GetHeroExpDataByLv(_nextHeroLevel); bool isMax = expData == null; if (!isMax) { exp_need = expData.exp; exp_cur = expData.exp - (expData.exp_total - (_oldPlayerInfo.TotalLevelUpExp + _addHeroExp)); } } else { HeroExpData expData = HeroExpData.GetHeroExpDataByLv(_nextHeroLevel); bool isMax = expData == null; if (!isMax) { exp_need = expData.exp; exp_cur = expData.exp - (expData.exp_total - (_oldHeroInfo.TotalLevelUpExp + _addHeroExp)); } } float percent = (exp_cur + 0.0f) / exp_need; exp_hero_bar.ChangeValue(percent, duringTime * (percent - exp_hero_bar.Value)).setOnComplete(DoHeroLevelUpFinished); } else { if (_curHeroLevel == _oldHeroLevel) { // LeanTween.moveLocalY(image_upArrow.gameObject, 0, 0.3f).setLoopPingPong(); exp_hero_bar.ChangeValue(1, duringTime).setOnComplete(HeroLevelUp); } } }
public void SetMainHeroData(int addHeroExp, int addAccountExp, float delay = 0) { PlayerInfo playerInfo = GameProxy.instance.PlayerInfo; PlayerInfo temp = new PlayerInfo(playerInfo.instanceID, playerInfo.playerData.Id, 0, 0, 0, 0, ""); int expTotal = playerInfo.TotalLevelUpExp - addHeroExp; HeroExpData oldData = HeroExpData.GetHeroExpData(expTotal); bool isMax = oldData == null; if (isMax) { temp = playerInfo; } else { temp.level = HeroExpData.GetHeroExpData(expTotal).lv; temp.exp = expTotal - HeroExpData.GetHeroExpDataByLv(temp.level - 1).exp_total; } //Debugger.Log(string.Format("[HeroView][SetMainHeroData]playerid: {0}, old exp:{1}, old level: {2}, addheroExp:{3},addAccount:{4}",playerInfo.instanceID,temp.exp,temp.level,addHeroExp,addAccountExp)); SetMainHeroData(temp, addHeroExp, addAccountExp, delay); }
private bool OnClickExpMedicineHandler(int addExp) { if (_selectHeroLevel == 0) { _selectHeroLevel = _playerInfo.level; _selectHeroExp = _playerInfo.exp; selectMaxLevel = _playerInfo.MaxLevel; } if (_selectHeroLevel >= selectMaxLevel) { return(false); } if (_selectHeroLevel >= GameProxy.instance.AccountLevel) { return(false); } int totalExp = addExp + _selectHeroExp; int level = _selectHeroLevel; HeroExpData expData; while (true) { expData = HeroExpData.GetHeroExpDataByLv(level); if (expData == null) { return(false); } if (totalExp >= expData.exp)//升级 { level++; totalExp -= expData.exp; if (level == selectMaxLevel) { totalExp = 0; break; } } else //经验没导致升级 { break; } } int oldLv = _selectHeroLevel; _selectHeroLevel = level; _selectHeroExp = totalExp; expData = HeroExpData.GetHeroExpDataByLv(level); if (expData != null) { UpdateExpBar(level - oldLv + (totalExp + 0.01f) / expData.exp); } if (oldLv != level) { RefreshAttributes(); playerLevelText.text = string.Format("LV {0}/{1}", _selectHeroLevel, selectMaxLevel); playerLevelUpFXGameObject.SetActive(false); playerLevelUpFXGameObject.SetActive(true); } return(true); }
private void InitBar() { float percent = 0; if (_isLeader) { HeroExpData curHeroExpData = HeroExpData.GetHeroExpDataByLv(_oldPlayerInfo.level); HeroExpData next = HeroExpData.GetHeroExpData(_oldPlayerInfo.TotalLevelUpExp, _addHeroExp); if (curHeroExpData == null) { exp_hero_bar.ChangeValue(0); } else { percent = (_oldPlayerInfo.exp + 0.0f) / curHeroExpData.exp; exp_hero_bar.ChangeValue(percent); } if (next == null) { _nextHeroLevel = GameProxy.instance.PlayerInfo.level; } else { _nextHeroLevel = next.lv; } exp_profession_bar.ChangeValue(0); //account InitAccountBar(); if (_addAcountExp != 0) { StartCoroutine(UpdateAccountBarDelay(_delayTime)); } } else { exp_profession_bar.gameObject.SetActive(false); HeroExpData curHeroExpData = HeroExpData.GetHeroExpDataByLv(_oldHeroInfo.level); HeroExpData next = HeroExpData.GetHeroExpData(_oldHeroInfo.TotalLevelUpExp, _addHeroExp); if (curHeroExpData == null) { exp_hero_bar.ChangeValue(0); } else { percent = (_oldHeroInfo.exp + 0.0f) / curHeroExpData.exp; exp_hero_bar.ChangeValue(percent); } if (next == null) { _nextHeroLevel = HeroProxy.instance.GetHeroInfo(_oldHeroInfo.instanceID).level; } else { _nextHeroLevel = next.lv; } } if (expAddText != null) { expAddText.text = string.Format(Localization.Get("ui.fightResultView.hero_exp_add"), _addHeroExp); } text_lv.text = string.Format(Localization.Get("common.role_icon.role_lv"), _curHeroLevel); if (_addHeroExp != 0) { StartCoroutine(UpdateHeroBarDelay(_delayTime)); } }