pet_home_server/src/server/game/UnitTest.go
2025-09-26 17:17:59 +08:00

356 lines
9.0 KiB
Go

package game
import (
"fmt"
"math"
mergeDataCfg "server/conf/mergeData"
orderCfg "server/conf/order"
"server/game/mod/decorate"
"server/game/mod/item"
"server/game/mod/order"
"server/game/mod/quest"
"server/msg"
"server/pkg/github.com/name5566/leaf/log"
"time"
)
func UnitEndlessReward(p *Player) error {
EndlessMod := p.PlayMod.getEndlessMod()
if EndlessMod == nil {
return fmt.Errorf("EndlessMod is nil")
}
BaseMod := p.PlayMod.getBaseMod()
Item, err := EndlessMod.GetReward(BaseMod.GetLevel())
if err != nil {
return err
}
if Item == nil {
return fmt.Errorf("item is nil")
}
err = p.HandleItem(Item, msg.ITEM_POP_LABEL_Endless.String())
if err != nil {
return err
}
return nil
}
func UnitChessShop(p *Player) error {
ChessMod := p.PlayMod.getChessMod()
ChargeMod := p.PlayMod.getChargeMod()
ChargeMod.InitChessShop(ChessMod.GetEmitList())
return nil
}
func UnitOrder(p *Player) error {
OrderMod := p.PlayMod.getOrderMod()
ChessMod := p.PlayMod.getChessMod()
BaseMod := p.PlayMod.getBaseMod()
//OrderMod.OrderList = make(map[int]order.Order)
for i := 0; i < 1000; i++ {
//OrderMod.ChessPool = nil
//OrderMod.EmitShuffle = nil
err := OrderMod.CreateNormalOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Common_type)
if err != nil {
return err
}
for k, v := range OrderMod.OrderList {
if v.Type == order.Super_type {
continue
}
if len(v.Items) > 0 {
continue
}
if v.Diff == 0 {
continue
}
Star := order.GetOrderStar(v.MergeId, ChessMod.GetOrderEmit())
v.Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, Star)}
OrderMod.OrderList[k] = v
fmt.Printf("OrderId %d, Diff %d, MergeId %v, Star %d\n", k, v.Diff, v.MergeId, Star)
}
}
NumMap := make(map[int]int)
for _, v := range OrderMod.OrderList {
NumMap[len(v.MergeId)]++
}
sum0 := 0
for _, v := range NumMap {
sum0 += v
}
for k, v := range NumMap {
fmt.Printf("棋子数量: %d, 占比: %.2f%% \n", k, float64(v)/float64(sum0)*100)
}
DiffMap := make(map[int]int)
for _, v := range OrderMod.OrderList {
DiffMap[v.Diff]++
}
sum := 0
for _, v := range DiffMap {
sum += v
}
for k, v := range DiffMap {
fmt.Printf("难度等级: %d, 占比: %.2f%% \n", k, float64(v)/float64(sum)*100)
}
AP := make(map[string]int, 0)
BP := make(map[string]int, 0)
for _, v := range OrderMod.OrderList {
for _, id := range v.MergeId {
Color := mergeDataCfg.GetColorById(id)
if Color == "Bath Toys" {
AP["Bath Toys"] += 1
}
if Color == "Cleaning Tools" {
AP["Cleaning Tools"] += 1
}
if Color == "Baby Toy" {
BP["Baby Toy"] += 1
}
if Color == "Books And Picture Books" {
BP["Books And Picture Books"] += 1
}
}
}
sum1 := 0
for _, v := range AP {
sum1 += v
}
sum2 := 0
for _, v := range BP {
sum2 += v
}
for k, v := range AP {
fmt.Printf("%s %.2f\n", k, float64(v)/float64(sum1)*100)
}
for k, v := range BP {
fmt.Printf("%s %.2f\n", k, float64(v)/float64(sum2)*100)
}
return nil
}
func UnitOrderSeed(player *Player) error {
start := time.Now()
BaseMod := player.PlayMod.getBaseMod()
BaseMod.Seed = true
TriggerSeedSource(player)
o := TriggerSeedOrder(player)
fmt.Println(o)
elapsed := time.Since(start)
fmt.Printf("UnitOrderSeed took %s\n", elapsed)
return nil
}
func UnitChess(p *Player) error {
CardMod := p.PlayMod.getCardMod()
for i := 0; i < 1000; i++ {
CardId := CardMod.RandCard(3)
fmt.Println(CardId)
}
return nil
}
func UnitDecorate(p *Player) error {
return nil
}
func UnitSevenMonthReward(p *Player) error {
ChargeMod := p.PlayMod.getChargeMod()
BaseMod := p.PlayMod.getBaseMod()
ChessMod := p.PlayMod.getChessMod()
ChargeMod.TriggerChargeUnlock(int(BaseMod.Level), ChessMod.GetEmitList())
return nil
}
func UnitAllCard(p *Player) error {
CardMod := p.PlayMod.getCardMod()
Item, err := CardMod.OpenCardPack(5)
if err != nil {
return err
}
fmt.Print(Item)
return nil
}
func UnitLimitProgress(p *Player) error {
LimitedTimeEventMod := p.PlayMod.getLimitedTimeEventMod()
LimitedTimeEventMod.Progress = 5
LimitedTimeEventMod.ZeroUpdate(7)
LimitedTimeEventMod.AddProgress(6)
return nil
}
func UnitLimitedTimeEvent(p *Player) error {
LimitedTimeEventMod := p.PlayMod.getLimitedTimeEventMod()
mergeList := []int{246, 15}
AddItem := LimitedTimeEventMod.GetChestReward(mergeList)
fmt.Print(AddItem)
return nil
}
func UnitCard(p *Player) error {
CardMod := p.PlayMod.getCardMod()
for i := 0; i < 10000; i++ {
CardMod.OpenCardPack(5)
}
return nil
}
func UnitOrder1(p *Player, Lv, EnergyMul int) ([]string, [][]float64) {
// ChessMod := p.PlayMod.getChessMod()
// Emit := ChessMod.GetEmitList()
// OrderMod := p.PlayMod.getOrderMod()
// OrderMod.LastDiff = 1
// OrderMod.OrderList = make(map[int]order.Order)
// // ChessMod := p.PlayMod.getChessMod()
// // EmitList := ChessMod.GetEmitList()
// // fmt.Println(EmitList)
// OrderMod.Debug = make(map[int]int)
// for i := 0; i < 5000; i++ {
// err := OrderMod.CreateNormalOrder(Lv, Emit, EnergyMul)
// log.Debug("OrderMod.CreateNormalOrder %d", i)
// if err != nil {
// return nil, nil
// }
// }
// I := make(map[int]int)
// for k, v := range OrderMod.Debug {
// // fmt.Printf("chessId %d, num %d\n", k, v)
// ChessLv := mergeDataCfg.GetLvById(k)
// I[ChessLv] += v
// }
// keys := make([]int, 0, len(I))
// Sum := 0
// for k, v := range I {
// Sum += v
// keys = append(keys, k)
// }
// sort.Ints(keys)
// xValue := make([]string, 0)
// yValue := make([][]float64, 0)
// line := make([]float64, 0)
// for _, k := range keys {
// xValue = append(xValue, fmt.Sprintf("Lv %d", k))
// line = append(line, float64(I[k])/float64(Sum)*100)
// fmt.Printf("Lv %d, num %.2f %%\n", k, float64(I[k])/float64(Sum)*100)
// }
// yValue = append(yValue, line)
// return xValue, yValue
return nil, nil
}
func UnitOrder2(p *Player, Lv, EnergyMul int) float64 {
ChessMod := p.PlayMod.getChessMod()
Emit := ChessMod.GetEmitList()
OrderMod := p.PlayMod.getOrderMod()
OrderMod.LastDiff = 1
OrderMod.OrderList = make(map[int]order.Order)
// ChessMod := p.PlayMod.getChessMod()
// EmitList := ChessMod.GetEmitList()
// fmt.Println(EmitList)
// OrderMod.Debug = make(map[int]int)
for i := 0; i < 5000; i++ {
err := OrderMod.CreateNormalOrder(Lv, Emit, EnergyMul, order.Common_type)
log.Debug("OrderMod.CreateNormalOrder %d", i)
if err != nil {
return 0
}
}
Energy := 0.0
for _, v := range OrderMod.OrderList {
for _, v1 := range v.MergeId {
Color := mergeDataCfg.GetColorById(v1)
Lv := mergeDataCfg.GetLvById(v1)
EmitId := order.GetEmitByColor(Emit, Color)
AdjustLv := mergeDataCfg.GetAdjust(EmitId, Color)
Energy += math.Pow(2, float64(Lv-1+AdjustLv))
}
}
return Energy / float64(5000)
}
func UnitChess1(p *Player) error {
ChessMod := p.PlayMod.getChessMod()
p.PushClientRes(ChessMod.BackData())
EmitRetireTrigger1(p)
DailyTaskMod := p.PlayMod.getDailyTaskMod()
p.PushClientRes(DailyTaskMod.BackData())
return nil
}
func UnitPlayroom(p *Player) error {
//PlayroomMod := p.PlayMod.getPlayroomMod()
//PlayroomMod.UnLock(15)
PlayroomBackData(p)
return nil
}
func UnitDailyTask(p *Player) error {
FT := p.PlayMod.getFriendTreasureMod()
FT.ZeroUpdate()
return nil
}
func UnitTriggerMail(p *Player) error {
p.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_UPLV})
p.ProcessTrigger()
return nil
}
func UnitPlayroomOrder(p *Player) error {
PlayroomMod := p.PlayMod.getPlayroomMod()
PlayroomMod.CreateOrderReward(100, p.PlayMod.getItemMod())
return nil
}
func UnitPetOrder(p *Player) error {
p.CreateNormalOrder()
ChessMod := p.PlayMod.getChessMod()
DecorateMod := p.PlayMod.getDecorateMod()
OrderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId())
Star := order.GetOrderStar([]int{305}, ChessMod.GetStarEmitList())
a := int(float64(Star)*float64(OrderFactor)/1000+0.5) * 10
fmt.Print(a)
return nil
}
func UnitDecoratePartCost(p *Player) error {
p.LoginBackData()
DecorateMod := p.PlayMod.getDecorateMod()
DecorateMod.AreaId = 3
DecorateMod.PartCost = make(map[int]*decorate.PartCostInfo)
DecorateMod.PartClassPool = []int{}
DecorateMod.PartPool = make(map[int]int)
DecorateMod.InitData()
Items, _, _ := DecorateMod.GetDecorateCostItem(1, 33)
err := p.HandleLoseItem(Items, "")
if err != nil {
fmt.Print(err)
}
return nil
ChessMod := p.PlayMod.getChessMod()
return ChessMod.PutPartInBag(1515)
}
func UnitOrderTrigger(p *Player) error {
OrderMod := p.PlayMod.getOrderMod()
BaseMod := p.PlayMod.getBaseMod()
Lv := int(BaseMod.Level)
ChessMod := p.PlayMod.getChessMod()
Emit := ChessMod.GetEmitList()
EnergyMul := BaseMod.GetEnergyMul()
OrderMod.TriggerOrder(Lv, order.TRIGGER_TYPE_ORDER, Emit, EnergyMul)
order.GetOrderStar([]int{1146}, ChessMod.GetOrderEmit())
return nil
}
func UnitOrderExtra(p *Player) error {
OrderMod := p.PlayMod.getOrderMod()
BaseMod := p.PlayMod.getBaseMod()
ChessMod := p.PlayMod.getChessMod()
Update := OrderMod.CreateExtraOrder([]int{25}, nil, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel())
fmt.Print(Update)
return nil
}