public static List <string> WeaponsList(int stdoutIndex, D2Weapon weapon) { var stdoutIndexStr = stdoutIndex.ToString().ToCharArray().Length < 2 ? "0" + stdoutIndex.ToString() : stdoutIndex.ToString(); try { var l = new List <string>(); var name = Translate.Name(weapon.name, true); var attribute = Translate.AttrValAndText(weapon.attribute1, weapon.attribute2, weapon.attribute3); var type = Translate.WeaponAttrToType(attribute); var talent = Translate.Talents(weapon.talent); l.Add(stdoutIndexStr + ". " + name); //l.Add("伤害:" + weapon.dmg + " 射速:" + weapon.rpm + " 弹夹:" + weapon.mag); l.Add(string.IsNullOrWhiteSpace(type) ? "" : $"[{type}]"); var attrstr = string.Empty; var attrstrmain = new List <string>(); var attrstroff = new List <string>(); foreach (var attr in attribute) { string tmp; if (attr.val == 0) { tmp = Translate.TransAttrValType(attr.valType); } else { if (attr.val >= attr.valMax && attr.val / attr.valMax < 3) { if (attr.isMainAttr && attr.valType == AttrValType.Utility) { tmp = Translate.TransAttrValType(attr.valType); } else { tmp = Translate.TransAttrValType(attr.valType) + "[满]"; } } else { tmp = Translate.TransAttrValType(attr.valType); } } if (attr.isMainAttr) { attrstrmain.Add(tmp); } else { attrstroff.Add(tmp); } } attrstr += "主属性:" + string.Join(" ", attrstrmain); l.Add(attrstr); attrstr = "次属性:" + string.Join(" ", attrstroff); l.Add(attrstr); if (!string.IsNullOrWhiteSpace(talent)) { l.Add("天赋:" + talent); } return(l); } catch (Exception) { var l = new List <string>(); l.Add(stdoutIndexStr + ". " + weapon.name); l.Add(""); l.Add(""); l.Add("数据源异常"); return(l); } }