升级器
This commit is contained in:
parent
163cdf68ff
commit
65eb41e01a
@ -640,6 +640,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 解锁背包格子
|
||||
RegisterMsgProcessFunc("ReqSourceChest", ReqSourceChest) // 开宝箱
|
||||
RegisterMsgProcessFunc("ReqSeparateChess", ReqSeparateChess) // 分解棋子
|
||||
RegisterMsgProcessFunc("ReqUpgradeChess", ReqUpgradeChess) // 分解棋子
|
||||
|
||||
RegisterMsgProcessFunc("ReqBuyEnergy", ReqBuyEnergy) //购买能量
|
||||
|
||||
|
||||
@ -670,6 +670,42 @@ func ReqSeparateChess(player *Player, buf []byte) error {
|
||||
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 {
|
||||
req := &msg.ReqChessEx{}
|
||||
|
||||
@ -19,6 +19,7 @@ const (
|
||||
CHESS_SOURCE_CHEST = 705
|
||||
CHESS_HIGH_SOURCE_CHEST = 706
|
||||
CHESS_SEPARATE = 707 // 分解器
|
||||
CHESS_UPGRADE = 708 // 升级器
|
||||
)
|
||||
|
||||
type ChessBorad struct {
|
||||
@ -532,3 +533,26 @@ func (cb *ChessBorad) SeparateChess(ChessId int) error {
|
||||
cb.AddChess(NewChess)
|
||||
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
Loading…
Reference in New Issue
Block a user