优化订单生成

This commit is contained in:
hahwu 2024-11-28 10:26:29 +08:00
parent fbf8a5c257
commit 3df1b09ac6
4 changed files with 44 additions and 11 deletions

View File

@ -23,13 +23,16 @@ func GetLvMin(EnergyMul int) int {
}
func GetLvMax(EnergyMul, N int) int {
if v, ok := gamedata.G_AllConfigsJsonData["OrderChessData"]; ok {
data := v.GetData()
data, err := gamedata.GetData(CFG_ORDER_CHESS_DATA)
if err != nil {
return 0
}
for _, v := range data {
dEnergy := gamedata.GetIntValue(v, "EnergyMul")
Min := gamedata.GetIntValue(v, "MinN")
Max := gamedata.GetIntValue(v, "MaxN")
if dEnergy == EnergyMul && N >= Min && N <= Max {
if dEnergy == EnergyMul {
if N >= Min && N <= Max {
return gamedata.GetIntValue(v, "MaxLv")
}
}

View File

@ -40,3 +40,10 @@ func UnitChessShop(p *Player) error {
fmt.Println(b)
return nil
}
func UnitOrder(p *Player) error {
OrderMod := p.PlayMod.getOrderMod()
ChessMod := p.PlayMod.getChessMod()
OrderMod.CreateNormalOrder(4, ChessMod.GetEmitList())
return nil
}

View File

@ -118,7 +118,10 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int) error {
if o.CreatePriorityOrder(lv, Emit) {
return nil
}
o.CreateNormalOrder(lv, Emit)
err := o.CreateNormalOrder(lv, Emit)
if err != nil {
return err
}
}
}
return nil
@ -208,8 +211,18 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int) error {
NewLev := getChessLv(ChessMinLev, ChessMaxLev, v)
ChessColor := getRandChessColor(RandEmit)
ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev, ChessColor)
Type := mergeDataCfg.GetTypeById(ChessId)
if Type != "Product" {
continue
}
if ChessId == 0 {
continue
}
mergeList = append(mergeList, ChessId)
}
if len(mergeList) == 0 {
return errors.New("mergeList is nil")
}
o.addOrder(mergeList, OrderDiff, Common_type)
return nil
}
@ -258,11 +271,18 @@ func (o *OrderMod) CreateSuperOrder(lv int, Emit []int) error {
NewLev := getChessLv(ChessMinLev, ChessMaxLev, v)
ChessColor := getRandChessColor(RandEmit)
ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev, ChessColor)
Type := mergeDataCfg.GetTypeById(ChessId)
if Type != "Product" {
continue
}
if ChessId == 0 {
return errors.New("ChessId is 0")
continue
}
mergeList = append(mergeList, ChessId)
}
if len(mergeList) == 0 {
return errors.New("mergeList is nil")
}
o.addOrder(mergeList, OrderDiff, Super_type)
return nil
}
@ -284,10 +304,11 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int) bool
OrderEmit := 0
MaxLvChess := make(map[int]int)
for _, v := range AddNewEmit {
ChessLv := mergeDataCfg.GetLvById(v)
Emit_Id := mergeDataCfg.GetEmitId(v)
_, ok := GetExtraEmitId[Emit_Id]
_, ok1 := o.EimtOrder[Emit_Id]
if ok && !ok1 {
if ok && !ok1 && ChessLv >= 4 {
b1 = true
OrderEmit = v
o.EimtOrder[Emit_Id] = struct{}{}
@ -309,8 +330,10 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int) bool
if b1 {
ChessColor := mergeDataCfg.GetEmitProduceType(OrderEmit)
ChessId := mergeDataCfg.GetChessIdByLvAndColor(1, ChessColor[0])
if ChessId != 0 {
o.addOrder([]int{ChessId}, diff_low, Preheat_type)
}
}
//额外订单补充2当玩家的棋盘中出现三个相同的满级产物时立刻生成一个对应的收购订单
for k := range MaxLvChess {
ChessNum := GoUtil.GetElemNum(ChessList, k)

View File