高级订单优化退役棋子的生成

This commit is contained in:
hahwu 2026-03-25 18:30:22 +08:00
parent 5a04b66a1c
commit 820ae5bbfa

View File

@ -1249,7 +1249,7 @@ func (p *Player) GetPetThiefReward(target int) error {
return nil
}
// 高级产物订单
// 高级产物订单 回收订单中不会生成的棋子
func (p *Player) AddHighOrder() {
OrderMod := p.PlayMod.getOrderMod()
BaseMod := p.PlayMod.getBaseMod()
@ -1291,8 +1291,12 @@ func (p *Player) AddHighOrder() {
}
}
RetireProduceColor := ChessMod.GetRetireProduceColor()
emitList := ChessMod.GetEmitList()
for Color, ChessId := range chessMap {
emitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), Color)
emitId := order.GetEmitByColor(emitList, Color)
if emitId == 0 {
continue
}
_, ChessMaxLv := getChesslvRange(emitId, BaseMod.GetEnergyMul(), OrderMod.IsCharge)
newLev2 := mergeDataCfg.DynamicLev(ChessMaxLv, emitId, Color)
newLev3 := order.AdjustLev(newLev2, BaseMod.GetEnergyMul())
@ -1310,6 +1314,13 @@ func (p *Player) AddHighOrder() {
if GoUtil.InArray(ChessId, v.MergeId) {
add = false
}
// 增加当订单中已有同类型且等级大于等于该棋子的订单时,不生成订单
for _, v1 := range v.MergeId {
if mergeDataCfg.GetColorById(v1) == Color && mergeDataCfg.GetLvById(v1) >= chessLv {
add = false
break
}
}
}
if add {
OrderMod.AddExtraOrder([]int{ChessId})