import User from "../../FrameWork/User/User"; import Common5 from "../../Platform/th/Common5"; export let skinConfig = [ {id:0, nameStr:'敦煌彩',targetNum:500}, {id:1, nameStr:'樱花粉',targetNum:480}, {id:2, nameStr:'葡萄紫',targetNum:460}, {id:3, nameStr:'青草绿',targetNum:450}, {id:4, nameStr:'柑橘红',targetNum:450}, {id:5, nameStr:'天空蓝',targetNum:450}, {id:6, nameStr:'青瓷绿',targetNum:420}, {id:7, nameStr:'柠檬黄',targetNum:420}, {id:8, nameStr:'丁香紫',targetNum:420}, {id:9, nameStr:'灰磁盘',targetNum:400}, {id:10, nameStr:'火热红',targetNum:400}, {id:11, nameStr:'复古棕',targetNum:400}, {id:12, nameStr:'深邃蓝',targetNum:400}, {id:13, nameStr:'净白瓷',targetNum:400}, {id:14, nameStr:'深海蓝',targetNum:300}, {id:15, nameStr:'雾霾蓝',targetNum:300}, {id:16, nameStr:'玫瑰紫',targetNum:300}, {id:17, nameStr:'祖母绿',targetNum:300}, {id:18, nameStr:'咖啡棕',targetNum:300}, {id:19, nameStr:'香芋紫',targetNum:200}, {id:20, nameStr:'鲜活橙',targetNum:200}, {id:21, nameStr:'青柠绿',targetNum:200}, {id:22, nameStr:'石榴红',targetNum:180}, {id:23, nameStr:'芭比粉',targetNum:180}, {id:24, nameStr:'子鼠',targetNum:1}, {id:25, nameStr:'丑牛',targetNum:1}, {id:26, nameStr:'寅虎',targetNum:1}, {id:27, nameStr:'卯兔',targetNum:1}, {id:28, nameStr:'辰龙',targetNum:1}, {id:29, nameStr:'巳蛇',targetNum:1}, {id:30, nameStr:'午马',targetNum:1}, {id:31, nameStr:'未羊',targetNum:1}, {id:32, nameStr:'申猴',targetNum:1}, {id:33, nameStr:'酉鸡',targetNum:1}, {id:34, nameStr:'戌狗',targetNum:1}, {id:35, nameStr:'亥猪',targetNum:1}, ] //needPZNum 累计达成的数量 let tabChenghao = [ {name:'萌新菜鸟', chenghaoId:0, reward:0, needPZNum:0, maxPZ:50000}, {name:'入门选手', chenghaoId:1, reward:200, needPZNum:500, maxPZ:50000}, {name:'种子选手', chenghaoId:2, reward:400, needPZNum:1000, maxPZ:50000}, {name:'麻将新星', chenghaoId:3, reward:600, needPZNum:2000, maxPZ:50000}, {name:'麻将能手', chenghaoId:4, reward:800, needPZNum:5000, maxPZ:50000}, {name:'麻将怪才', chenghaoId:5, reward:1000, needPZNum:10000, maxPZ:50000}, {name:'麻将精英', chenghaoId:6, reward:1200, needPZNum:15000, maxPZ:50000}, {name:'麻将大师', chenghaoId:7, reward:1500, needPZNum:20000, maxPZ:50000}, {name:'麻将高手', chenghaoId:8, reward:1800, needPZNum:25000, maxPZ:50000}, {name:'麻将大佬', chenghaoId:9, reward:2000, needPZNum:30000, maxPZ:50000}, {name:'麻将王子', chenghaoId:10, reward:2200, needPZNum:35000, maxPZ:50000}, {name:'麻将之王', chenghaoId:11, reward:2300, needPZNum:40000, maxPZ:50000}, {name:'麻将祖师', chenghaoId:12, reward:2400, needPZNum:45000, maxPZ:50000}, {name:'雀神', chenghaoId:13, reward:2600, needPZNum:50000, maxPZ:50000}, ] let AllChuShiKuCun = [ {kaCao:3, ChuShiKuCun:600}, {kaCao:4, ChuShiKuCun:600}, {kaCao:5, ChuShiKuCun:600}, {kaCao:6, ChuShiKuCun:600}, {kaCao:7, ChuShiKuCun:600}, {kaCao:8, ChuShiKuCun:600}, {kaCao:9, ChuShiKuCun:600}, {kaCao:10, ChuShiKuCun:600}, {kaCao:11, ChuShiKuCun:600}, {kaCao:12, ChuShiKuCun:600}, {kaCao:13, ChuShiKuCun:600}, ] export enum GameLevel{ FirstLevel,//第一关 SecondLevel,//第二关 } export interface GameProgressDataProperty_xmj { unlock_cell:number, curTargetMinNumber:number, curTargetNumber:number, cell_data:any, unlock_ads9:boolean, unlock_ads10:boolean, unlock_ads11:boolean, jieSuoTuJianId:number, curXiWanChiLevel?:number[], unlock_adsXiWanChi2?:boolean, leftPanZiNum?:number, curGuanQiaNum?:number, curGuanQiaFinishNum?:number, ads9LeftTimer?:number, ads10LeftTimer?:number, ads11LeftTimer?:number, unlock_ads13?:boolean, yiXiaoChuNum?:number, yiXiaoChuAllNum:number, jieSuoColorNum?:number, gameTime?:number, xiaoChuColorNumTab?:any, isAutoBuPanTimer?:boolean, autoBuPanTimeNum?:number, curJieSuoShengXiaoId?:number, // xiWanChi_data?:any, } //空格数获取发牌数 let FaPaiShu_KongGeShu_config = { KG_10:[{faPaiShu:1,rate:0},{faPaiShu:2,rate:0},{faPaiShu:3,rate:0},{faPaiShu:4,rate:40},{faPaiShu:5,rate:40},{faPaiShu:6,rate:20}], KG_9:[{faPaiShu:1,rate:0},{faPaiShu:2,rate:0},{faPaiShu:3,rate:0},{faPaiShu:4,rate:45},{faPaiShu:5,rate:35},{faPaiShu:6,rate:20}], KG_8:[{faPaiShu:1,rate:0},{faPaiShu:2,rate:0},{faPaiShu:3,rate:20},{faPaiShu:4,rate:40},{faPaiShu:5,rate:30},{faPaiShu:6,rate:10}], KG_7:[{faPaiShu:1,rate:0},{faPaiShu:2,rate:0},{faPaiShu:3,rate:40},{faPaiShu:4,rate:40},{faPaiShu:5,rate:20},{faPaiShu:6,rate:0}], KG_6:[{faPaiShu:1,rate:0},{faPaiShu:2,rate:0},{faPaiShu:3,rate:45},{faPaiShu:4,rate:45},{faPaiShu:5,rate:10},{faPaiShu:6,rate:0}], KG_5:[{faPaiShu:1,rate:0},{faPaiShu:2,rate:10},{faPaiShu:3,rate:40},{faPaiShu:4,rate:40},{faPaiShu:5,rate:10},{faPaiShu:6,rate:0}], KG_4:[{faPaiShu:1,rate:0},{faPaiShu:2,rate:30},{faPaiShu:3,rate:35},{faPaiShu:4,rate:35},{faPaiShu:5,rate:0},{faPaiShu:6,rate:0}], KG_3:[{faPaiShu:1,rate:0},{faPaiShu:2,rate:30},{faPaiShu:3,rate:70},{faPaiShu:4,rate:0},{faPaiShu:5,rate:0},{faPaiShu:6,rate:0}], KG_2:[{faPaiShu:1,rate:0},{faPaiShu:2,rate:100},{faPaiShu:3,rate:0},{faPaiShu:4,rate:0},{faPaiShu:5,rate:0},{faPaiShu:6,rate:0}], KG_1:[{faPaiShu:1,rate:100},{faPaiShu:2,rate:0},{faPaiShu:3,rate:0},{faPaiShu:4,rate:0},{faPaiShu:5,rate:0},{faPaiShu:6,rate:0}] } //牌数获取种类数 let FaPaiShu_ZhongLei = { PS_1:[{typeNum:1,rate:100},{typeNum:2,rate:0},{typeNum:3,rate:0},{typeNum:4,rate:0}], PS_2:[{typeNum:1,rate:60},{typeNum:2,rate:40},{typeNum:3,rate:0},{typeNum:4,rate:0}], PS_3:[{typeNum:1,rate:50},{typeNum:2,rate:50},{typeNum:3,rate:0},{typeNum:4,rate:0}], PS_4:[{typeNum:1,rate:45},{typeNum:2,rate:45},{typeNum:3,rate:10},{typeNum:4,rate:0}], PS_5:[{typeNum:1,rate:20},{typeNum:2,rate:60},{typeNum:3,rate:20},{typeNum:4,rate:0}], PS_6:[{typeNum:1,rate:10},{typeNum:2,rate:40},{typeNum:3,rate:40},{typeNum:4,rate:10}] // PS_1:[{typeNum:1,rate:100},{typeNum:2,rate:0},{typeNum:3,rate:0},{typeNum:4,rate:0}], // PS_2:[{typeNum:1,rate:100},{typeNum:2,rate:0},{typeNum:3,rate:0},{typeNum:4,rate:0}], // PS_3:[{typeNum:1,rate:100},{typeNum:2,rate:0},{typeNum:3,rate:0},{typeNum:4,rate:0}], // PS_4:[{typeNum:1,rate:100},{typeNum:2,rate:0},{typeNum:3,rate:0},{typeNum:4,rate:0}], // PS_5:[{typeNum:1,rate:100},{typeNum:2,rate:0},{typeNum:3,rate:0},{typeNum:4,rate:0}], // PS_6:[{typeNum:1,rate:100},{typeNum:2,rate:0},{typeNum:3,rate:0},{typeNum:4,rate:0}] } //牌数获取特定种类 let FaPaiShu_TeDingZhongLei = { PS_1:{numTabType_1:[[1]]}, PS_2:{numTabType_1:[[2]],numTabType_2:[[1,1]]}, PS_3:{numTabType_1:[[3]],numTabType_2:[[1,2],[2,1]]}, PS_4:{numTabType_1:[[4]],numTabType_2:[[2,2],[1,3],[3,1]],numTabType_3:[[1,1,2],[2,1,1],[1,2,1]]}, PS_5:{numTabType_1:[[5]],numTabType_2:[[1,4],[4,1],[2,3],[3,2]],numTabType_3:[[1,2,2],[2,1,2],[2,2,1],[3,1,1],[1,3,1],[1,1,3]]}, PS_6:{numTabType_1:[[6]],numTabType_2:[[1,5],[5,1],[2,4],[4,2],[3,3]],numTabType_3:[[1,1,4],[1,4,1],[4,1,1],[2,2,2],[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]], numTabType_4:[[1,1,1,3],[1,1,3,1],[1,3,1,1],[3,1,1,1],[1,1,2,2],[1,2,2,1],[2,2,1,1],[2,1,1,2],[2,1,2,1],[1,2,1,2]]}, } //卡槽解锁 let KaCaoJieSuo_CoinConfig = { G_1:{ KaCao_0:0, KaCao_1:0, KaCao_2:200, KaCao_3:-9999, KaCao_4:2500, KaCao_5:-9999, KaCao_6:3000, KaCao_7:-9999, KaCao_8:3500, KaCao_9:0, KaCao_10:0, KaCao_11:0}, G_2:{ KaCao_0:0, KaCao_1:0, KaCao_2:3500, KaCao_3:-9999, KaCao_4:2500, KaCao_5:-9999, KaCao_6:3000, KaCao_7:-9999, KaCao_8:3500, KaCao_9:0, KaCao_10:0, KaCao_11:0}, G_3:{ KaCao_0:0, KaCao_1:0, KaCao_2:3500, KaCao_3:-9999, KaCao_4:2500, KaCao_5:-9999, KaCao_6:3000, KaCao_7:-9999, KaCao_8:3500, KaCao_9:0, KaCao_10:0, KaCao_11:0} } //洗碗池等级 let XiWanChiLevelConfig = { Level_1:10, Level_2:30, Level_3:40, Level_4:50, Level_5:50, Level_6:60, Level_7:70, Level_8:80, } //关卡数据配置(关卡目标,奖励数量) let GuanQiaDataConfig = { G_1:{targetNum:50000,awardNum:0,chuShiKuCun:600,time:600,addtime:180,targetColor:12}, G_2:{targetNum:4000,awardNum:0,chuShiKuCun:600,time:2400,addtime:600,targetColor:21}, G_3:{targetNum:8000,awardNum:0,chuShiKuCun:600,time:4200,addtime:900,targetColor:35}, G_4:{targetNum:1000000,awardNum:0,chuShiKuCun:600,time:7200,addtime:1200,targetColor:100}, } //根据槽位和已消除数量获取颜色数 let JieSuoColorConfig_GM = [ {curColorNum:2,nextNeedXiaoChu:1,needCaoWei:2}, {curColorNum:3,nextNeedXiaoChu:1,needCaoWei:2}, {curColorNum:4,nextNeedXiaoChu:1,needCaoWei:2}, {curColorNum:5,nextNeedXiaoChu:1,needCaoWei:3}, {curColorNum:6,nextNeedXiaoChu:1,needCaoWei:4}, {curColorNum:7,nextNeedXiaoChu:1,needCaoWei:4}, {curColorNum:8,nextNeedXiaoChu:1,needCaoWei:5}, {curColorNum:9,nextNeedXiaoChu:1,needCaoWei:6}, {curColorNum:10,nextNeedXiaoChu:1,needCaoWei:7}, {curColorNum:11,nextNeedXiaoChu:1,needCaoWei:8}, {curColorNum:12,nextNeedXiaoChu:1,needCaoWei:2}, {curColorNum:13,nextNeedXiaoChu:1,needCaoWei:2}, {curColorNum:14,nextNeedXiaoChu:1,needCaoWei:3}, {curColorNum:15,nextNeedXiaoChu:1,needCaoWei:4}, {curColorNum:16,nextNeedXiaoChu:1,needCaoWei:4}, {curColorNum:17,nextNeedXiaoChu:1,needCaoWei:5}, {curColorNum:18,nextNeedXiaoChu:1,needCaoWei:6}, {curColorNum:19,nextNeedXiaoChu:1,needCaoWei:7}, {curColorNum:20,nextNeedXiaoChu:1,needCaoWei:8}, {curColorNum:21,nextNeedXiaoChu:1,needCaoWei:2}, {curColorNum:22,nextNeedXiaoChu:1,needCaoWei:2}, {curColorNum:23,nextNeedXiaoChu:1,needCaoWei:3}, {curColorNum:24,nextNeedXiaoChu:1,needCaoWei:4}, {curColorNum:25,nextNeedXiaoChu:1,needCaoWei:4}, {curColorNum:26,nextNeedXiaoChu:1,needCaoWei:5}, {curColorNum:27,nextNeedXiaoChu:1,needCaoWei:6}, {curColorNum:28,nextNeedXiaoChu:1,needCaoWei:7}, {curColorNum:29,nextNeedXiaoChu:1,needCaoWei:8}, {curColorNum:30,nextNeedXiaoChu:1,needCaoWei:8}, {curColorNum:31,nextNeedXiaoChu:1,needCaoWei:8}, {curColorNum:32,nextNeedXiaoChu:1,needCaoWei:9}, {curColorNum:33,nextNeedXiaoChu:1,needCaoWei:9}, {curColorNum:34,nextNeedXiaoChu:100000,needCaoWei:9}, {curColorNum:35,nextNeedXiaoChu:100000,needCaoWei:9} ] //根据槽位和已消除数量获取颜色数 //根据槽位和已消除数量获取颜色数 let JieSuoColorConfig = [ {curColorNum:2,nextNeedXiaoChu:3,needCaoWei:2}, {curColorNum:3,nextNeedXiaoChu:5,needCaoWei:2}, {curColorNum:4,nextNeedXiaoChu:7,needCaoWei:2}, {curColorNum:5,nextNeedXiaoChu:10,needCaoWei:3}, {curColorNum:6,nextNeedXiaoChu:12,needCaoWei:4}, {curColorNum:7,nextNeedXiaoChu:13,needCaoWei:4}, {curColorNum:8,nextNeedXiaoChu:14,needCaoWei:5}, {curColorNum:9,nextNeedXiaoChu:15,needCaoWei:6}, {curColorNum:10,nextNeedXiaoChu:15,needCaoWei:7}, {curColorNum:11,nextNeedXiaoChu:20,needCaoWei:8}, {curColorNum:12,nextNeedXiaoChu:20,needCaoWei:2}, {curColorNum:13,nextNeedXiaoChu:20,needCaoWei:2}, {curColorNum:14,nextNeedXiaoChu:7,needCaoWei:3}, {curColorNum:15,nextNeedXiaoChu:10,needCaoWei:4}, {curColorNum:16,nextNeedXiaoChu:12,needCaoWei:4}, {curColorNum:17,nextNeedXiaoChu:13,needCaoWei:5}, {curColorNum:18,nextNeedXiaoChu:14,needCaoWei:6}, {curColorNum:19,nextNeedXiaoChu:15,needCaoWei:7}, {curColorNum:20,nextNeedXiaoChu:15,needCaoWei:8}, {curColorNum:21,nextNeedXiaoChu:20,needCaoWei:2}, {curColorNum:22,nextNeedXiaoChu:20,needCaoWei:2}, {curColorNum:23,nextNeedXiaoChu:7,needCaoWei:3}, {curColorNum:24,nextNeedXiaoChu:10,needCaoWei:4}, {curColorNum:25,nextNeedXiaoChu:12,needCaoWei:4}, {curColorNum:26,nextNeedXiaoChu:13,needCaoWei:5}, {curColorNum:27,nextNeedXiaoChu:14,needCaoWei:6}, {curColorNum:28,nextNeedXiaoChu:15,needCaoWei:7}, {curColorNum:29,nextNeedXiaoChu:16,needCaoWei:8}, {curColorNum:30,nextNeedXiaoChu:20,needCaoWei:8}, {curColorNum:31,nextNeedXiaoChu:20,needCaoWei:8}, {curColorNum:32,nextNeedXiaoChu:20,needCaoWei:9}, {curColorNum:33,nextNeedXiaoChu:20,needCaoWei:9}, {curColorNum:34,nextNeedXiaoChu:100000,needCaoWei:9}, {curColorNum:35,nextNeedXiaoChu:100000,needCaoWei:9} ] let MaJiangColorConfig = [ {id:1,nameStr:'1万',tuAn:"wan1",mjColor:'color1'}, {id:2,nameStr:'2万',tuAn:"wan2",mjColor:'color2'}, {id:3,nameStr:'3万',tuAn:"wan3",mjColor:'color3'}, {id:4,nameStr:'4万',tuAn:"wan4",mjColor:'color4'}, {id:5,nameStr:'5万',tuAn:"wan5",mjColor:'color5'}, {id:6,nameStr:'6万',tuAn:"wan6",mjColor:'color6'}, {id:7,nameStr:'7万',tuAn:"wan7",mjColor:'color7'}, {id:8,nameStr:'8万',tuAn:"wan8",mjColor:'color8'}, {id:9,nameStr:'9万',tuAn:"wan9",mjColor:'color9'}, {id:10,nameStr:'1筒',tuAn:"tong1",mjColor:'color10'}, {id:11,nameStr:'2筒',tuAn:"tong2",mjColor:'color11'}, {id:12,nameStr:'3筒',tuAn:"tong3",mjColor:'color12'}, {id:13,nameStr:'4筒',tuAn:"tong4",mjColor:'color1'}, {id:14,nameStr:'5筒',tuAn:"tong5",mjColor:'color2'}, {id:15,nameStr:'6筒',tuAn:"tong6",mjColor:'color3'}, {id:16,nameStr:'7筒',tuAn:"tong7",mjColor:'color4'}, {id:17,nameStr:'8筒',tuAn:"tong8",mjColor:'color5'}, {id:18,nameStr:'9筒',tuAn:"tong9",mjColor:'color6'}, {id:19,nameStr:'1条',tuAn:"tiao1",mjColor:'color7'}, {id:20,nameStr:'2条',tuAn:"tiao2",mjColor:'color8'}, {id:21,nameStr:'3条',tuAn:"tiao3",mjColor:'color9'}, {id:22,nameStr:'4条',tuAn:"tiao4",mjColor:'color1'}, {id:23,nameStr:'5条',tuAn:"tiao5",mjColor:'color2'}, {id:24,nameStr:'6条',tuAn:"tiao6",mjColor:'color3'}, {id:25,nameStr:'7条',tuAn:"tiao7",mjColor:'color4'}, {id:26,nameStr:'8条',tuAn:"tiao8",mjColor:'color5'}, {id:27,nameStr:'9条',tuAn:"tiao9",mjColor:'color6'}, {id:28,nameStr:'东',tuAn:"east",mjColor:'color10'}, {id:29,nameStr:'南',tuAn:"south",mjColor:'color11'}, {id:30,nameStr:'西',tuAn:"west",mjColor:'color12'}, {id:31,nameStr:'北',tuAn:"north",mjColor:'color13'}, {id:32,nameStr:'中',tuAn:"zhong",mjColor:'color14'}, {id:33,nameStr:'发',tuAn:"fa",mjColor:'color15'}, {id:34,nameStr:'白',tuAn:"bai",mjColor:'color16'}, {id:35,nameStr:'皇冠',tuAn:"皇冠",mjColor:'color6'} ] export class CColorContent { constructor(inputColor,inputColorCount) { this.color = inputColor; this.colorCount = inputColorCount; } public color = ""; public colorCount = 0; } export default class NewDataManage_xmj{ //默认参数 static maxColorOneStack = 4; static maxDealCount = 6; static randArr = [2,3,4,6]; static randArr2 = [2,3,4]; public static maxTime = -1; //判断参数是否在数组 public static colorInArr(color,arr){ for (let i = 0; i< arr.length; i++){ if (color == arr[i].color){ return true; } } return false; } public static getJieSuoColorConfig(){ return JieSuoColorConfig } public static colorInColorArr(color,arr){ for (let i = 0; i< arr.length; i++){ if (color == arr[i]){ return true; } } return false; } public static insertColorToArr(color,arr){ if (!this.colorInColorArr(color,arr)){ arr.push(color); } } public static getNewColor(color,dstColor,allColor){ if (!this.colorInColorArr(color,dstColor)){ return color; } if (dstColor.length >= allColor.length){ return color; } else { color = allColor[Common5.getRandomNum(0,allColor.length)]; let num = 0 while (this.colorInColorArr(color,dstColor)){ num++ if(num > 100){ break } color = allColor[Common5.getRandomNum(0,allColor.length)]; } return color; } } //获取场中不超过颜色上限的颜色 public static getHaveColor(color,dstColor,haveColor,curMaxColor,allColor){ if (haveColor.length < curMaxColor){ if (!this.colorInColorArr(color,dstColor)){ haveColor.push(color); } else{ let num = 0 while (this.colorInColorArr(color,dstColor)){ num++ if(num > 100){ break } color = allColor[Common5.getRandomNum(0,allColor.length)]; } } } else { let num = 0 while (this.colorInColorArr(color,dstColor)){ num++ if(num > 100){ break } color = haveColor[Common5.getRandomNum(0,haveColor.length)]; } } // for (let i = 0; i< haveColor.length; i++){ // if (color == haveColor[i]){ // find = true; // break; // } // } // if (!find){ // if (haveColor.length < curMaxColor){ // haveColor.push(color); // } // else { // color = haveColor[Common5.getRandomNum(0,haveColor.length)]; // while (this.colorInColorArr(color,dstColor)){ // color = haveColor[Common5.getRandomNum(0,haveColor.length)]; // } // } // } return color; } public static setTopColor(colorArr,index,type){ if (type == 1){ let find = false; for (let i = index; i < colorArr.length; i++){ for (let j = i+1; j < colorArr.length; j++){ if (colorArr[i] == colorArr[j]){ find = true; } } } if (!find){ let randNum = Common5.getRandomNum(index,colorArr.length); let ranNum2 = Common5.getRandomNum(0,colorArr.length); let num = 0 while (randNum == ranNum2){ num++ if(num > 100){ break } ranNum2 = Common5.getRandomNum(0,colorArr.length); } colorArr[randNum] = colorArr[ranNum2]; } } else if (type == 2 && colorArr.length >= 4){ let arr = Common5.getRandomNumArr_custom(0,colorArr.length-1,4); arr.sort(); colorArr[arr[0]] = colorArr[arr[2]]; colorArr[arr[1]] = colorArr[arr[3]]; } else if (type == 3 && colorArr.length >= 4){ let randNum = Common5.getRandomNum(index,colorArr.length); let randNum2 = Common5.getRandomNum(index,colorArr.length); let randNum3 = Common5.getRandomNum(0,colorArr.length-2); let num = 0 while (randNum == randNum2){ num++ if(num > 100){ break } randNum2 = Common5.getRandomNum(index,colorArr.length); } let num2 = 0 while ((randNum == randNum3) || (randNum2 == randNum3)){ num2++ if(num2 > 100){ break } randNum3 = Common5.getRandomNum(0,colorArr.length); } colorArr[randNum] = colorArr[randNum3]; colorArr[randNum2] = colorArr[randNum3]; } } /* curColorCountArr:每个案板的颜色数组的数组,二维数组[] curBlankCount:要发的颜色数 curDishwashingColorArr:当前洗碗池的颜色,一个都没有[],有一个["color1"],有2个["color1","color2"] curMaxColor:当前场中可出现的最大颜色数(解锁案板+解锁洗碗池)*2 -2 */ public static Deal(curColorCountArr,curBlankCount,curDishwashingColorArr,curMaxColor,xiaoChuNum){ console.log('发牌传参curColorCountArr=',curColorCountArr) console.log('发牌传参curBlankCount=',curBlankCount) console.log('发牌传参curDishwashingColorArr=',curDishwashingColorArr) console.log('发牌传参curMaxColor=',curMaxColor) console.log('发牌传参xiaoChuNum=',xiaoChuNum) let retArr = []; let tmpAllColor = []; let tmpTopColor = []; let tmpTopHaveColor = []; let tmpButtomColor = []; let addNewColor = false; for (let i = 0; i < Math.max(curBlankCount,curColorCountArr.length); i++){ let tmpColor = i; if (i >= curBlankCount){ tmpColor = Common5.getRandomNum(0,curBlankCount); } this.insertColorToArr(tmpColor,tmpAllColor); tmpTopColor.push(tmpColor); tmpButtomColor.push(tmpColor); } let tmpHaveColor = []; let boardHaveColor = []; let topArr = Common5.shuffle(tmpTopColor); let start = 0; let count = curColorCountArr.length; topArr = topArr.splice(0,count); let buttomArr = Common5.shuffle(tmpButtomColor); buttomArr =buttomArr.splice(start,count); console.log(topArr,buttomArr); for (let i = 0; i < curColorCountArr.length; i++){ for (let j = 0; j < curColorCountArr[i].length; j++){ this.insertColorToArr(curColorCountArr[i][j].color,tmpHaveColor); this.insertColorToArr(curColorCountArr[i][j].color,boardHaveColor); } } //判断第一个洗碗池的颜色 for (let all = 0; all < curDishwashingColorArr.length; all++){ if (all > 0 && curDishwashingColorArr[0] == curDishwashingColorArr[1]){ break; } this.insertColorToArr(curDishwashingColorArr[0],boardHaveColor); if (curDishwashingColorArr.length > 0){ let topColor = curDishwashingColorArr[all]; this.insertColorToArr(topColor,tmpHaveColor); let tmpCount = this.randArr[Common5.getRandomNum(0,this.randArr.length)]; if (curColorCountArr.length > 3 && Common5.getRandomNum(0,100) > 30){ tmpCount = this.randArr2[Common5.getRandomNum(0,this.randArr2.length)]; } if (curColorCountArr[all].length > (this.maxColorOneStack-2) && (!this.colorInArr(topColor,curColorCountArr[all]) && !this.colorInArr(topColor,curColorCountArr[all])) || topColor == buttomArr[all]){ //已经有3种颜色,或者随机出来的两种颜色一样,则发两张 tmpCount = this.maxDealCount; } let tmpArr = []; let buttomColor = buttomArr[all]; if (buttomColor == topColor){ tmpCount = this.maxDealCount; } let tmpColorContentTop = new CColorContent(topColor,tmpCount); this.insertColorToArr(topColor,tmpTopHaveColor); tmpArr.unshift(tmpColorContentTop); if (this.maxDealCount-tmpCount > 0){ buttomColor = this.getHaveColor(buttomColor,curDishwashingColorArr,tmpHaveColor,curMaxColor,tmpAllColor); this.insertColorToArr(buttomColor,tmpHaveColor); let tmpColorContentButtom = new CColorContent(buttomColor,this.maxDealCount-tmpCount); tmpArr.unshift(tmpColorContentButtom); } retArr.push(tmpArr); topArr[all] = topColor; } } if (curDishwashingColorArr.length < 2){ let randNum = Common5.getRandomNum(0,100); console.log("topArr1:",topArr); if (xiaoChuNum < 50){ if (randNum < 60){ this.setTopColor(topArr,retArr.length,1); } else if (randNum < 80){ this.setTopColor(topArr,retArr.length,2); } else{ this.setTopColor(topArr,retArr.length,3); } } else if (xiaoChuNum < 120){ if (randNum < 55){ this.setTopColor(topArr,retArr.length,1); } else if (randNum < 85){ this.setTopColor(topArr,retArr.length,2); } else { this.setTopColor(topArr,retArr.length,3); } } else if (xiaoChuNum < 200){ if (randNum < 65){ this.setTopColor(topArr,retArr.length,1); } else if (randNum < 85){ this.setTopColor(topArr,retArr.length,2); } else { this.setTopColor(topArr,retArr.length,3); } } else if (xiaoChuNum < 300){ if (randNum < 75){ this.setTopColor(topArr,retArr.length,1); } else if (randNum < 90){ this.setTopColor(topArr,retArr.length,2); } else{ this.setTopColor(topArr,retArr.length,3); } } else { if (randNum < 80){ this.setTopColor(topArr,retArr.length,1); } else if (randNum < 95){ this.setTopColor(topArr,retArr.length,2); } else{ this.setTopColor(topArr,retArr.length,3); } } } console.log("topArr2:",topArr); for (let i = retArr.length; i < curColorCountArr.length; i++){ let topColor = topArr[i]; let tmpCount = this.randArr[Common5.getRandomNum(0,this.randArr.length)]; if (curColorCountArr.length > 3){ tmpCount = this.randArr2[Common5.getRandomNum(0,this.randArr2.length)]; } if (curColorCountArr[i].length > (this.maxColorOneStack-2) && (!this.colorInArr(topColor,curColorCountArr[i]) && !this.colorInArr(topColor,curColorCountArr[i]))){ //已经有3种颜色 tmpCount = this.maxDealCount; } let buttomColor = buttomArr[i]; // topColor = this.getHaveColor(topColor,curDishwashingColorArr,tmpHaveColor,curMaxColor,tmpAllColor); // if (tmpTopColor.length == i && i == curColorCountArr.length-1){ // let ranNum = Common5.getRandomNum(0,100); // if (xiaoChuNum < 50 && ranNum <){ // } // } this.insertColorToArr(topColor,tmpHaveColor); if ((curColorCountArr[i].length == 0 ||curDishwashingColorArr.length == 0) && !addNewColor){ if (tmpHaveColor.length >= curBlankCount){ buttomColor = this.getNewColor(buttomColor,boardHaveColor,tmpHaveColor); } else{ buttomColor = this.getNewColor(buttomColor,boardHaveColor,tmpAllColor); } this.insertColorToArr(topColor,tmpHaveColor); addNewColor = true; } else{ if (tmpHaveColor.length >= curBlankCount){ buttomColor = this.getHaveColor(buttomColor,curDishwashingColorArr,tmpHaveColor,curMaxColor,tmpHaveColor); } else { buttomColor = this.getHaveColor(buttomColor,curDishwashingColorArr,tmpHaveColor,curMaxColor,tmpAllColor); } this.insertColorToArr(topColor,tmpHaveColor); } this.insertColorToArr(buttomColor,tmpHaveColor); let tmpArr = []; if (buttomColor == topColor){ if (tmpHaveColor.length >= curBlankCount){ buttomColor = this.getNewColor(buttomColor,[topColor],tmpHaveColor); } else { buttomColor = this.getNewColor(buttomColor,[topColor],tmpAllColor); } this.insertColorToArr(topColor,tmpHaveColor); } let tmpColorContentTop = new CColorContent(topColor,tmpCount); tmpArr.unshift(tmpColorContentTop); if (this.maxDealCount-tmpCount > 0){ let tmpColorContentButtom = new CColorContent(buttomColor,this.maxDealCount - tmpCount); tmpArr.unshift(tmpColorContentButtom); } retArr.push(tmpArr); } console.log(retArr); return retArr; } public static getSendCardData(callFunc){ let curColorCountArr= this.getCurLineColorArr()//[[new CColorContent(0,3),new CColorContent(1,3)],[new CColorContent(1,3),new CColorContent(0,3)]] let curDishwashingColorArr = this.getXiWanChiColorArr()//[0,1]; let colorNum = this.getSendColorTypeNumByXiaoChuNum() if(colorNum > 34){ colorNum = 34 } //这里打个补丁??? if(this.curGuanQiaNum == 1){ }else if(this.curGuanQiaNum == 2){ colorNum -= 9 }else if(this.curGuanQiaNum == 3){ colorNum -= 19 } let maxColorNum = this.canShowMaxColorNum() let res = this.Deal(curColorCountArr,colorNum,curDishwashingColorArr,maxColorNum,this.yiXiaoChuNum); console.log(JSON.stringify(res)); let faPaiData = {} //处理为可用的数组 for(let i=0;i= fapaiNum){ break } } if(num >= fapaiNum){ break } } } faPaiData['line_'+i] = lineData } console.log('发牌数据==',faPaiData) //发牌前数据 let faPaiQianData = Common5.deepClone(this.cell_data) console.log("发牌前数据faPaiQianData=",faPaiQianData) //将发牌数据全部导入总数组 for(let i=0;i<=this.unlock_cell;i++){ let lineData = faPaiData['line_'+i] if(lineData){ for(let j=0;j 0){ colorNum = this.cell_data[12][0] } //所有列包括临时区 for(let i=0;i<=11;i++){ let lineData = this.cell_data[i] let topNum = lineData[lineData.length-1] changeColorPosTab[i] = [] for(let j=lineData.length-1;j>=0;j--){ if(topNum == lineData[j]){ lineData[j] = colorNum changeColorPosTab[i].push(j) }else{ break } } } console.log('使用魔法道具后this.cell_data=',this.cell_data,changeColorPosTab) return {changeColorPosTab:changeColorPosTab,colorNum:colorNum} } //根据空格数获取发牌数 public static getFaPaiShuByKongGeShu(kongGeNum){ let num = 0 let index = Math.floor(Math.random()*100) let lineConfig = FaPaiShu_KongGeShu_config['KG_'+kongGeNum] for(let i=0;i{ // for(let i=0;i<=this.unlock_cell;i++){ // let lineData = faPaiData['line_'+i] // if(lineData){ // for(let j=0;j chuShiKuCun){ this.leftPanZiNum = chuShiKuCun } this.saveGameProgressData() } public static initLeftPanZiNum(){ this.leftPanZiNum = GuanQiaDataConfig['G_'+this.curGuanQiaNum].chuShiKuCun } public static getChuShiKuCun(){ //根据槽位获取盘子 let cellNum = this.unlock_cell+1 let chuShiKuCun = 600 for(let i = 0; i 0){ // arr.push(this.cell_data[i][0] - 1) // continue // } // } return arr } //第几关 public static curGuanQiaNum = 1 public static getCurGuanQiaNum(){ return this.curGuanQiaNum } public static getGuanQiaTargetNum(){ return GuanQiaDataConfig['G_'+this.curGuanQiaNum].targetNum } public static getNextGuanQiaTargetNum(){ return GuanQiaDataConfig['G_'+(this.curGuanQiaNum+1)].targetNum } public static getGuanQiaAwardNum(){ return GuanQiaDataConfig['G_'+this.curGuanQiaNum].awardNum } public static getGuanQiaTargetColor(){ return GuanQiaDataConfig['G_'+this.curGuanQiaNum].targetColor } public static getNextGuanQiaTargetColor(){ return GuanQiaDataConfig['G_'+(this.curGuanQiaNum+1)].targetColor } //当前关卡已完成数量 public static curGuanQiaFinishNum = 0 public static getCurGuanQiaFinishNum(){ return this.curGuanQiaFinishNum } public static addCurGuanQiaFinishNum(num,finishCurGuanQia){ // let initNextPageData //超过目标值 let isEnterNext = false let targetNum = this.getGuanQiaTargetNum() this.curGuanQiaFinishNum += num // Common5.ALLMJ_SCORE += num if(this.curGuanQiaFinishNum >= targetNum){ console.log('达到目标,进入下一关') // this.curGuanQiaFinishNum = targetNum isEnterNext = true }else{ // this.curGuanQiaFinishNum += num } // CommonDefine.setImRankData(this.curGuanQiaFinishNum+Common5.ALLXIPANZI_SCORE+ Common5.ALLDLS_SCORE) this.saveGameProgressData() finishCurGuanQia && finishCurGuanQia(isEnterNext,()=>{ // this.initNewPageData() }) } public static isAutoBuPanTimer = false public static autoBuPanTimeNum = 0 public static getIsAutoBuPanTimer(){ return this.isAutoBuPanTimer } public static setAutoBuPanTimeNum(){ if(!this.isAutoBuPanTimer){ this.isAutoBuPanTimer = true this.autoBuPanTimeNum = Date.now() + 1000*3600 } } public static getAutoBuPanTimeLeftNum(){ let leftSeconds = 0 if(this.isAutoBuPanTimer){ leftSeconds = Math.floor((this.autoBuPanTimeNum - Date.now())/1000) }else{ } return leftSeconds } public static finishAutoBuPanTime(){ this.isAutoBuPanTimer = false this.autoBuPanTimeNum = 0 } public static curJieSuoShengXiaoId = 0 public static addJieSuoShengXiaoId(){ this.curJieSuoShengXiaoId++ } public static getJieSuoShengXiaoId(){ return this.curJieSuoShengXiaoId } public static checkIsCanSendCard(){ // let isGM = GMManager.getToggleStatus_FPBuXianZhi() // if(isGM){ // return false // } let isFull = true for(let i=0;i<=this.unlock_cell;i++){ if(this.cell_data[i].length < 15){ isFull = false break } } return isFull } public static addSendPZIndex(){ let index = User.getSendPZIndex() index+=1 if(index>=2){ index = 2 } User.setSendPZIndex(index) } public static subSendPZIndex(){ let index = User.getSendPZIndex() index-- if(index<=0){ index = 0 } User.setSendPZIndex(index) } public static isCanContinueGame(){ // let isGM = GMManager.getToggleStatus_FPBuXianZhi() // if(isGM){ // return true // } let index = User.getSendPZIndex() if(index<=0){ //如果台子上的盘子小于12也是可以发牌的 let cellNum = 0 for(let i = 0; i