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