29 lines
820 B
Go
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
|
|
}
|