修复零件订单含自动发射器棋子的bug

This commit is contained in:
hahwu 2026-03-31 14:47:24 +08:00
parent 46ba8af111
commit 124d4468c4
3 changed files with 20 additions and 15 deletions

View File

@ -1133,7 +1133,7 @@ func (player *Player) CreateNormalOrder() {
}
}
if trigger && trigger2 && BaseMod.GetLevel() >= 12 {
OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderPartEmit(), BaseMod.GetEnergyMul(), order.Part_type)
OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Part_type)
for k, v := range OrderMod.GetOrderList() {
if v.Type == order.Part_type {
v.Items = []*item.Item{item.NewItem(item.ITEM_LAUNCHER_ID, 2)}

View File

@ -425,12 +425,22 @@ func (o *OrderMod) CreateNormalOrder(lv int, emit []int, energyMul, orderType in
break
}
}
// 零件订单不含自动发射器棋子
if orderType == Part_type {
for _, v := range mergeList {
color := mergeDataCfg.GetColorById(v)
emitId := GetEmitByColor(emit, color)
if mergeDataCfg.GetEmitType(emitId) == "auto" {
conbine = true
}
}
}
if conbine {
continue
}
break
}
fmt.Printf("生成订单的棋子列表:%v, 难度:%d\n", mergeList, OrderDiff)
fmt.Printf("mergeList:%v, OrderDiff:%d\n", mergeList, OrderDiff)
for _, v := range mergeList {
if v == 0 {
return nil
@ -734,15 +744,7 @@ func (o *OrderMod) ChangeEnergyMul(lv int, emit []int, energyMul int, chessList
*/
if needTrigger {
delete(o.OrderList, k)
newEmit := make([]int, len(emit))
if v.Type == Part_type {
for _, v := range emit {
if mergeDataCfg.GetEmitType(v) != "auto" {
newEmit = append(newEmit, v)
}
}
}
o.CreateNormalOrder(lv, newEmit, energyMul, v.Type)
o.CreateNormalOrder(lv, emit, energyMul, v.Type)
}
}
}

View File

@ -76,10 +76,13 @@ func TestAddPartOrder(t *testing.T) {
p1 := new(game.Player)
p1.InitPlayer("bbb004")
OrderMod := p1.GetOrderMod()
BaseMod := p1.GetBaseMod()
ChessMod := p1.GetChessMod()
for i := 0; i < 1000; i++ {
OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderPartEmit(), BaseMod.GetEnergyMul(), order.Part_type)
for i := 0; i < 10; i++ {
for k, v := range OrderMod.OrderList {
if v.Type == order.Part_type {
delete(OrderMod.OrderList, k)
}
}
p1.AddOrder()
}
}