From 2a0570820755654c03028ca111c8a51170b4e565 Mon Sep 17 00:00:00 2001 From: milimoe Date: Wed, 13 Nov 2024 00:35:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=8D=E7=A7=B0=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=92=8C=E9=87=8D=E5=A4=8D=E6=8A=80=E8=83=BD=E4=B8=8D?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OshimaCore/Utils/FunGameUtil.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/OshimaCore/Utils/FunGameUtil.cs b/OshimaCore/Utils/FunGameUtil.cs index 11c8067..6b08e6b 100644 --- a/OshimaCore/Utils/FunGameUtil.cs +++ b/OshimaCore/Utils/FunGameUtil.cs @@ -1070,11 +1070,20 @@ namespace Oshima.Core.Utils if (intelligence > 0) strings.Add($"{intelligence:0.##} 点智力"); foreach (Skill skill in magics) { - Skill magic = skill.Copy(); - magic.Level = skill.Level; - item.Skills.Magics.Add(magic); + IEnumerable has = item.Skills.Magics.Where(m => m.Id == skill.Id); + if (has.Any() && has.First() is Skill s) + { + s.Level += skill.Level; + if (s.Level > 1) s.Name = s.Name.Split(' ')[0] + $" +{s.Level - 1}"; + } + else + { + Skill magic = skill.Copy(); + magic.Level = skill.Level; + item.Skills.Magics.Add(magic); + } } - item.Description = $"包含魔法:{string.Join(",", item.Skills.Magics.Select(m => m.Name + $" +{m.Level - 1}"))}\r\n" + + item.Description = $"包含魔法:{string.Join(",", item.Skills.Magics.Select(m => m.Name + (m.Level > 1 ? $" +{m.Level - 1}" : "")))}\r\n" + $"增加角色属性:{string.Join(",", strings)}"; double total = str + agi + intelligence; if (total > 18 && total <= 36)