【订单】-宠物订单的棋子不能是自动发射器棋子

This commit is contained in:
hahwu 2025-12-09 17:34:47 +08:00
parent d17992a6f1
commit 7dcd683997
4 changed files with 27 additions and 40 deletions

View File

@ -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 {

View File

@ -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
}

View File

@ -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)
// 从棋子池中获取棋子

View File

@ -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 {