Skip to content

Commit 4ffe004

Browse files
committed
Fix rechargeable items being mergeable
1 parent fa01ddd commit 4ffe004

File tree

4 files changed

+13
-4
lines changed

4 files changed

+13
-4
lines changed

src/common/Edelstein.Common.Gameplay/Entities/Inventories/Modifiers/ModifyInventoryContext.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using System.Collections.Immutable;
44
using System.Linq;
5+
using Edelstein.Protocol.Gameplay.Constants;
56
using Edelstein.Protocol.Gameplay.Entities.Inventories;
67
using Edelstein.Protocol.Gameplay.Entities.Inventories.Modifiers;
78
using Edelstein.Protocol.Gameplay.Entities.Inventories.Modifiers.Operations;

src/protocol/Edelstein.Protocol.Gameplay/Entities/Inventories/ItemSlotBaseExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using Edelstein.Protocol.Gameplay.Constants;
23
using Edelstein.Protocol.Network.Packets.Types;
34

45
namespace Edelstein.Protocol.Gameplay.Entities.Inventories;
@@ -65,7 +66,8 @@ public static StructuredItemSlot ToStructured(this ItemSlotBase item)
6566

6667
Number = bundle.Number,
6768
Title = new LPString(bundle.Title ?? ""),
68-
Attribute = bundle.Attribute
69+
Attribute = bundle.Attribute,
70+
SN = bundle.TemplateID.IsRechargeableItem() ? 0 : null
6971
},
7072
ItemSlotPet pet => new StructuredItemSlotInfoPet
7173
{

src/protocol/Edelstein.Protocol.Gameplay/Entities/Inventories/ItemSlotBundle.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace Edelstein.Protocol.Gameplay.Entities.Inventories;
1+
using Edelstein.Protocol.Gameplay.Constants;
2+
3+
namespace Edelstein.Protocol.Gameplay.Entities.Inventories;
24

35
public record ItemSlotBundle : ItemSlotBase
46
{
@@ -8,7 +10,8 @@ public record ItemSlotBundle : ItemSlotBase
810
public string? Title { get; set; }
911

1012
public bool IsMergeableWith(ItemSlotBundle bundle)
11-
=> TemplateID == bundle.TemplateID &&
13+
=> !TemplateID.IsRechargeableItem() &&
14+
TemplateID == bundle.TemplateID &&
1215
Attribute == bundle.Attribute &&
1316
Title == bundle.Title &&
1417
DateExpire == bundle.DateExpire;

src/protocol/Edelstein.Protocol.Gameplay/Entities/Inventories/StructuredItemSlotInfoBundle.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using BinarySerialization;
2+
using Edelstein.Protocol.Gameplay.Constants;
23
using Edelstein.Protocol.Network.Packets.Types;
34

45
namespace Edelstein.Protocol.Gameplay.Entities.Inventories;
@@ -8,5 +9,7 @@ public record StructuredItemSlotInfoBundle : StructuredItemSlotInfoBase
89
[FieldOrder(0)] public short Number { get; init; }
910
[FieldOrder(1)] public LPString Title { get; init; } = new();
1011
[FieldOrder(2)] public short Attribute { get; init; }
11-
[FieldOrder(3)] public long? SN { get; init; }
12+
13+
[FieldOrder(3)]
14+
public long? SN { get; init; }
1215
}

0 commit comments

Comments
 (0)