Files
bl/logic/controller/user_talk.go
昔念 143e02de77 ```
feat(fight): 实现精灵切换时的出战和下场触发机制

- 新增SwitchOut接口方法用于精灵下场时触发
- 重命名Switch为SwitchIn用于精灵出战时触发
- 在战斗流程中添加精灵下场时的广播调用
- 修改EffectDefeatTrigger等效果的切换逻辑

refactor(effects): 优化战斗效果的切换处理逻辑

- 修改Effect147和Effect148的触发条件判断逻辑
-
2025-12-25 20:49:54 +08:00

49 lines
1.3 KiB
Go

package controller
import (
"blazing/common/socket/errorcode"
"blazing/logic/service/item"
"blazing/logic/service/player"
"blazing/modules/config/service"
)
func (h Controller) GetTalkCount(data *item.TalkCountInboundInfo, c *player.Player) (result *item.TalkCountOutboundInfo, err errorcode.ErrorCode) {
result = &item.TalkCountOutboundInfo{}
talkCount, ok := c.Service.Talk.Cheak(c.Info.MapID, int(data.ID))
if !ok {
return result, 0
}
result.GiftCount = uint32(talkCount)
return result, 0
}
//var talkcacche = make(map[string]uint32)
func (h Controller) GetTalkCategory(data *item.TalkCateInboundInfo, c *player.Player) (result *item.DayTalkInfo, err errorcode.ErrorCode) {
result = &item.DayTalkInfo{}
result.OutList = make([]item.CateInfo, 0)
_, ok := c.Service.Talk.Cheak(c.Info.MapID, int(data.ID))
if !ok {
return result, errorcode.ErrorCodes.ErrResourceUnavailable
}
//更新次数
config := service.NewTalkConfigService().GetCache(int(data.ID))
//service.NewItemService().GetItemCount(config.ItemID)
for _, itemID := range config.ItemIDS {
itemCount := service.NewItemService().GetItemCount(itemID)
success := c.ItemAdd(uint32(itemID), uint32(itemCount))
if success {
result.OutList = append(result.OutList, item.CateInfo{ID: itemID, Count: uint32(itemCount)})
}
}
c.Service.Talk.Update(int(data.ID))
return result, 0
}