升级器
This commit is contained in:
parent
163cdf68ff
commit
65eb41e01a
@ -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) //购买能量
|
||||||
|
|
||||||
|
|||||||
@ -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{}
|
||||||
|
|||||||
@ -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
Loading…
Reference in New Issue
Block a user