``refactor(player): 统一将UseCoins方法重命名为GetCoins并优化宠物融合扣费逻辑``
This commit is contained in:
@@ -37,7 +37,7 @@ func (h Controller) BuyItem(data *item.BuyInboundInfo, player *player.Player) (r
|
|||||||
|
|
||||||
// 需要付费的道具
|
// 需要付费的道具
|
||||||
totalCost := data.Count * uint32(itemInfo.Price)
|
totalCost := data.Count * uint32(itemInfo.Price)
|
||||||
if !player.UseCoins(totalCost) {
|
if !player.GetCoins(totalCost) {
|
||||||
return &item.BuyOutboundInfo{Coins: player.Info.Coins}, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
return &item.BuyOutboundInfo{Coins: player.Info.Coins}, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ func (h Controller) BuyMultipleItems(data *item.BuyMultiInboundInfo, player *pla
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 需要付费的道具
|
// 需要付费的道具
|
||||||
if !player.UseCoins(uint32(itemInfo.Price)) {
|
if !player.GetCoins(uint32(itemInfo.Price)) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ func (h *Controller) PlayerPetCure(data *nono.PetCureInboundInfo, c *player.Play
|
|||||||
if c.GetSpace().Owner.UserID == c.Info.UserID {
|
if c.GetSpace().Owner.UserID == c.Info.UserID {
|
||||||
return result, errorcode.ErrorCodes.ErrChampionCannotHeal
|
return result, errorcode.ErrorCodes.ErrChampionCannotHeal
|
||||||
}
|
}
|
||||||
if !c.UseCoins(50) {
|
if !c.GetCoins(50) {
|
||||||
return result, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
return result, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
||||||
}
|
}
|
||||||
for i := 0; i < len(c.Info.PetList); i++ {
|
for i := 0; i < len(c.Info.PetList); i++ {
|
||||||
|
|||||||
@@ -14,9 +14,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result *pet.PetFusionInfo, err errorcode.ErrorCode) {
|
func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result *pet.PetFusionInfo, err errorcode.ErrorCode) {
|
||||||
if !c.UseCoins(1000) {
|
if !c.GetCoins(1000) {
|
||||||
return result, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
return result, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
||||||
}
|
}
|
||||||
|
c.Info.Coins -= 1000
|
||||||
// g.Dump(c.Info.PetList)
|
// g.Dump(c.Info.PetList)
|
||||||
|
|
||||||
//防止同一只
|
//防止同一只
|
||||||
@@ -49,6 +50,16 @@ func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result
|
|||||||
|
|
||||||
resid := int(service.NewPetFusionService().Data(Mcatchpetinfo.ID, Auxpetinfo.ID, Mcatchpetinfo.Level+Auxpetinfo.Level))
|
resid := int(service.NewPetFusionService().Data(Mcatchpetinfo.ID, Auxpetinfo.ID, Mcatchpetinfo.Level+Auxpetinfo.Level))
|
||||||
|
|
||||||
|
for _, v := range data.Item1 {
|
||||||
|
if c.Service.Item.CheakItem(v) == 0 {
|
||||||
|
return &pet.PetFusionInfo{}, 0
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
for _, v := range data.Item1 {
|
||||||
|
c.Service.Item.UPDATE(v, -1)
|
||||||
|
|
||||||
|
}
|
||||||
if resid == 0 {
|
if resid == 0 {
|
||||||
|
|
||||||
_, ok := lo.Find(data.GoldItem1[:], func(item uint32) bool {
|
_, ok := lo.Find(data.GoldItem1[:], func(item uint32) bool {
|
||||||
@@ -69,12 +80,6 @@ func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result
|
|||||||
|
|
||||||
return &pet.PetFusionInfo{}, 0
|
return &pet.PetFusionInfo{}, 0
|
||||||
}
|
}
|
||||||
for _, v := range data.Item1 {
|
|
||||||
if c.Service.Item.CheakItem(v) == 0 {
|
|
||||||
return &pet.PetFusionInfo{}, 0
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
effect := int(service.NewPetFusionMaterialService().Data(data.Item1))
|
effect := int(service.NewPetFusionMaterialService().Data(data.Item1))
|
||||||
|
|
||||||
@@ -114,10 +119,7 @@ func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result
|
|||||||
c.PetDel(data.Auxcatchtime)
|
c.PetDel(data.Auxcatchtime)
|
||||||
|
|
||||||
}
|
}
|
||||||
for _, v := range data.Item1 {
|
|
||||||
c.Service.Item.UPDATE(v, -1)
|
|
||||||
|
|
||||||
}
|
|
||||||
//todo材料扣除
|
//todo材料扣除
|
||||||
return &pet.PetFusionInfo{
|
return &pet.PetFusionInfo{
|
||||||
ObtainTime: r.CatchTime,
|
ObtainTime: r.CatchTime,
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import (
|
|||||||
func (h Controller) SetPetSkill(data *pet.ChangeSkillInfo, c *player.Player) (result *pet.ChangeSkillOutInfo, err errorcode.ErrorCode) {
|
func (h Controller) SetPetSkill(data *pet.ChangeSkillInfo, c *player.Player) (result *pet.ChangeSkillOutInfo, err errorcode.ErrorCode) {
|
||||||
const setSkillCost = 50
|
const setSkillCost = 50
|
||||||
|
|
||||||
if !c.UseCoins(setSkillCost) {
|
if !c.GetCoins(setSkillCost) {
|
||||||
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ func (h Controller) SetPetSkill(data *pet.ChangeSkillInfo, c *player.Player) (re
|
|||||||
func (h Controller) SortPetSkills(data *pet.C2S_Skill_Sort, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
func (h Controller) SortPetSkills(data *pet.C2S_Skill_Sort, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||||
const skillSortCost = 50
|
const skillSortCost = 50
|
||||||
|
|
||||||
if !c.UseCoins(skillSortCost) {
|
if !c.GetCoins(skillSortCost) {
|
||||||
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ func (h Controller) BuyFitment(data *room.C2S_BUY_FITMENT, c *player.Player) (re
|
|||||||
itemConfig := xmlres.ItemsMAP[int(data.ID)]
|
itemConfig := xmlres.ItemsMAP[int(data.ID)]
|
||||||
totalCost := itemConfig.Price * int(data.Count)
|
totalCost := itemConfig.Price * int(data.Count)
|
||||||
|
|
||||||
if !c.UseCoins(uint32(totalCost)) {
|
if !c.GetCoins(uint32(totalCost)) {
|
||||||
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
||||||
}
|
}
|
||||||
c.Service.Room.Add(data.ID, data.Count)
|
c.Service.Room.Add(data.ID, data.Count)
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ func (h Controller) PlayerChat(data *user.ChatInboundInfo, player *player.Player
|
|||||||
func (h Controller) ChangePlayerColor(data *user.ChangeColorInboundInfo, player *player.Player) (result *user.ChangeColorOutboundInfo, err errorcode.ErrorCode) {
|
func (h Controller) ChangePlayerColor(data *user.ChangeColorInboundInfo, player *player.Player) (result *user.ChangeColorOutboundInfo, err errorcode.ErrorCode) {
|
||||||
const changeColorCost = 50
|
const changeColorCost = 50
|
||||||
|
|
||||||
if !player.UseCoins(changeColorCost) {
|
if !player.GetCoins(changeColorCost) {
|
||||||
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ func (h Controller) ChangePlayerColor(data *user.ChangeColorInboundInfo, player
|
|||||||
func (h Controller) ChangePlayerDoodle(data *user.ChangeDoodleInboundInfo, player *player.Player) (result *user.ChangeDoodleOutboundInfo, err errorcode.ErrorCode) {
|
func (h Controller) ChangePlayerDoodle(data *user.ChangeDoodleInboundInfo, player *player.Player) (result *user.ChangeDoodleOutboundInfo, err errorcode.ErrorCode) {
|
||||||
const changeDoodleCost = 50
|
const changeDoodleCost = 50
|
||||||
|
|
||||||
if !player.UseCoins(changeDoodleCost) {
|
if !player.GetCoins(changeDoodleCost) {
|
||||||
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ func WithConn(c gnet.Conn) PlayerOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Player) UseCoins(amount uint32) bool {
|
func (p *Player) GetCoins(amount uint32) bool {
|
||||||
if p.Info.Coins < amount {
|
if p.Info.Coins < amount {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user