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 < 100; 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.AddOrder() ChessMod := p.PlayMod.getChessMod() DecorateMod := p.PlayMod.getDecorateMod() OrderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) Star := order.GetOrderStar([]int{307, 1026}, 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) 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 }