/// <summary> /// 绘制套装属性。 /// </summary> private void RenderEffect(Graphics g, ref int picHeight) { foreach (KeyValuePair <int, SetItemEffect> effect in this.SetItem.effects) { g.DrawString(effect.Key + "套装效果", GearGraphics.ItemDetailFont, GearGraphics.GreenBrush2, 8, picHeight); picHeight += 16; //Brush brush = effect.Value.Enabled ? Brushes.White : GearGraphics.GrayBrush2; var color = effect.Value.Enabled ? Color.White : GearGraphics.GrayColor2; //T116 合并套装 var props = IsCombineProperties ? Gear.CombineProperties(effect.Value.PropsV5) : effect.Value.PropsV5; foreach (KeyValuePair <GearPropType, object> prop in props) { if (prop.Key == GearPropType.Option) { List <Potential> ops = (List <Potential>)prop.Value; foreach (Potential p in ops) { GearGraphics.DrawPlainText(g, p.ConvertSummary(), GearGraphics.ItemDetailFont2, color, 10, 244, ref picHeight, 16); } } else if (prop.Key == GearPropType.OptionToMob) { List <SetItemOptionToMob> ops = (List <SetItemOptionToMob>)prop.Value; foreach (SetItemOptionToMob p in ops) { GearGraphics.DrawPlainText(g, p.ConvertSummary(), GearGraphics.ItemDetailFont2, color, 10, 244, ref picHeight, 16); } } else if (prop.Key == GearPropType.activeSkill) { List <SetItemActiveSkill> ops = (List <SetItemActiveSkill>)prop.Value; foreach (SetItemActiveSkill p in ops) { StringResult sr; if (StringLinker == null || !StringLinker.StringSkill.TryGetValue(p.SkillID, out sr)) { sr = new StringResult(); sr.Name = p.SkillID.ToString(); } string summary = "激活技能<" + sr.Name + "> Lv." + p.Level; GearGraphics.DrawPlainText(g, summary, GearGraphics.ItemDetailFont2, color, 10, 244, ref picHeight, 16); } } else { var summary = ItemStringHelper.GetGearPropString(prop.Key, Convert.ToInt32(prop.Value)); GearGraphics.DrawPlainText(g, summary, GearGraphics.ItemDetailFont2, color, 10, 244, ref picHeight, 16); } } } }
/// <summary> /// 绘制套装属性。 /// </summary> private void RenderEffect(Graphics g, ref int picHeight) { foreach (KeyValuePair <int, SetItemEffect> effect in this.SetItem.Effects) { string effTitle; if (this.SetItem.SetItemID < 0) { effTitle = $"服务器内重复装备效果({effect.Key} / {this.SetItem.CompleteCount})"; } else { effTitle = effect.Key + " Set Items Equipped"; } g.DrawString(effTitle, GearGraphics.ItemDetailFont, GearGraphics.GreenBrush2, 8, picHeight); picHeight += 16; //Brush brush = effect.Value.Enabled ? Brushes.White : GearGraphics.GrayBrush2; var color = effect.Value.Enabled ? Color.White : GearGraphics.GrayColor2; //T116 合并套装 var props = IsCombineProperties ? Gear.CombineProperties(effect.Value.PropsV5) : effect.Value.PropsV5; foreach (KeyValuePair <GearPropType, object> prop in props) { if (prop.Key == GearPropType.Option) { List <Potential> ops = (List <Potential>)prop.Value; foreach (Potential p in ops) { GearGraphics.DrawPlainText(g, p.ConvertSummary(), GearGraphics.ItemDetailFont2, color, 10, 244, ref picHeight, 16); } } else if (prop.Key == GearPropType.OptionToMob) { List <SetItemOptionToMob> ops = (List <SetItemOptionToMob>)prop.Value; foreach (SetItemOptionToMob p in ops) { GearGraphics.DrawPlainText(g, p.ConvertSummary(), GearGraphics.ItemDetailFont2, color, 10, 244, ref picHeight, 16); } } else if (prop.Key == GearPropType.activeSkill) { List <SetItemActiveSkill> ops = (List <SetItemActiveSkill>)prop.Value; foreach (SetItemActiveSkill p in ops) { StringResult sr; if (StringLinker == null || !StringLinker.StringSkill.TryGetValue(p.SkillID, out sr)) { sr = new StringResult(); sr.Name = p.SkillID.ToString(); } string summary = $"Able to use the skill <{sr.Name}>"; GearGraphics.DrawPlainText(g, summary, GearGraphics.ItemDetailFont2, color, 10, 244, ref picHeight, 16); } } else if (prop.Key == GearPropType.bonusByTime) { var ops = (List <SetItemBonusByTime>)prop.Value; foreach (SetItemBonusByTime p in ops) { GearGraphics.DrawPlainText(g, $"{p.TermStart}小时后", GearGraphics.ItemDetailFont2, color, 10, 244, ref picHeight, 16); foreach (var bonusProp in p.Props) { var summary = ItemStringHelper.GetGearPropString(bonusProp.Key, Convert.ToInt32(bonusProp.Value)); GearGraphics.DrawPlainText(g, summary, GearGraphics.ItemDetailFont2, color, 10, 244, ref picHeight, 16); } } } else { var summary = ItemStringHelper.GetGearPropString(prop.Key, Convert.ToInt32(prop.Value)); GearGraphics.DrawPlainText(g, summary, GearGraphics.ItemDetailFont2, color, 10, 244, ref picHeight, 16); } } } }