Files
bl/logic/controller/room_buy.go
xinian d0cf598ced
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
refactor: 将物品和货币相关字段从uint32改为int64以支持更大数值范围
2026-02-12 04:28:20 +08:00

29 lines
820 B
Go

package controller
import (
"blazing/common/data/xmlres"
"blazing/common/socket/errorcode"
"blazing/logic/service/player"
"blazing/logic/service/room"
)
// BuyFitment 购买基地家具
// data: 包含家具ID和购买数量的输入信息
// c: 当前玩家对象
// 返回: 购买结果和错误码
func (h Controller) BuyFitment(data *room.C2S_BUY_FITMENT, c *player.Player) (result *room.S2C_BUY_FITMENT, err errorcode.ErrorCode) {
result = &room.S2C_BUY_FITMENT{}
itemConfig := xmlres.ItemsMAP[int(data.ID)]
totalCost := int64(itemConfig.Price) * int64(data.Count)
if !c.GetCoins((totalCost)) {
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
}
c.Service.Item.UPDATE(data.ID, int(data.Count))
c.Info.Coins -= int64(totalCost)
result.ID = data.ID
result.Coins = c.Info.Coins
return
}