//检查是否有能升级 private void CheckHasUpgrade() { RoleInfo role = LobbyClient.Instance.CurrentRole; if (role == null) { return; } bool has = false; List <SkillInfo> skillList = role.SkillInfos; foreach (SkillInfo info in skillList) { if (info != null) { bool currHas = false; if (info.SkillLevel > 0) { //已解锁 if (info.SkillLevel < role.Level) { //等级 SkillLogicData skillCfg = SkillConfigProvider.Instance.ExtractData(SkillConfigType.SCT_SKILL, info.SkillId) as SkillLogicData; if (skillCfg != null) { SkillLevelupConfig levelUpCfg = SkillLevelupConfigProvider.Instance.GetDataById(info.SkillLevel); int needMoney = 0; int needVigor = 0; if (levelUpCfg != null) { if (skillCfg.LevelUpCostType >= 1 && skillCfg.LevelUpCostType <= levelUpCfg.m_TypeList.Count) { needMoney = levelUpCfg.m_TypeList[skillCfg.LevelUpCostType - 1]; } if (skillCfg.LevelUpVigorType >= 1 && skillCfg.LevelUpVigorType <= levelUpCfg.m_VigorList.Count) { needVigor = levelUpCfg.m_VigorList[skillCfg.LevelUpVigorType - 1]; } int vigor = isEnable ? m_foreVigor : m_backVigor; if (role.Money >= needMoney && vigor >= needVigor) { has = true; currHas = true; } } } } } if (hasInitSkills) { ArkCrossEngine.LogicSystem.EventChannelForGfx.Publish("ge_skillslot_state_change", "skill", info.SkillId, currHas); } } } hasCanUpgrade = has; ArkCrossEngine.LogicSystem.EventChannelForGfx.Publish("ge_systemnewtip_state_change", "ui", SystemNewTipType.Skill, has); //foreach (UISkillSlot slot in skillStorageArr) { // if (null != slot) { // if (slot.m_IsUnlock == true) {//已解锁 // if (slot.SkillLv < role.Level) {//等级 // SkillLogicData skillCfg = SkillConfigProvider.Instance.ExtractData(SkillConfigType.SCT_SKILL, slot.SkillId) as SkillLogicData; // if (skillCfg != null) { // SkillLevelupConfig levelUpCfg = SkillLevelupConfigProvider.Instance.GetDataById(slot.SkillLv); // int needMoney = 0; // int needVigor = 0; // if (levelUpCfg != null) { // if (skillCfg.LevelUpCostType >= 1 && skillCfg.LevelUpCostType <= levelUpCfg.m_TypeList.Count) // needMoney = levelUpCfg.m_TypeList[skillCfg.LevelUpCostType - 1]; // if (skillCfg.LevelUpVigorType >= 1 && skillCfg.LevelUpVigorType <= levelUpCfg.m_VigorList.Count) // needVigor = levelUpCfg.m_VigorList[skillCfg.LevelUpVigorType - 1]; // if (role.Money >= needMoney && uiSkillInfo != null && uiSkillInfo.PlayerVigor > needVigor) { // has = true; // } // } // } // } // } // } //} }
//设置升级界面信息 public void SetSkillLevelUpInfo(int skillId, bool isUpgrade = false) { SetSkillInfo(skillId); int skillLevel = 0; foreach (SkillInfo info in LobbyClient.Instance.CurrentRole.SkillInfos) { if (info.SkillId == m_SkillId) { skillLevel = info.SkillLevel; break; } } string str = StrDictionaryProvider.Instance.GetDictString(352); str = StrDictionaryProvider.Instance.GetDictString(353); if (lblLv0Level != null) { lblLv0Level.text = str + skillLevel.ToString(); } if (lblLv1Level != null) { lblLv1Level.text = str + (skillLevel + 1).ToString(); } SkillLogicData skillCfg = SkillConfigProvider.Instance.ExtractData(SkillConfigType.SCT_SKILL, m_SkillId) as SkillLogicData; if (skillCfg != null) { if (lblLvDesc != null) { lblLvDesc.text = skillCfg.ShowDescription; } str = StrDictionaryProvider.Instance.GetDictString(354); if (lblLv0Cd != null) { if (isUpgrade == true && lblLv0Cd.text != str + skillCfg.ShowCd + "S") { PlayParticle(goEffectPos1); } lblLv0Cd.text = str + skillCfg.ShowCd + "S"; } if (lblLv1Cd != null) { lblLv1Cd.text = str + skillCfg.ShowCd + "S"; } str = StrDictionaryProvider.Instance.GetDictString(355); if (lblLv0Cost != null) { if (isUpgrade == true && lblLv0Cost.text != str + skillCfg.ShowCostEnergy.ToString()) { PlayParticle(goEffectPos3); } lblLv0Cost.text = str + skillCfg.ShowCostEnergy.ToString(); } if (lblLv1Cost != null) { lblLv1Cost.text = str + skillCfg.ShowCostEnergy.ToString(); } str = StrDictionaryProvider.Instance.GetDictString(356); if (lblLv0HitNum != null) { if (isUpgrade == true && lblLv0HitNum.text != str + skillCfg.ShowHitNum) { PlayParticle(goEffectPos4); } lblLv0HitNum.text = str + skillCfg.ShowHitNum; } if (lblLv1HitNum != null) { lblLv1HitNum.text = str + skillCfg.ShowHitNum; } str = StrDictionaryProvider.Instance.GetDictString(357); float totalDamage = (skillCfg.ShowBaseDamage + skillCfg.DamagePerLevel * skillLevel) * 100; if (lblLv0Damage != null) { if (isUpgrade == true && lblLv0Damage.text != str + ((int)totalDamage).ToString() + "%") { PlayParticle(goEffectPos2); } lblLv0Damage.text = str + ((int)totalDamage).ToString() + "%"; } totalDamage = (skillCfg.ShowBaseDamage + skillCfg.DamagePerLevel * (skillLevel + 1)) * 100; if (lblLv1Damage != null) { lblLv1Damage.text = str + ((int)totalDamage).ToString() + "%"; } SkillLevelupConfig levelUpCfg = SkillLevelupConfigProvider.Instance.GetDataById(skillLevel); if (levelUpCfg != null) { if (skillCfg.LevelUpCostType >= 1 && skillCfg.LevelUpCostType <= levelUpCfg.m_TypeList.Count && lblLvMoney != null) { lblLvMoney.text = levelUpCfg.m_TypeList[skillCfg.LevelUpCostType - 1].ToString(); } if (skillCfg.LevelUpVigorType >= 1 && skillCfg.LevelUpVigorType <= levelUpCfg.m_VigorList.Count && lblCurrentVigor != null) { lblCurrentVigor.text = levelUpCfg.m_VigorList[skillCfg.LevelUpVigorType - 1].ToString(); } } else { if (lblLvMoney != null) { lblLvMoney.text = "0"; } } } if (skillLevel == 0) { string CHN = StrDictionaryProvider.Instance.GetDictString(354); if (lblLv0Cd != null) { lblLv0Cd.text = CHN + 0 + "S"; } CHN = StrDictionaryProvider.Instance.GetDictString(355); if (lblLv0Cost != null) { lblLv0Cost.text = CHN + "0"; } CHN = StrDictionaryProvider.Instance.GetDictString(356); if (lblLv0HitNum != null) { lblLv0HitNum.text = CHN + "0"; } CHN = StrDictionaryProvider.Instance.GetDictString(357); if (lblLv0Damage != null) { lblLv0Damage.text = CHN + 0 + "%"; } } }
public void SetSkillIntroduce(int skillId) { if (scrollBar == null || textList == null) { return; } ClearChildren(); //m_SkillId = skillId; //通过读取表格获取技能信息,初始化预设 int skillLevel = 0; foreach (SkillInfo info in LobbyClient.Instance.CurrentRole.SkillInfos) { if (info.SkillId == skillId) { skillLevel = info.SkillLevel; break; } } SkillLogicData skillCfg = SkillConfigProvider.Instance.ExtractData(SkillConfigType.SCT_SKILL, skillId) as SkillLogicData; if (skillCfg != null) { textList.Add(" [ffff00]" + skillCfg.ShowName + "[-]"); textList.Add(" "); textList.Add(skillCfg.ShowDescription); if (skillCfg.ShowSteps > 1) { for (int index = 2; index <= skillCfg.ShowSteps; ++index) { switch (index) { case 2: textList.Add("[00ff00]" + skillCfg.ShowSteps2Des + "[-]"); break; case 3: textList.Add("[00ff00]" + skillCfg.ShowSteps3Des + "[-]"); break; case 4: textList.Add("[00ff00]" + skillCfg.ShowSteps4Des + "[-]"); break; default: break; } } } textList.Add(" "); textList.Add(FormatString("技能CD", skillCfg.ShowCd.ToString(), "s")); textList.Add(FormatString("技能消耗", skillCfg.ShowCostEnergy.ToString(), "")); textList.Add(FormatString("技能等级", skillLevel.ToString(), "级")); float totalDamage = (skillCfg.ShowBaseDamage + skillCfg.DamagePerLevel * skillLevel) * 100; textList.Add(FormatString("技能总伤害", totalDamage.ToString("F1"), "%")); textList.Add(" "); //最大阶数为4 const int MaxSteps = 4; for (int index = skillCfg.ShowSteps + 1; index <= MaxSteps; ++index) { switch (index) { case 2: textList.Add("[00ff00]" + skillCfg.ShowSteps2Des + "[-]"); break; case 3: textList.Add("[00ff00]" + skillCfg.ShowSteps3Des + "[-]"); break; case 4: textList.Add("[00ff00]" + skillCfg.ShowSteps4Des + "[-]"); break; default: break; } } } scrollBar.value = 0; }
//设置技能信息界面 public void SetSkillPanelInfo(int skillId) { SetSkillInfo(skillId); int skillLevel = 0; foreach (SkillInfo info in LobbyClient.Instance.CurrentRole.SkillInfos) { if (info.SkillId == m_SkillId) { skillLevel = info.SkillLevel; break; } } if (lblSkillLevel != null) { lblSkillLevel.text = "Lv." + skillLevel; } SkillLogicData skillCfg = SkillConfigProvider.Instance.ExtractData(SkillConfigType.SCT_SKILL, m_SkillId) as SkillLogicData; if (skillCfg != null) { if (lblSkillName != null) { lblSkillName.text = skillCfg.ShowName; } if (lblSkillDes != null) { lblSkillDes.text = skillCfg.ShowDescription; } string str = ""; StrDictionary strDic = StrDictionaryProvider.Instance.GetDataById(351); if (strDic != null) { str = strDic.m_String; } if (lblSkillSection != null) { lblSkillSection.text = skillCfg.ShowSteps + str; } if (lblSkillCd != null) { lblSkillCd.text = FormatString(skillCfg.ShowCd + "S", LabelType.Cd); } if (lblSkillCost != null) { lblSkillCost.text = FormatString(skillCfg.ShowCostEnergy.ToString(), LabelType.EnergyCost); } if (lblSkillHitNum != null) { lblSkillHitNum.text = FormatString("3", LabelType.HitCount); } float totalDamage = (skillCfg.ShowBaseDamage + skillCfg.DamagePerLevel * skillLevel) * 100; if (lblSkillDamage != null) { lblSkillDamage.text = FormatString(((int)totalDamage).ToString() + "%", LabelType.Damage); } str = str + ":"; if (lblSkillDes2 != null) { lblSkillDes2.text = 2 + str + skillCfg.ShowSteps2Des; if (skillCfg.ShowSteps >= 2) { lblSkillDes2.color = SectionColor; } else { lblSkillDes2.color = AshColor; } } if (lblSkillDes3 != null) { lblSkillDes3.text = 3 + str + skillCfg.ShowSteps3Des; if (skillCfg.ShowSteps >= 3) { lblSkillDes3.color = SectionColor; } else { lblSkillDes3.color = AshColor; } } if (lblSkillDes4 != null) { lblSkillDes4.text = 4 + str + skillCfg.ShowSteps4Des; if (skillCfg.ShowSteps >= 4) { lblSkillDes4.color = SectionColor; } else { lblSkillDes4.color = AshColor; } } } if (skillLevel == 0) { if (lblSkillCd != null) { lblSkillCd.text = FormatString(0 + "S", LabelType.Cd); } if (lblSkillCost != null) { lblSkillCost.text = FormatString("0", LabelType.EnergyCost); } if (lblSkillHitNum != null) { lblSkillHitNum.text = FormatString("0", LabelType.HitCount); } if (lblSkillDamage != null) { lblSkillDamage.text = FormatString("0", LabelType.Damage); } } }