升级器

This commit is contained in:
hahwu 2025-03-06 10:15:10 +08:00
parent 163cdf68ff
commit 65eb41e01a
4 changed files with 3477 additions and 3287 deletions

View File

@ -640,6 +640,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 解锁背包格子 RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 解锁背包格子
RegisterMsgProcessFunc("ReqSourceChest", ReqSourceChest) // 开宝箱 RegisterMsgProcessFunc("ReqSourceChest", ReqSourceChest) // 开宝箱
RegisterMsgProcessFunc("ReqSeparateChess", ReqSeparateChess) // 分解棋子 RegisterMsgProcessFunc("ReqSeparateChess", ReqSeparateChess) // 分解棋子
RegisterMsgProcessFunc("ReqUpgradeChess", ReqUpgradeChess) // 分解棋子
RegisterMsgProcessFunc("ReqBuyEnergy", ReqBuyEnergy) //购买能量 RegisterMsgProcessFunc("ReqBuyEnergy", ReqBuyEnergy) //购买能量

View File

@ -670,6 +670,42 @@ func ReqSeparateChess(player *Player, buf []byte) error {
return nil return nil
} }
func ReqUpgradeChess(player *Player, buf []byte) error {
req := &msg.ReqUpgradeChess{}
proto.Unmarshal(buf, req)
ChessMod := player.PlayMod.getChessMod()
err := ChessMod.UpgradeChess(int(req.ChessId))
if err != nil {
player.SendErrClienRes(&msg.ResUpgradeChess{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
data := &PlayerChessData{}
err = data.UpdateChessData(player, req.MChessData)
if err != nil {
player.SendErrClienRes(&msg.ResUpgradeChess{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
player.TeLog("outsync_event", map[string]interface{}{
"outsync_event": "ReqUpgradeChess",
})
return err
}
player.PlayMod.save()
player.PushClientRes(ChessMod.BackData())
player.PushClientRes(&msg.ResUpgradeChess{
Code: msg.RES_CODE_SUCCESS,
})
player.TeLog("upgrade_use", map[string]interface{}{
"upgrade_item_id": int(req.ChessId),
})
player.UpdateUserInfo()
return nil
}
// 棋子转换 // 棋子转换
func ReqChessEx(player *Player, buf []byte) error { func ReqChessEx(player *Player, buf []byte) error {
req := &msg.ReqChessEx{} req := &msg.ReqChessEx{}

View File

@ -19,6 +19,7 @@ const (
CHESS_SOURCE_CHEST = 705 CHESS_SOURCE_CHEST = 705
CHESS_HIGH_SOURCE_CHEST = 706 CHESS_HIGH_SOURCE_CHEST = 706
CHESS_SEPARATE = 707 // 分解器 CHESS_SEPARATE = 707 // 分解器
CHESS_UPGRADE = 708 // 升级器
) )
type ChessBorad struct { type ChessBorad struct {
@ -532,3 +533,26 @@ func (cb *ChessBorad) SeparateChess(ChessId int) error {
cb.AddChess(NewChess) cb.AddChess(NewChess)
return nil return nil
} }
func (cb *ChessBorad) UpgradeChess(ChessId int) error {
ChessLv := mergeDataCfg.GetLvById(ChessId)
ChessMaxLv := mergeDataCfg.GetMaxLvById(ChessId)
if ChessLv == ChessMaxLv {
return errors.New("chess lv is max")
}
ChessType := mergeDataCfg.GetTypeById(ChessId)
if ChessType != "Product" {
return errors.New("chess type is not product")
}
err := cb.RemoveChess(ChessId)
if err != nil {
return err
}
err = cb.RemoveChess(CHESS_SEPARATE)
if err != nil {
return err
}
NewChess := mergeDataCfg.GetChessIdByLvAndColor(ChessLv+1, mergeDataCfg.GetColorById(ChessId))
cb.AddChess(NewChess)
return nil
}

File diff suppressed because it is too large Load Diff