订单优化
This commit is contained in:
parent
4e0023ec85
commit
0c1ec3ce50
@ -1,41 +0,0 @@
|
|||||||
package startOrderCfg
|
|
||||||
|
|
||||||
import (
|
|
||||||
"server/gamedata"
|
|
||||||
"strconv"
|
|
||||||
)
|
|
||||||
|
|
||||||
type StartOrderCfg struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
var CFG_NAME = "StartOrder"
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
gamedata.InitCfg(CFG_NAME)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 根据step 获取初始订单
|
|
||||||
func GetStartOrderByStep(id int) []*gamedata.StartOrderData {
|
|
||||||
ret := make([]*gamedata.StartOrderData, 0)
|
|
||||||
data, err := gamedata.GetData(CFG_NAME)
|
|
||||||
if err != nil {
|
|
||||||
return ret
|
|
||||||
}
|
|
||||||
for k, v := range data {
|
|
||||||
record := v.(map[string]interface{})
|
|
||||||
stepVal := gamedata.ParseInt(record["step"])
|
|
||||||
var MergeList []int
|
|
||||||
for _, vv := range record["merge_id_list"].([]interface{}) {
|
|
||||||
MergeList = append(MergeList, gamedata.ParseInt(vv))
|
|
||||||
}
|
|
||||||
if int(stepVal) == id {
|
|
||||||
OrderId, _ := strconv.Atoi(k)
|
|
||||||
ret = append(ret, &gamedata.StartOrderData{
|
|
||||||
Id: OrderId,
|
|
||||||
Step: int(stepVal),
|
|
||||||
MergeList: MergeList,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret
|
|
||||||
}
|
|
||||||
@ -2,18 +2,21 @@ package orderCfg
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"server/gamedata"
|
"server/gamedata"
|
||||||
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CFG_ORDER_DATA = "OrderData"
|
CFG_ORDER_DATA = "OrderData"
|
||||||
CFG_ORDER_CHESS_DATA = "OrderChessData"
|
CFG_ORDER_CHESS_DATA = "OrderChessData"
|
||||||
CFG_ORDER_NUM_DATA = "OrderNumData"
|
CFG_ORDER_NUM_DATA = "OrderNumData"
|
||||||
|
CFG_START_ORDER = "StartOrder"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
gamedata.InitCfg(CFG_ORDER_DATA)
|
gamedata.InitCfg(CFG_ORDER_DATA)
|
||||||
gamedata.InitCfg(CFG_ORDER_CHESS_DATA)
|
gamedata.InitCfg(CFG_ORDER_CHESS_DATA)
|
||||||
gamedata.InitCfg(CFG_ORDER_NUM_DATA)
|
gamedata.InitCfg(CFG_ORDER_NUM_DATA)
|
||||||
|
gamedata.InitCfg(CFG_START_ORDER)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetLvMin(EnergyMul int) int {
|
func GetLvMin(EnergyMul int) int {
|
||||||
@ -56,3 +59,43 @@ func GetOrderNum(Level int) int {
|
|||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetStartOrderByStep(id int) []*gamedata.StartOrderData {
|
||||||
|
ret := make([]*gamedata.StartOrderData, 0)
|
||||||
|
data, err := gamedata.GetData(CFG_START_ORDER)
|
||||||
|
if err != nil {
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
for k, v := range data {
|
||||||
|
record := v.(map[string]interface{})
|
||||||
|
stepVal := gamedata.ParseInt(record["step"])
|
||||||
|
var MergeList []int
|
||||||
|
for _, vv := range record["merge_id_list"].([]interface{}) {
|
||||||
|
MergeList = append(MergeList, gamedata.ParseInt(vv))
|
||||||
|
}
|
||||||
|
if int(stepVal) == id {
|
||||||
|
OrderId, _ := strconv.Atoi(k)
|
||||||
|
ret = append(ret, &gamedata.StartOrderData{
|
||||||
|
Id: OrderId,
|
||||||
|
Step: int(stepVal),
|
||||||
|
MergeList: MergeList,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetMaxStep() int {
|
||||||
|
data, err := gamedata.GetData(CFG_START_ORDER)
|
||||||
|
if err != nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
max := 0
|
||||||
|
for _, v := range data {
|
||||||
|
stepVal := gamedata.GetIntValue(v, "step")
|
||||||
|
if int(stepVal) > max {
|
||||||
|
max = int(stepVal)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return max
|
||||||
|
}
|
||||||
|
|||||||
@ -3,7 +3,6 @@ package order
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"server/GoUtil"
|
"server/GoUtil"
|
||||||
startOrderCfg "server/conf/StartOrder"
|
|
||||||
limitedTimeEventCfg "server/conf/limitedTimeEvent"
|
limitedTimeEventCfg "server/conf/limitedTimeEvent"
|
||||||
mergeDataCfg "server/conf/mergeData"
|
mergeDataCfg "server/conf/mergeData"
|
||||||
orderCfg "server/conf/order"
|
orderCfg "server/conf/order"
|
||||||
@ -65,7 +64,7 @@ func (o *OrderMod) InitData() {
|
|||||||
}
|
}
|
||||||
if o.Step == 0 {
|
if o.Step == 0 {
|
||||||
o.OrderList = make(map[int]Order)
|
o.OrderList = make(map[int]Order)
|
||||||
Cfg := startOrderCfg.GetStartOrderByStep(o.Step + 1)
|
Cfg := orderCfg.GetStartOrderByStep(o.Step + 1)
|
||||||
o.Step = 1
|
o.Step = 1
|
||||||
o.Auto_id = 0
|
o.Auto_id = 0
|
||||||
o.LastDiff = DIFF_LOW
|
o.LastDiff = DIFF_LOW
|
||||||
@ -181,7 +180,8 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error {
|
|||||||
o.PreheatStep[ChessColor]++
|
o.PreheatStep[ChessColor]++
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
if o.Step < 12 {
|
MaxStep := orderCfg.GetMaxStep()
|
||||||
|
if o.Step < MaxStep {
|
||||||
n := 0
|
n := 0
|
||||||
for _, v := range o.OrderList {
|
for _, v := range o.OrderList {
|
||||||
if v.Type == Common_type {
|
if v.Type == Common_type {
|
||||||
@ -191,7 +191,7 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error {
|
|||||||
if n != 0 {
|
if n != 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
Cfg := startOrderCfg.GetStartOrderByStep(o.Step + 1)
|
Cfg := orderCfg.GetStartOrderByStep(o.Step + 1)
|
||||||
o.Step++
|
o.Step++
|
||||||
for _, v := range Cfg {
|
for _, v := range Cfg {
|
||||||
o.addOrder(v.MergeList, DIFF_LOW, Common_type)
|
o.addOrder(v.MergeList, DIFF_LOW, Common_type)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user