修改订单逻辑

This commit is contained in:
hahwu 2025-01-14 18:39:34 +08:00
parent affc20bf9f
commit d96b05a2aa
3 changed files with 35 additions and 1 deletions

View File

@ -7,11 +7,13 @@ import (
const (
CFG_ORDER_DATA = "OrderData"
CFG_ORDER_CHESS_DATA = "OrderChessData"
CFG_ORDER_NUM_DATA = "OrderNumData"
)
func init() {
gamedata.InitCfg(CFG_ORDER_DATA)
gamedata.InitCfg(CFG_ORDER_CHESS_DATA)
gamedata.InitCfg(CFG_ORDER_NUM_DATA)
}
func GetLvMin(EnergyMul int) int {
@ -39,3 +41,18 @@ func GetLvMax(EnergyMul, N int) int {
}
return 0
}
func GetOrderNum(Level int) int {
data, err := gamedata.GetData(CFG_ORDER_NUM_DATA)
if err != nil {
return 0
}
for _, v := range data {
Min := gamedata.GetIntValue(v, "MinLv")
Max := gamedata.GetIntValue(v, "MaxLv")
if Level >= Min && Level <= Max {
return gamedata.GetIntValue(v, "Num")
}
}
return 0
}

View File

@ -737,6 +737,8 @@ func EmitRetireTrigger1(p *Player) {
sort.Slice(EmitId1, func(i, j int) bool {
return EmitId1[i] < EmitId1[j]
})
OrderMod := p.PlayMod.getOrderMod()
OrderMod.Retire(EmitId1[0])
ChessMod.BeginRetire(EmitId1[0])
}

View File

@ -6,6 +6,7 @@ import (
startOrderCfg "server/conf/StartOrder"
limitedTimeEventCfg "server/conf/limitedTimeEvent"
mergeDataCfg "server/conf/mergeData"
orderCfg "server/conf/order"
playroomCfg "server/conf/playroom"
"server/game/mod/item"
"server/msg"
@ -136,7 +137,7 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error {
if o.CreatePriorityOrder(lv, Emit) {
return nil
}
MaxOrderNum := min(lv/4+2, 6)
MaxOrderNum := orderCfg.GetOrderNum(lv)
n := 0
for _, v := range o.OrderList {
if v.Type == Common_type || v.Type == Clean_type {
@ -522,3 +523,17 @@ func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList
}
}
}
func (o *OrderMod) Retire(EmitId string) {
ChessPool := make([]int, 0)
Product := mergeDataCfg.GetEmitProduce(EmitId)
for _, v := range o.ChessPool {
Color := mergeDataCfg.GetColorById(v)
if GoUtil.InStringArray(Color, Product) {
continue
}
ChessPool = append(ChessPool, v)
}
o.ChessPool = ChessPool
o.EmitShuffle = nil
}