static public int GetEnchanceLevelUpExp(int level, ItemQuality itemquality) { int levelupexp = 0; Tab_EquipEnchance line = TableManager.GetEquipEnchanceByID(level + 1, 0); if (line != null) { switch (itemquality) { case ItemQuality.QUALITY_WHITE: { levelupexp = line.WhiteExp; } break; case ItemQuality.QUALITY_GREEN: { levelupexp = line.GreenExp; } break; case ItemQuality.QUALITY_BLUE: { levelupexp = line.BlueExp; } break; case ItemQuality.QUALITY_PURPLE: { levelupexp = line.PurpleExp; } break; case ItemQuality.QUALITY_ORANGE: { levelupexp = line.OrangeExp; } break; case ItemQuality.QUALITY_RED: { levelupexp = line.RedExp; } break; case ItemQuality.QUALITY_GOLD: { levelupexp = line.GoldExp; } break; default: break; } } return(levelupexp); }
int GetCurEnchanceAttr(GameItem item, int attr) { int curValue = 0; Tab_EquipEnchance curEnchanceLine = TableManager.GetEquipEnchanceByID(item.EnchanceLevel, 0); if (curEnchanceLine != null) { curValue = (int)(curEnchanceLine.EnchanceRate * attr) + 1; } return(curValue); }
int GetNextEnchanceAttr(GameItem item, int attr) { int nextValue = 0; Tab_EquipEnchance nextEnchanceLine = TableManager.GetEquipEnchanceByID(item.EnchanceLevel + 1, 0); if (nextEnchanceLine != null) { nextValue = (int)(nextEnchanceLine.EnchanceRate * attr) + 1; } return(nextValue); }
int GetEnchanceAdd(GameItem item, int attr) { int EnchanceAddValue = 0; Tab_EquipEnchance curEnchanceLine = TableManager.GetEquipEnchanceByID(item.EnchanceLevel, 0); Tab_EquipEnchance nextEnchanceLine = TableManager.GetEquipEnchanceByID(item.EnchanceLevel + 1, 0); if (nextEnchanceLine != null) { if (curEnchanceLine != null) { int curValue = (int)(curEnchanceLine.EnchanceRate * attr); int nextValue = (int)(nextEnchanceLine.EnchanceRate * attr); EnchanceAddValue = (int)(nextValue - curValue); } else { EnchanceAddValue = (int)(nextEnchanceLine.EnchanceRate * attr) + 1; } } return(EnchanceAddValue); }
void SetEnchanceAndStarAttr(GameItem item, int index, float attr, bool extraAddAttr = false) { int EnchanceAndStarValue = 0; //强化属性 if (item.EnchanceLevel > 0) { Tab_EquipEnchance enchanceline = TableManager.GetEquipEnchanceByID(item.EnchanceLevel, 0); if (enchanceline != null) { float rate = enchanceline.EnchanceRate; if (rate > 0) { EnchanceAndStarValue += (int)(attr * rate) + 1; } } } //打星属性 if (item.StarLevel > 0 && extraAddAttr == false) { Tab_EquipStar starline = TableManager.GetEquipStarByID(item.StarLevel, 0); if (starline != null) { float rate = starline.AttrRate; if (rate > 0) { EnchanceAndStarValue += (int)(attr * rate) + 1; } } } if (EnchanceAndStarValue > 0) { m_EnchanceAttr[index].text = string.Format("+{0}", EnchanceAndStarValue); m_EnchanceAttr[index].gameObject.SetActive(true); } }
//显示装备属性 public void ShowAttr(GameItem item) { for (int i = 0; i < m_AttrName.Length; ++i) { m_AttrName[i].text = ""; m_AddAttr[i].text = ""; m_AttrWhole[i].SetActive(false); m_CurAttr[i].text = ""; } string strColor = "[00A0FF]"; //Tab_EquipEnchance curEnchanceLine = TableManager.GetEquipEnchanceByID(item.EnchanceLevel.ToString(), 0); Tab_EquipEnchance nextEnchanceLine = TableManager.GetEquipEnchanceByID(item.EnchanceLevel + 1, 0); // Tab_EquipEnchance curEnchanceLine = TableManager.GetEquipEnchanceByID(item.EnchanceLevel, 0); //if (nextEnchanceLine != null && curEnchanceLine != null) if (nextEnchanceLine != null) { Tab_EquipAttr line = TableManager.GetEquipAttrByID(item.DataID, 0); if (line != null) { int index = 0; //血上限 if (line.HP > 0 && index < m_AttrName.Length && index >= 0) { //打星加成属性 m_AttrName[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAXHP); m_AddAttr[index].text = string.Format("+{0}", GetNextEnchanceAttr(item, (int)line.HP).ToString()); m_CurAttr[index].text = string.Format("+{0}", GetCurEnchanceAttr(item, (int)line.HP).ToString()); m_AttrWhole[index].SetActive(true); ++index; } //蓝上限 if (line.MP > 0 && index < m_AttrName.Length && index >= 0) { m_AttrName[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAXMP); m_AddAttr[index].text = string.Format("+{0}", GetNextEnchanceAttr(item, (int)line.MP).ToString()); m_CurAttr[index].text = string.Format("+{0}", GetCurEnchanceAttr(item, (int)line.MP).ToString()); m_AttrWhole[index].SetActive(true); ++index; } //物理攻击 if (line.PhysicsAttack > 0 && index < m_AttrName.Length && index >= 0) { m_AttrName[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.PYSATTACK); m_AddAttr[index].text = string.Format("+{0}", GetNextEnchanceAttr(item, (int)line.PhysicsAttack).ToString()); m_CurAttr[index].text = string.Format("+{0}", GetCurEnchanceAttr(item, (int)line.PhysicsAttack).ToString()); m_AttrWhole[index].SetActive(true); ++index; } //法术攻击 if (line.MagicAttack > 0 && index < m_AttrName.Length && index >= 0) { m_AttrName[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAGATTACK); m_AddAttr[index].text = string.Format("+{0}", GetNextEnchanceAttr(item, (int)line.MagicAttack).ToString()); m_CurAttr[index].text = string.Format("+{0}", GetCurEnchanceAttr(item, (int)line.MagicAttack).ToString()); m_AttrWhole[index].SetActive(true); ++index; } //物理防御 if (line.PhysicsDefence > 0 && index < m_AttrName.Length && index >= 0) { m_AttrName[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.PYSDEF); m_AddAttr[index].text = string.Format("+{0}", GetNextEnchanceAttr(item, (int)line.PhysicsDefence).ToString()); m_CurAttr[index].text = string.Format("+{0}", GetCurEnchanceAttr(item, (int)line.PhysicsDefence).ToString()); m_AttrWhole[index].SetActive(true); ++index; } //法术防御 if (line.MagicDefence > 0 && index < m_AttrName.Length && index >= 0) { m_AttrName[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAGDEF); m_AddAttr[index].text = string.Format("+{0}", GetNextEnchanceAttr(item, (int)line.MagicDefence).ToString()); m_CurAttr[index].text = string.Format("+{0}", GetCurEnchanceAttr(item, (int)line.MagicDefence).ToString()); m_AttrWhole[index].SetActive(true); ++index; } //全攻击 if (line.AllAttack > 0 && index < m_AttrName.Length && index >= 0) { m_AttrName[index].text = strColor + ItemTool.ConvertAttrToString((COMBATATTE)1000); m_AddAttr[index].text = string.Format("+{0}", GetNextEnchanceAttr(item, (int)line.AllAttack).ToString()); m_CurAttr[index].text = string.Format("+{0}", GetCurEnchanceAttr(item, (int)line.AllAttack).ToString()); m_AttrWhole[index].SetActive(true); ++index; } //全防御 if (line.AllDefence > 0 && index < m_AttrName.Length && index >= 0) { m_AttrName[index].text = strColor + ItemTool.ConvertAttrToString((COMBATATTE)1001); m_AddAttr[index].text = string.Format("+{0}", GetNextEnchanceAttr(item, (int)line.AllDefence).ToString()); m_CurAttr[index].text = string.Format("+{0}", GetCurEnchanceAttr(item, (int)line.AllDefence).ToString()); m_AttrWhole[index].SetActive(true); ++index; } //附加属性 for (int attrIndex = 0; attrIndex < line.getAddAttrTypeCount(); ++attrIndex) { int attrType = line.GetAddAttrTypebyIndex(attrIndex); float attrValue = line.GetAddAttrValuebyIndex(attrIndex); if ((attrType >= (int)COMBATATTE.MAXHP && attrType < (int)COMBATATTE.COMBATATTE_MAXNUM) || attrType == 1000 || attrType == 1001) { if (attrValue > 0) { if (index < m_AttrName.Length && index >= 0) { //策划要求隐藏装备攻速属性 if (attrType == (int)COMBATATTE.ATTACKSPEED) { continue; } m_AttrName[index].text = strColor + ItemTool.ConvertAttrToString((COMBATATTE)attrType); m_AddAttr[index].text = string.Format("+{0}", GetNextEnchanceAttr(item, (int)attrValue).ToString()); m_CurAttr[index].text = string.Format("+{0}", GetCurEnchanceAttr(item, (int)attrValue).ToString()); m_AttrWhole[index].SetActive(true); ++index; } } } } m_Grid.Reposition(); m_TopGrid.Recenter(true); } } }