预热订单优化
This commit is contained in:
parent
e4658a828c
commit
cf5ec556f7
@ -122,6 +122,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa
|
|||||||
return handle_list[i].Id < handle_list[j].Id
|
return handle_list[i].Id < handle_list[j].Id
|
||||||
})
|
})
|
||||||
ChessMod := player.PlayMod.getChessMod()
|
ChessMod := player.PlayMod.getChessMod()
|
||||||
|
BaseMod := player.PlayMod.getBaseMod()
|
||||||
HandbookMod := player.PlayMod.getHandbookMod()
|
HandbookMod := player.PlayMod.getHandbookMod()
|
||||||
var addChessCostEnergy int
|
var addChessCostEnergy int
|
||||||
var buyChess int
|
var buyChess int
|
||||||
@ -194,8 +195,8 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa
|
|||||||
}
|
}
|
||||||
|
|
||||||
//扣除体力
|
//扣除体力
|
||||||
|
EnergyPow := BaseMod.GetEnergyMul()
|
||||||
if addChessCostEnergy > 0 {
|
if addChessCostEnergy > 0 {
|
||||||
EnergyPow := player.PlayMod.getBaseMod().GetEnergyMul()
|
|
||||||
ReduceEneny := int(math.Pow(2, float64(EnergyPow))) * addChessCostEnergy
|
ReduceEneny := int(math.Pow(2, float64(EnergyPow))) * addChessCostEnergy
|
||||||
itemList = append(itemList, &item.Item{Id: item.ITEM_ENERGY_ID, Num: -ReduceEneny})
|
itemList = append(itemList, &item.Item{Id: item.ITEM_ENERGY_ID, Num: -ReduceEneny})
|
||||||
}
|
}
|
||||||
@ -204,7 +205,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
OrderMod := player.PlayMod.getOrderMod()
|
OrderMod := player.PlayMod.getOrderMod()
|
||||||
Update := OrderMod.CreateExtraOrder(AddChessList, AddNewEmit, ChessMod.GetChessList())
|
Update := OrderMod.CreateExtraOrder(AddChessList, AddNewEmit, ChessMod.GetChessList(), EnergyPow)
|
||||||
if Update {
|
if Update {
|
||||||
player.PushClientRes(OrderMod.BackData())
|
player.PushClientRes(OrderMod.BackData())
|
||||||
}
|
}
|
||||||
|
|||||||
@ -471,6 +471,7 @@ func ReqGetChessFromBuff(args []interface{}) error {
|
|||||||
ChessMod := player.PlayMod.getChessMod()
|
ChessMod := player.PlayMod.getChessMod()
|
||||||
HandbookMod := player.PlayMod.getHandbookMod()
|
HandbookMod := player.PlayMod.getHandbookMod()
|
||||||
OrderMod := player.PlayMod.getOrderMod()
|
OrderMod := player.PlayMod.getOrderMod()
|
||||||
|
BaseMod := player.PlayMod.getBaseMod()
|
||||||
ChessId := int(req.ChessId)
|
ChessId := int(req.ChessId)
|
||||||
err := ChessMod.GetChessFromBuff(ChessId)
|
err := ChessMod.GetChessFromBuff(ChessId)
|
||||||
Update := HandbookMod.SetHandbook(ChessId)
|
Update := HandbookMod.SetHandbook(ChessId)
|
||||||
@ -495,7 +496,7 @@ func ReqGetChessFromBuff(args []interface{}) error {
|
|||||||
})
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
Update = OrderMod.CreateExtraOrder([]int{ChessId}, AddNewEmit, ChessMod.GetChessList())
|
Update = OrderMod.CreateExtraOrder([]int{ChessId}, AddNewEmit, ChessMod.GetChessList(), BaseMod.GetEnergyMul())
|
||||||
if Update {
|
if Update {
|
||||||
player.PushClientRes(OrderMod.BackData())
|
player.PushClientRes(OrderMod.BackData())
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,6 +21,7 @@ type OrderMod struct {
|
|||||||
LastOrder Order // 上一个订单
|
LastOrder Order // 上一个订单
|
||||||
LastNormalOrder Order // 上一个普通订单
|
LastNormalOrder Order // 上一个普通订单
|
||||||
EimtOrder map[string]struct{}
|
EimtOrder map[string]struct{}
|
||||||
|
PreheatStep map[string]int // 预热订单步骤
|
||||||
}
|
}
|
||||||
|
|
||||||
type Order struct {
|
type Order struct {
|
||||||
@ -47,6 +48,9 @@ func (o *OrderMod) InitData() {
|
|||||||
if o.EimtOrder == nil {
|
if o.EimtOrder == nil {
|
||||||
o.EimtOrder = make(map[string]struct{})
|
o.EimtOrder = make(map[string]struct{})
|
||||||
}
|
}
|
||||||
|
if o.PreheatStep == nil {
|
||||||
|
o.PreheatStep = make(map[string]int)
|
||||||
|
}
|
||||||
if o.Step == 0 {
|
if o.Step == 0 {
|
||||||
o.OrderList = make(map[int]Order)
|
o.OrderList = make(map[int]Order)
|
||||||
Cfg := startOrderCfg.GetStartOrderByStep(o.Step + 1)
|
Cfg := startOrderCfg.GetStartOrderByStep(o.Step + 1)
|
||||||
@ -100,11 +104,12 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error {
|
|||||||
switch o.LastOrder.Type {
|
switch o.LastOrder.Type {
|
||||||
case Preheat_type:
|
case Preheat_type:
|
||||||
ChessId := o.LastOrder.MergeId[0]
|
ChessId := o.LastOrder.MergeId[0]
|
||||||
ChessLv := mergeDataCfg.GetLvById(ChessId)
|
|
||||||
ChessColor := mergeDataCfg.GetColorById(ChessId)
|
ChessColor := mergeDataCfg.GetColorById(ChessId)
|
||||||
if ChessLv < 4 {
|
PreheatStep := o.PreheatStep[ChessColor]
|
||||||
NewChessId := mergeDataCfg.GetChessIdByLvAndColor(ChessLv+1, ChessColor)
|
if PreheatStep < 4 {
|
||||||
|
NewChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul+PreheatStep, ChessColor)
|
||||||
o.addOrder([]int{NewChessId}, diff_low, Preheat_type)
|
o.addOrder([]int{NewChessId}, diff_low, Preheat_type)
|
||||||
|
o.PreheatStep[ChessColor]++
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
if o.Step < 12 {
|
if o.Step < 12 {
|
||||||
@ -388,7 +393,7 @@ func (o *OrderMod) CreateCleanOrder(ChessList []int) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int) bool {
|
func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, EnergyMul int) bool {
|
||||||
GetExtraEmitId := mergeDataCfg.GetExtraEmitId()
|
GetExtraEmitId := mergeDataCfg.GetExtraEmitId()
|
||||||
b1 := false
|
b1 := false
|
||||||
OrderEmit := 0
|
OrderEmit := 0
|
||||||
@ -419,8 +424,9 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int) bool
|
|||||||
//额外订单补充1;CDEG发射器首次合成时,生成其对应2及棋子订单,完成后生成3及,再完成生成4及的;
|
//额外订单补充1;CDEG发射器首次合成时,生成其对应2及棋子订单,完成后生成3及,再完成生成4及的;
|
||||||
if b1 {
|
if b1 {
|
||||||
ChessColor := mergeDataCfg.GetEmitProduceChessType(OrderEmit)
|
ChessColor := mergeDataCfg.GetEmitProduceChessType(OrderEmit)
|
||||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(2, ChessColor[0])
|
ChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul, ChessColor[0])
|
||||||
if ChessId != 0 {
|
if ChessId != 0 {
|
||||||
|
o.PreheatStep[ChessColor[0]] = 1
|
||||||
o.addOrder([]int{ChessId}, diff_low, Preheat_type)
|
o.addOrder([]int{ChessId}, diff_low, Preheat_type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -471,6 +477,14 @@ func (o *OrderMod) CheckSuperOrder() bool {
|
|||||||
|
|
||||||
func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList []int) {
|
func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList []int) {
|
||||||
for k, v := range o.OrderList {
|
for k, v := range o.OrderList {
|
||||||
|
if v.Type == Preheat_type { // 预热订单 修改倍数时修改棋子等级
|
||||||
|
ChessId := v.MergeId[0]
|
||||||
|
ChessColor := mergeDataCfg.GetColorById(ChessId)
|
||||||
|
PreheatStep := o.PreheatStep[ChessColor]
|
||||||
|
NewChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul+PreheatStep, ChessColor)
|
||||||
|
v.MergeId = []int{NewChessId}
|
||||||
|
o.OrderList[k] = v
|
||||||
|
}
|
||||||
if v.Type != Common_type {
|
if v.Type != Common_type {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user