/////////////////////////////////////////////////// /////// cls_youle_erqiwang_export: 输出接口 /////// /////////////////////////////////////////////////// var cls_youle_erqiwang_export = cls_youle_erqiwang_export || { new: function() { var exp = {}; //解析roomtype获取开房所需房卡 exp.get_needroomcard = function(roomtype){ switch (roomtype[2]) { case 1: //房主扣卡 switch (roomtype[0]) { case 1: return 1; break; case 2: return 2; break; default: return 1; break; } break; case 2: //每人扣卡 switch (roomtype[0]) { case 1: return 1; break; case 2: return 2; break; default: return 1; break; } break; } } //解析roomtype获取总局数 exp.get_asetcount = function(roomtype){ switch (roomtype[0]) { case 1: return 2; break; case 2: return 4; break; default: return 4; break; } } //加入房间时根据roomtype获取需要的房卡数量 exp.get_needroomcard_joinroom = function(roomtype){ switch (roomtype[2]) { case 1: //房主扣卡 return 0; break; case 2: //每人扣卡 switch (roomtype[0]) { case 1: return 1; break; case 2: return 2; break; default: return 1; break; } break; } } //开战 exp.makewar = function(o_room){ //牌桌对象 o_room.o_desk = cls_youle_erqiwang_desk.new(o_room); for (var i = 0; i < o_room.seatlist.length; i++) { o_room.seatlist[i].gameinfo.isbet = 1; } //开始第一局 var do_newpaiju = function(){ o_room.o_desk.method.do_new_paiju(0); } min_ontimeout(do_newpaiju, 1000); } //获取某个玩家的牌桌整桌当前信息 exp.get_deskinfo = function(o_room, seat){ if (!o_room.o_desk){ return null; } var paiju = o_room.o_desk.method.curr_paiju(); var deskinfo = {}; deskinfo.count = o_room.asetcount; //总局数 deskinfo.idx = paiju.idx; //当前局数 deskinfo.PlayerInfo = []; //玩家当前累积得分 for (var i = 0; i < o_room.o_desk.seatlist.length; i++) { deskinfo.PlayerInfo.push(o_room.o_desk.seatlist[i][0]); }; deskinfo.step = paiju.step; //牌局状态 deskinfo.MyCards = paiju.method.get_seat_cards(seat); //我手上的牌 switch (paiju.step){ case 1: //发完牌叫分 deskinfo.CallRun = {}; //当前叫分位置 deskinfo.CallRun.seat = paiju.method.get_callgrade_seat(); //叫分倒计时 deskinfo.CallRun.countdown = o_room.o_desk.method.get_countdown_jiaofen(); //当前叫分 deskinfo.CallRun.nowcall = paiju.method.get_callgrade_value(); //当前叫分倍数 deskinfo.CallRun.multiple = cls_youle_erqiwang_arith.get_multiple_bycall(deskinfo.CallRun.nowcall); //所有玩家的叫分情况 deskinfo.CallRun.call = [null, null, null]; deskinfo.CallRun.call[0] = paiju.method.get_seat_callgrade(0); deskinfo.CallRun.call[1] = paiju.method.get_seat_callgrade(1); deskinfo.CallRun.call[2] = paiju.method.get_seat_callgrade(2); break; case 2: //选主 deskinfo.ChooseMain = {}; //庄家 deskinfo.ChooseMain.banker = paiju.banker; //庄家叫分 deskinfo.ChooseMain.call = paiju.call; //庄家叫分倍数 deskinfo.ChooseMain.multiple = cls_youle_erqiwang_arith.get_multiple_bycall(paiju.call); //选主倒计时 deskinfo.ChooseMain.countdown = o_room.o_desk.method.get_countdown_xuanzhu(); //底牌 deskinfo.ChooseMain.bottomcards = paiju.method.get_bottomcards(); //是否可投降 if (paiju.call < 65){ deskinfo.ChooseMain.touxiang = 0; } else { deskinfo.ChooseMain.touxiang = 1; } break; case 3: //埋牌 deskinfo.BuryCards = {}; //庄家 deskinfo.BuryCards.banker = paiju.banker; //庄家叫分 deskinfo.BuryCards.call = paiju.call; //庄家叫分倍数 deskinfo.BuryCards.multiple = cls_youle_erqiwang_arith.get_multiple_bycall(paiju.call); //埋牌倒计时 deskinfo.BuryCards.countdown = o_room.o_desk.method.get_countdown_maipai(); //底牌 deskinfo.BuryCards.bottomcards = paiju.method.get_bottomcards(); //主牌花色 deskinfo.BuryCards.flower = paiju.flower; //是否可投降 if (paiju.call < 65){ deskinfo.BuryCards.touxiang = 0; } else { deskinfo.BuryCards.touxiang = 1; } break; case 4: //投降 deskinfo.Surrender = {}; //庄家 deskinfo.Surrender.banker = paiju.banker; //庄家叫分 deskinfo.Surrender.call = paiju.call; //庄家叫分倍数 deskinfo.Surrender.multiple = cls_youle_erqiwang_arith.get_multiple_bycall(paiju.call); //出牌倒计时 deskinfo.Surrender.countdown = o_room.o_desk.method.get_countdown_chupai(); //主牌花色 deskinfo.Surrender.flower = paiju.flower; if (seat == paiju.banker){ //埋的牌 deskinfo.Surrender.bottomcards = paiju.method.get_burycard(); } //是否可投降 if (paiju.call < 65){ deskinfo.Surrender.touxiang = 0; } else { deskinfo.Surrender.touxiang = 1; } break; case 5: //出牌 deskinfo.PushCards = {}; //庄家 deskinfo.PushCards.banker = paiju.banker; //庄家叫分 deskinfo.PushCards.call = paiju.call; //庄家叫分倍数 deskinfo.PushCards.multiple = cls_youle_erqiwang_arith.get_multiple_bycall(paiju.call); //出牌倒计时 deskinfo.PushCards.countdown = o_room.o_desk.method.get_countdown_chupai(); //主牌花色 deskinfo.PushCards.flower = paiju.flower; //捡分 var jian_grade = paiju.method.get_jian_grade(); if (seat == paiju.banker){ //埋的牌 deskinfo.PushCards.bottomcards = paiju.method.get_burycard(); } else { //闲家当前的捡分分牌 deskinfo.PushCards.gradecards = jian_grade.cards; } //闲家当前的捡分分数 deskinfo.PushCards.grade = jian_grade.grade; //当前的出牌情况 deskinfo.PushCards.playproc = paiju.playproc; //座位列表 deskinfo.PushCards.seatlist = paiju.seatlist; //出牌历史 deskinfo.PushCards.pushlist = []; for (var i = 0; i < paiju.cards.length; i++) { var pai = paiju.cards[i]; if (pai.playround > 0){ if (deskinfo.PushCards.pushlist.length < pai.playround){ deskinfo.PushCards.pushlist.length = pai.playround; } if (!deskinfo.PushCards.pushlist[pai.playround - 1]){ deskinfo.PushCards.pushlist[pai.playround - 1] = [[], [], []]; } var owner = pai.dealowner; if (owner == 0){ owner = paiju.banker + 1; } deskinfo.PushCards.pushlist[pai.playround - 1][owner - 1].push(i); } } //按大小排序 for (var i = 0; i < deskinfo.PushCards.pushlist.length; i++) { for (var j = 0; j < deskinfo.PushCards.pushlist.length; j++) { deskinfo.PushCards.pushlist[i][j] = cls_youle_erqiwang_arith.order_cards(pai.flower, deskinfo.PushCards.pushlist[i][j]); } } break; case 6: //结算 deskinfo.Balance = {}; //玩家的准备状态 deskinfo.Balance.readystate = o_room.o_desk.prepare; if (o_room.o_desk.prepare[seat] == 0){ //结算情况 deskinfo.Balance.aset = paiju.tmp_jiesuan_aset; } break; } return deskinfo; } //解散房间 exp.get_disbandRoom = function(o_room){ var msg = {}; return o_room.o_desk.method.curr_paiju().method.get_paiju_account(2, msg); } return exp; } } //对内输出接口 youle_erqiwang.export = cls_youle_erqiwang_export.new();