物品、物品容器重新设计
This commit is contained in:
parent
aa5a070fe6
commit
8bfee0eeeb
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue