```
feat(pet): 实现精灵融合功能并优化相关数据结构 - 新增精灵融合主服务和材料服务,支持根据主副精灵ID查询融合结果 - 调整融合接口参数结构,将物品字段统一为数组形式 - 修改融合材料模型字段类型,提升数据一致性 - 重构融合配置相关逻辑,移除旧融合配置模型及服务 - 增加特性随机选择逻辑,确保融合产物具备有效特性 - 添加材料合法性校验,防止非法材料参与融合 ```
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"blazing/logic/service/pet"
|
||||
"blazing/logic/service/player"
|
||||
"blazing/modules/blazing/model"
|
||||
"blazing/modules/blazing/service"
|
||||
)
|
||||
|
||||
func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result *pet.PetFusionInfo, err errorcode.ErrorCode) {
|
||||
@@ -34,10 +35,26 @@ func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result
|
||||
if xmlres.PetMAP[int(Auxpetinfo.ID)].FuseSub == 0 {
|
||||
return result, errorcode.ErrorCodes.ErrSystemBusy
|
||||
}
|
||||
r := model.GenPetInfo(1, -1, -1, -1, -1, 1)
|
||||
|
||||
///性格生成
|
||||
var natureId int32 = -1
|
||||
if Auxpetinfo.Nature == Mcatchpetinfo.Nature {
|
||||
natureId = int32(Auxpetinfo.Nature)
|
||||
}
|
||||
|
||||
resid := int(service.NewPetFusionService().Data(Mcatchpetinfo.ID, Auxpetinfo.ID))
|
||||
|
||||
if resid == 0 {
|
||||
//todo失败降低等级
|
||||
return &pet.PetFusionInfo{}, 0
|
||||
}
|
||||
|
||||
effect := int(service.NewPetFusionMaterialService().Data(data.Item1))
|
||||
r := model.GenPetInfo(resid, -1, int(natureId), effect, -1, 1)
|
||||
c.Service.Pet.PetAdd(*r)
|
||||
c.Pet_del(Auxpetinfo.CatchTime)
|
||||
c.Pet_del(Mcatchpetinfo.CatchTime)
|
||||
//todo材料扣除
|
||||
return &pet.PetFusionInfo{
|
||||
ObtainTime: r.CatchTime,
|
||||
SoulID: 1000017,
|
||||
|
||||
Reference in New Issue
Block a user