优化订单生成
This commit is contained in:
parent
fbf8a5c257
commit
3df1b09ac6
@ -23,13 +23,16 @@ func GetLvMin(EnergyMul int) int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GetLvMax(EnergyMul, N int) int {
|
func GetLvMax(EnergyMul, N int) int {
|
||||||
if v, ok := gamedata.G_AllConfigsJsonData["OrderChessData"]; ok {
|
data, err := gamedata.GetData(CFG_ORDER_CHESS_DATA)
|
||||||
data := v.GetData()
|
if err != nil {
|
||||||
for _, v := range data {
|
return 0
|
||||||
dEnergy := gamedata.GetIntValue(v, "EnergyMul")
|
}
|
||||||
Min := gamedata.GetIntValue(v, "MinN")
|
for _, v := range data {
|
||||||
Max := gamedata.GetIntValue(v, "MaxN")
|
dEnergy := gamedata.GetIntValue(v, "EnergyMul")
|
||||||
if dEnergy == EnergyMul && N >= Min && N <= Max {
|
Min := gamedata.GetIntValue(v, "MinN")
|
||||||
|
Max := gamedata.GetIntValue(v, "MaxN")
|
||||||
|
if dEnergy == EnergyMul {
|
||||||
|
if N >= Min && N <= Max {
|
||||||
return gamedata.GetIntValue(v, "MaxLv")
|
return gamedata.GetIntValue(v, "MaxLv")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,3 +40,10 @@ func UnitChessShop(p *Player) error {
|
|||||||
fmt.Println(b)
|
fmt.Println(b)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UnitOrder(p *Player) error {
|
||||||
|
OrderMod := p.PlayMod.getOrderMod()
|
||||||
|
ChessMod := p.PlayMod.getChessMod()
|
||||||
|
OrderMod.CreateNormalOrder(4, ChessMod.GetEmitList())
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@ -118,7 +118,10 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int) error {
|
|||||||
if o.CreatePriorityOrder(lv, Emit) {
|
if o.CreatePriorityOrder(lv, Emit) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
o.CreateNormalOrder(lv, Emit)
|
err := o.CreateNormalOrder(lv, Emit)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -208,8 +211,18 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int) error {
|
|||||||
NewLev := getChessLv(ChessMinLev, ChessMaxLev, v)
|
NewLev := getChessLv(ChessMinLev, ChessMaxLev, v)
|
||||||
ChessColor := getRandChessColor(RandEmit)
|
ChessColor := getRandChessColor(RandEmit)
|
||||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev, ChessColor)
|
ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev, ChessColor)
|
||||||
|
Type := mergeDataCfg.GetTypeById(ChessId)
|
||||||
|
if Type != "Product" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if ChessId == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
mergeList = append(mergeList, ChessId)
|
mergeList = append(mergeList, ChessId)
|
||||||
}
|
}
|
||||||
|
if len(mergeList) == 0 {
|
||||||
|
return errors.New("mergeList is nil")
|
||||||
|
}
|
||||||
o.addOrder(mergeList, OrderDiff, Common_type)
|
o.addOrder(mergeList, OrderDiff, Common_type)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -258,11 +271,18 @@ func (o *OrderMod) CreateSuperOrder(lv int, Emit []int) error {
|
|||||||
NewLev := getChessLv(ChessMinLev, ChessMaxLev, v)
|
NewLev := getChessLv(ChessMinLev, ChessMaxLev, v)
|
||||||
ChessColor := getRandChessColor(RandEmit)
|
ChessColor := getRandChessColor(RandEmit)
|
||||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev, ChessColor)
|
ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev, ChessColor)
|
||||||
|
Type := mergeDataCfg.GetTypeById(ChessId)
|
||||||
|
if Type != "Product" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
if ChessId == 0 {
|
if ChessId == 0 {
|
||||||
return errors.New("ChessId is 0")
|
continue
|
||||||
}
|
}
|
||||||
mergeList = append(mergeList, ChessId)
|
mergeList = append(mergeList, ChessId)
|
||||||
}
|
}
|
||||||
|
if len(mergeList) == 0 {
|
||||||
|
return errors.New("mergeList is nil")
|
||||||
|
}
|
||||||
o.addOrder(mergeList, OrderDiff, Super_type)
|
o.addOrder(mergeList, OrderDiff, Super_type)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -284,10 +304,11 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int) bool
|
|||||||
OrderEmit := 0
|
OrderEmit := 0
|
||||||
MaxLvChess := make(map[int]int)
|
MaxLvChess := make(map[int]int)
|
||||||
for _, v := range AddNewEmit {
|
for _, v := range AddNewEmit {
|
||||||
|
ChessLv := mergeDataCfg.GetLvById(v)
|
||||||
Emit_Id := mergeDataCfg.GetEmitId(v)
|
Emit_Id := mergeDataCfg.GetEmitId(v)
|
||||||
_, ok := GetExtraEmitId[Emit_Id]
|
_, ok := GetExtraEmitId[Emit_Id]
|
||||||
_, ok1 := o.EimtOrder[Emit_Id]
|
_, ok1 := o.EimtOrder[Emit_Id]
|
||||||
if ok && !ok1 {
|
if ok && !ok1 && ChessLv >= 4 {
|
||||||
b1 = true
|
b1 = true
|
||||||
OrderEmit = v
|
OrderEmit = v
|
||||||
o.EimtOrder[Emit_Id] = struct{}{}
|
o.EimtOrder[Emit_Id] = struct{}{}
|
||||||
@ -309,7 +330,9 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int) bool
|
|||||||
if b1 {
|
if b1 {
|
||||||
ChessColor := mergeDataCfg.GetEmitProduceType(OrderEmit)
|
ChessColor := mergeDataCfg.GetEmitProduceType(OrderEmit)
|
||||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(1, ChessColor[0])
|
ChessId := mergeDataCfg.GetChessIdByLvAndColor(1, ChessColor[0])
|
||||||
o.addOrder([]int{ChessId}, diff_low, Preheat_type)
|
if ChessId != 0 {
|
||||||
|
o.addOrder([]int{ChessId}, diff_low, Preheat_type)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//额外订单补充2;当玩家的棋盘中出现三个相同的满级产物时,立刻生成一个对应的收购订单;
|
//额外订单补充2;当玩家的棋盘中出现三个相同的满级产物时,立刻生成一个对应的收购订单;
|
||||||
for k := range MaxLvChess {
|
for k := range MaxLvChess {
|
||||||
|
|||||||
0
src/server/teLog/log.2024-11-28
Normal file
0
src/server/teLog/log.2024-11-28
Normal file
Loading…
Reference in New Issue
Block a user