【订单】-宠物订单的棋子不能是自动发射器棋子
This commit is contained in:
parent
d17992a6f1
commit
7dcd683997
@ -11,11 +11,9 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
CFG_NAME = "MergeData"
|
||||
CONST_NAME = "MergeDataConst"
|
||||
CFG_MERGE_EMIT = "MergeDataEmit"
|
||||
CFG_MERGE_EMIT_TYPE = "MergeDataEmitType"
|
||||
CFG_MERGE_COLOR = "MergeDataColor"
|
||||
CFG_NAME = "MergeData"
|
||||
CONST_NAME = "MergeDataConst"
|
||||
CFG_MERGE_EMIT = "MergeDataEmit"
|
||||
|
||||
// 棋子类型
|
||||
CHESS_PRODUCT_MAIN_TYPE = 1 // 主产物
|
||||
@ -27,17 +25,6 @@ func init() {
|
||||
gamedata.InitCfg(CFG_NAME)
|
||||
gamedata.InitCfg(CONST_NAME)
|
||||
gamedata.InitCfg(CFG_MERGE_EMIT)
|
||||
gamedata.InitCfg(CFG_MERGE_EMIT_TYPE)
|
||||
gamedata.InitCfg(CFG_MERGE_COLOR)
|
||||
}
|
||||
|
||||
func GetEmitTypeProduce(EmitType string) []string {
|
||||
data, err := gamedata.GetDataByKey(CFG_MERGE_EMIT_TYPE, EmitType)
|
||||
if err != nil {
|
||||
// log.Debug("GetEmitTypeProduce GetOne EmitType:%s not found", EmitType)
|
||||
return []string{}
|
||||
}
|
||||
return strings.Split(gamedata.GetStringValue(data, "Produce"), ",")
|
||||
}
|
||||
|
||||
func GetEmitTypeByColor(Color string) string {
|
||||
@ -91,6 +78,7 @@ func GetOne(Id int) (*gamedata.MergeDataRecord, error) {
|
||||
Type: gamedata.ParseString(data["Type"]),
|
||||
Emit_Product: gamedata.ParseString(data["Emit_Product"]),
|
||||
CoolTime: gamedata.ParseInt(data["CoolTime"]),
|
||||
Emit_Type: gamedata.ParseString(data["Emit_Type"]),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@ -591,24 +579,6 @@ func getColorProb(Emit_List string, Color string) float64 {
|
||||
return Prob
|
||||
}
|
||||
|
||||
func GetColorType(Color string) int {
|
||||
data, err := gamedata.GetDataByKey(CFG_MERGE_COLOR, Color)
|
||||
if err != nil {
|
||||
log.Debug("GetColorType GetOne Color:%s not found", Color)
|
||||
return 0
|
||||
}
|
||||
Type := gamedata.GetStringValue(data, "Type")
|
||||
switch Type {
|
||||
case "main":
|
||||
return CHESS_PRODUCT_MAIN_TYPE
|
||||
case "secondary":
|
||||
return CHESS_PRODUCT_SECONDARY_TYPE
|
||||
case "sub":
|
||||
return CHESS_PRODUCT_SUB_TYPE
|
||||
}
|
||||
return CHESS_PRODUCT_MAIN_TYPE
|
||||
}
|
||||
|
||||
func GetMergeStar(MergeList []int) int {
|
||||
Star := 0
|
||||
for _, v := range MergeList {
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/gob"
|
||||
"fmt"
|
||||
"math"
|
||||
mergeDataCfg "server/conf/mergeData"
|
||||
@ -372,7 +374,13 @@ func UnitOrderPetReward(p *Player) error {
|
||||
}
|
||||
|
||||
func UnitCatnip(p *Player) error {
|
||||
p.CatnipBackData()
|
||||
//OrderMod := p.PlayMod.getOrderMod()
|
||||
//KvMod := p.PlayMod.getKvMod()
|
||||
ChessMod := p.PlayMod.getChessMod()
|
||||
var buf bytes.Buffer
|
||||
encode := gob.NewEncoder(&buf)
|
||||
encode.Encode(ChessMod)
|
||||
fmt.Printf("buf len:%dk\n", buf.Len()/1024)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@ -501,7 +501,7 @@ func randOrderChess(o *OrderMod, lv int, Emit []int, EnergyMul, OrderType int) (
|
||||
}
|
||||
//获取订单体力范围和棋子数量
|
||||
MinEnergy, MaxEnergy, ChessNum := getChessByDiff(lv, OrderDiff, OrderType)
|
||||
mergeList := getChessFromPoolByEnergy(o, MinEnergy, MaxEnergy, ChessNum, Emit, EnergyMul, OrderDiff)
|
||||
mergeList := getChessFromPoolByEnergy(o, MinEnergy, MaxEnergy, ChessNum, Emit, EnergyMul, OrderDiff, OrderType)
|
||||
return mergeList, OrderDiff, nil
|
||||
}
|
||||
|
||||
@ -626,7 +626,7 @@ func ShuffleColor(List []string, Last string) []string {
|
||||
}
|
||||
|
||||
// 获取发射器系列
|
||||
func getEmitSeries(o *OrderMod, Emit []int) string {
|
||||
func getEmitSeries(o *OrderMod, Emit []int, OrderType int) string {
|
||||
o.initColorShuffle(Emit)
|
||||
PopEmitId := ""
|
||||
NewSlice := make([]string, 0)
|
||||
@ -652,6 +652,14 @@ func getEmitSeries(o *OrderMod, Emit []int) string {
|
||||
if o.LastColor == PopEmitId {
|
||||
continue
|
||||
}
|
||||
|
||||
if OrderType == Pet_type {
|
||||
EmitId := getEmitBySeries(Emit, PopEmitId)
|
||||
EmitInfo, _ := mergeDataCfg.GetOne(EmitId)
|
||||
if EmitInfo.Emit_Type == "auto" {
|
||||
continue
|
||||
}
|
||||
}
|
||||
PopEmitIdProductNum := mergeDataCfg.GetEmitProductNumByColor(PopEmitId)
|
||||
o.initColorShuffle(Emit)
|
||||
// 单链棋子 且订单中已有两个 跳过
|
||||
@ -845,10 +853,10 @@ func (o *OrderMod) getChessIdPool(Emit []int, Color string, EnergyMul, Lv, MinEn
|
||||
}
|
||||
return Chess, ChessLv
|
||||
}
|
||||
func getChessFromPoolByEnergy(o *OrderMod, MinEnergy, MaxEnergy, ChessNum int, Emit []int, EnergyMul, OrderDiff int) []int {
|
||||
func getChessFromPoolByEnergy(o *OrderMod, MinEnergy, MaxEnergy, ChessNum int, Emit []int, EnergyMul, OrderDiff, OrderType int) []int {
|
||||
ColorArr := make([]string, 0)
|
||||
for i := 0; i < ChessNum; i++ {
|
||||
ColorArr = append(ColorArr, getEmitSeries(o, Emit))
|
||||
ColorArr = append(ColorArr, getEmitSeries(o, Emit, OrderType))
|
||||
}
|
||||
if len(ColorArr) == 2 && ColorArr[0] == ColorArr[1] {
|
||||
log.Default()
|
||||
@ -876,7 +884,7 @@ func getChessFromPoolByEnergy(o *OrderMod, MinEnergy, MaxEnergy, ChessNum int, E
|
||||
|
||||
// 从棋子池中获取棋子
|
||||
func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) int {
|
||||
Color := getEmitSeries(o, Emit)
|
||||
Color := getEmitSeries(o, Emit, 0)
|
||||
EmitChessId := getEmitBySeries(Emit, Color)
|
||||
//ColorRand := mergeDataCfg.GetEmitProduceType(EmitChessId)
|
||||
// 从棋子池中获取棋子
|
||||
|
||||
@ -16,6 +16,7 @@ type MergeDataRecord struct {
|
||||
Type string `json:"Type"`
|
||||
Emit_Product string `json:"Emit_Product"`
|
||||
Color string `json:"Color"`
|
||||
Emit_Type string `json:"Emit_Type"`
|
||||
}
|
||||
|
||||
type StartOrderData struct {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user