From 8e625e19eeb328f5ae07ac3b0fa5c965c744da3e Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Thu, 7 Sep 2023 23:06:09 +0800 Subject: [PATCH] fix #907 --- .../Factory/SummaryAvatarFactory.cs | 4 +-- ...ameRecordCharacterAvatarInfoTransformer.cs | 25 +++++++++++-------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Factory/SummaryAvatarFactory.cs b/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Factory/SummaryAvatarFactory.cs index b35a0b4f..7991f7e3 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Factory/SummaryAvatarFactory.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Factory/SummaryAvatarFactory.cs @@ -3,6 +3,7 @@ using Snap.Hutao.Model; using Snap.Hutao.Model.Intrinsic; +using Snap.Hutao.Model.Intrinsic.Format; using Snap.Hutao.Model.Metadata.Converter; using Snap.Hutao.Model.Primitive; using Snap.Hutao.ViewModel.AvatarProperty; @@ -150,8 +151,7 @@ internal sealed class SummaryAvatarFactory } else { - // 是否为整数 - float statValue = subStat.StatValue == MathF.Truncate(subStat.StatValue) + float statValue = subStat.AppendPropId.GetFormatMethod() is FormatMethod.Percent ? subStat.StatValue / 100F : subStat.StatValue; subProperty = FightPropertyFormat.ToNameDescription(subStat.AppendPropId, statValue); diff --git a/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Transformer/GameRecordCharacterAvatarInfoTransformer.cs b/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Transformer/GameRecordCharacterAvatarInfoTransformer.cs index 137be4c0..699751a4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Transformer/GameRecordCharacterAvatarInfoTransformer.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Transformer/GameRecordCharacterAvatarInfoTransformer.cs @@ -36,8 +36,7 @@ internal sealed class GameRecordCharacterAvatarInfoTransformer : IAvatarInfoTran Flat = new() { ItemType = ItemType.ITEM_RELIQUARY, EquipType = r.Position, }, }); - Equip? equipTest = avatarInfo.EquipList.LastOrDefault(); - if (equipTest?.Weapon is null) + if (avatarInfo.EquipList.LastOrDefault() is null or { Weapon: null }) { // 不存在武器则添加 avatarInfo.EquipList.Add(new()); @@ -45,17 +44,21 @@ internal sealed class GameRecordCharacterAvatarInfoTransformer : IAvatarInfoTran Equip equip = avatarInfo.EquipList.Last(); - equip.ItemId = source.Weapon.Id; - equip.Weapon = new() + if (equip.ItemId != source.Weapon.Id) { - Level = source.Weapon.Level, - AffixMap = new() + // 切换了武器 + equip.ItemId = source.Weapon.Id; + equip.Weapon = new() { - [100000 + source.Weapon.Id] = source.Weapon.AffixLevel - 1, - }, - }; + Level = source.Weapon.Level, + AffixMap = new() + { + [100000 + source.Weapon.Id] = source.Weapon.AffixLevel - 1, + }, + }; - // Special case here, don't set EQUIP_WEAPON - equip.Flat = new() { ItemType = ItemType.ITEM_WEAPON, }; + // Special case here, don't set EQUIP_WEAPON + equip.Flat = new() { ItemType = ItemType.ITEM_WEAPON, }; + } } } \ No newline at end of file