feat(pet): 实现精灵融合功能并优化相关逻辑

新增精灵融合接口及处理逻辑,支持主副精灵融合生成新精灵,并消耗金币与材料。
同时调整了战斗技能选择流程、修复地图热度统计安全问题以及完善宠物删除机制。

- 添加 `PetFusion` 控制器方法实现融合核心逻辑
- 新增 `C2S_PetFusion` 和 `PetFusionInfo` 结构体用于通信
- 修正战斗中技能随机选取后立即返回的问题
- 修复太空站进入/离开时对地图热度的并发访问风险
-
This commit is contained in:
2025-11-26 01:33:48 +08:00
parent f682abe537
commit f76587f952
14 changed files with 198 additions and 18 deletions

View File

@@ -36,7 +36,7 @@ func (s *PetService) PetInfo_One_exec(cachetime uint32, t func(*model.PetEX)) {
}
tt.Data.CatchTime = tt.CatchTime
t(&tt)
_,err := m.OnConflict("catch_time").Update(tt)
_, err := m.OnConflict("catch_time").Update(tt)
if err != nil {
panic(err)
}
@@ -50,6 +50,11 @@ func (s *PetService) PetInfo_One(cachetime uint32) model.PetEX {
tt.Data.CatchTime = tt.CatchTime
return tt
}
func (s *PetService) Pet_del(cachetime uint32) {
cool.DBM(s.Model).Where("player_id", s.userid).Where("catch_time", cachetime).Delete()
}
func (s *PetService) PetAdd(y model.PetInfo) {
for {

View File

@@ -0,0 +1,18 @@
package service
import (
"blazing/cool"
"blazing/modules/blazing/model"
)
type FusionService struct {
*cool.Service
}
func NewFusionService() *FusionService {
return &FusionService{
&cool.Service{
Model: model.NewPetFusionConfig(),
},
}
}