退役的棋子不生成回收订单

This commit is contained in:
hahwu 2026-03-10 11:01:33 +08:00
parent 50a4a9d9c2
commit 892d81907e
3 changed files with 38 additions and 17 deletions

View File

@ -1275,13 +1275,18 @@ func (p *Player) AddHighOrder() {
ChessMap[Color] = v
}
}
RetireProduceColor := ChessMod.GetRetireProduceColor()
for Color, ChessId := range ChessMap {
EmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), Color)
_, ChessMaxLv := getChesslvRange(EmitId, BaseMod.GetEnergyMul(), OrderMod.IsCharge)
NewLev2 := mergeDataCfg.DynamicLev(ChessMaxLv, EmitId, Color)
NewLev3 := order.AdjustLev(NewLev2, BaseMod.GetEnergyMul())
ChessLv := mergeDataCfg.GetLvById(ChessId)
chessColor := mergeDataCfg.GetColorById(ChessId)
// 退役产物不生成订单
if GoUtil.InStringArray(chessColor, RetireProduceColor) {
continue
}
if NewLev3 >= ChessLv {
continue
}
@ -1320,10 +1325,16 @@ func (p *Player) AddHighOrder2() {
}
ChessMap[v]++
}
RetireProduceColor := ChessMod.GetRetireProduceColor()
for ChessId, Num := range ChessMap {
if Num < 2 {
continue
}
chessColor := mergeDataCfg.GetColorById(ChessId)
// 退役产物不生成订单
if GoUtil.InStringArray(chessColor, RetireProduceColor) {
continue
}
add := true
for _, v := range OrderMod.GetOrderList() {
if GoUtil.SliceEqual(v.MergeId, []int{ChessId, ChessId}) || GoUtil.SliceEqual(v.MergeId, []int{ChessId, ChessId, ChessId}) {

View File

@ -725,3 +725,13 @@ func (cb *ChessBorad) GetRetireReward(Id string) ([]*item.Item, error) {
cb.RetireReward[Id] = true
return mergeDataCfg.GetRetireReward(), nil
}
func (cb *ChessBorad) GetRetireProduceColor() []string {
color := make([]string, 0, len(cb.Retire))
for k, v := range cb.Retire {
if v == EMIT_RETIRE_ING {
color = append(color, mergeDataCfg.GetEmitTypeByColor(k))
}
}
return color
}

View File

@ -564,22 +564,22 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, Energ
}
b3 := false
//额外订单补充2当玩家的棋盘中出现2个相同的满级产物时立刻生成一个对应的收购订单
for k := range MaxLvChess {
ChessNum := GoUtil.GetElemNum(ChessList, k)
if ChessNum >= 2 && Level >= 12 {
b2 := true
for _, v := range o.OrderList {
if GoUtil.SliceEqual(v.MergeId, []int{k, k}) {
b2 = false
break
}
}
if b2 {
b3 = true
o.addOrder([]int{k, k}, DIFF_LOW, Extra_type)
}
}
}
// for k := range MaxLvChess {
// ChessNum := GoUtil.GetElemNum(ChessList, k)
// if ChessNum >= 2 && Level >= 12 {
// b2 := true
// for _, v := range o.OrderList {
// if GoUtil.SliceEqual(v.MergeId, []int{k, k}) {
// b2 = false
// break
// }
// }
// if b2 {
// b3 = true
// o.addOrder([]int{k, k}, DIFF_LOW, Extra_type)
// }
// }
// }
//额外订单补充1CDEG发射器首次合成时生成其对应2及棋子订单完成后生成3及再完成生成4及的
if b1 {
ChessColor := mergeDataCfg.GetEmitProduceChessType(OrderEmit)