物品、物品容器重新设计

This commit is contained in:
kercylan98 2023-05-10 14:58:33 +08:00
parent aa5a070fe6
commit 8bfee0eeeb
1 changed files with 4 additions and 4 deletions

View File

@ -78,7 +78,7 @@ func (slf *ItemContainer[ItemID, Item]) AddItem(item Item, count *huge.Int) erro
for guid := range slf.itemIdGuidRef[item.GetID()] { for guid := range slf.itemIdGuidRef[item.GetID()] {
member := slf.items[guid] member := slf.items[guid]
if member.GetItem().IsSame(item) { if member.GetItem().IsSame(item) {
member.count = member.count.Add(count) member.count.Add(count)
return nil return nil
} }
} }
@ -107,7 +107,7 @@ func (slf *ItemContainer[ItemID, Item]) DeductItem(guid int64, count *huge.Int)
} }
member := slf.items[guid] member := slf.items[guid]
if member.count.GreaterThanOrEqualTo(count) { if member.count.GreaterThanOrEqualTo(count) {
member.count = member.count.Sub(count) member.count.Sub(count)
if member.count.EqualTo(huge.IntZero) { if member.count.EqualTo(huge.IntZero) {
slf.size-- slf.size--
delete(slf.items, guid) delete(slf.items, guid)
@ -120,7 +120,7 @@ func (slf *ItemContainer[ItemID, Item]) DeductItem(guid int64, count *huge.Int)
for guid := range guids { for guid := range guids {
member := slf.items[guid] member := slf.items[guid]
if need.GreaterThanOrEqualTo(member.count) { if need.GreaterThanOrEqualTo(member.count) {
need = need.Sub(member.count) need.Sub(member.count)
handles = append(handles, func() { handles = append(handles, func() {
member.count = huge.IntZero.Copy() member.count = huge.IntZero.Copy()
slf.size-- slf.size--
@ -131,7 +131,7 @@ func (slf *ItemContainer[ItemID, Item]) DeductItem(guid int64, count *huge.Int)
} }
}) })
} else { } else {
member.count = member.count.Sub(need) member.count.Sub(need)
need = huge.IntZero need = huge.IntZero
} }
} }