local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJ=MJFramework.MJImport("mj.luaScript.Views.Game.MJ") local yibinmajiangFlowView = class("yibinmajiangFlowView", cc.UIView); function yibinmajiangFlowView:ctor(data, desktopType) yibinmajiangFlowView.super.ctor(self); self.desktopType = MJDefine.DesktopType.TwoD; self.data = data or {}; end function yibinmajiangFlowView:loadUI( ) local ui = loadUI("mj_yibinmajiang/res/ui_fangjian/mj_yibinmajiang_flow.ui"); self.ui = ui; self:addChild(ui); end function yibinmajiangFlowView:onEnter( ) self:loadUI(); self:initViews(); self:initFlowView(self.data.detail); self:bindEvent(app.room, MJDefine.MJEvent.EVENT_XIAOJU_VIEW_SHOWED, handler(self, self.onEventXiaoJuViewShowed)); self:bindEvent(app.room, MJDefine.MJEvent.EVENT_DAJU_VIEW_SHOWED, handler(self, self.onEventXiaoJuViewShowed)); end function yibinmajiangFlowView:onEventXiaoJuViewShowed( ) self:onBtnCloseClicked(); end function yibinmajiangFlowView:initViews () self.ui.Items.Button_Close:registerClick(handler(self, self.onBtnCloseClicked)); self.ui.Items.ScrollView_Detail:hideAllBar(); self.ui.Items.Layout_1:setTouchEnabled(true); end function yibinmajiangFlowView:createItem(data) local ui = loadUI("mj_yibinmajiang/res/ui_fangjian/mj_yibinmajiang_flow_item.ui"); ui.Items.ScrollView_ItemDetail:hideAllBar(); ui.Items.Text_Detail:setString(data.title or ""); ui.Items.Text_HuFen:setString(data.huFen or 0); local color = data.huFen >= 0 and cc.c3b(235,72,15) or cc.c3b(113,113,113); ui.Items.Text_HuFen:setColor(color); ui.Items.Text_YuFen:setString(data.yuFen or 0); local color = data.yuFen >= 0 and cc.c3b(235,72,15) or cc.c3b(113,113,113); ui.Items.Text_YuFen:setColor(color); local mj = MJ:new(data.card, MJDefine.MJType.Out, MJDefine.MyViewId, self.desktopType); mj:setAnchorPoint(cc.p(0.5, 0.5)); mj:setPositionY(25); mj:setScale(0.80); ui.Items.Layout_HuCard:addChild(mj); local nodes = {}; for k, v in ipairs(data.seats) do if v and v ~= "" then local viewOrder = tonumber(v) + 1; local img = cc.ImageView:create(); nodes[viewOrder] = img; end end local index = 0; for viewOrder, v in pairs(nodes) do index = index + 1; v:loadTexture(string.format("mj_yibinmajiang/res/zy_fangjian/player/yibinmajiang_seat_%s.png", viewOrder)); v:setPosition(cc.p((index - 1) * 30 - (table.nums(data.seats) - 1) * 30 / 2 + 15, 25)); ui.Items.Layout_Seats:addChild(v); end return ui; end function yibinmajiangFlowView:getOperateType(operateType) local operateTypeName ={ [MJDefine.MJOperateType.OPREATE_CHUPAI] = "出牌", [MJDefine.MJOperateType.OPREATE_CHI] = "吃", [MJDefine.MJOperateType.OPREATE_PENG] = "碰", [MJDefine.MJOperateType.OPREATE_ZHIGANG] = "直杠", [MJDefine.MJOperateType.OPREATE_BAGANG] = "巴杠", [MJDefine.MJOperateType.OPREATE_ANGANG] = "暗杠", [MJDefine.MJOperateType.OPREATE_DIANPAOHU] = "点炮胡", [MJDefine.MJOperateType.OPREATE_ZIMOHU] = "自摸", [MJDefine.MJOperateType.OPREATE_GUOSHOUGANG] = "过手杠", [0] = "查叫", } return operateTypeName[operateType] or ""; end function yibinmajiangFlowView:getPaiType( paiType ) local str = ""; for k, v in pairs(MJDefine.MJGamePaiType) do if getNumBand(paiType, v) > 0 then str = str .. " " .. MJDefine.MJGameHuStr[v]; end end return str or ""; end function yibinmajiangFlowView:getItemTitle (itemData) local strDuoGang = "多头"; local duogang =json.decode(app.room.roomInfo:getGameRuleByKey("duogang")); if duogang == 1 then strDuoGang = "多头杠"; elseif duogang == 2 then strDuoGang = "多头"; end local opType = self:getOperateType(itemData.ot) or ""; local paiType = self:getPaiType(itemData.ht) or ""; local gangType = tonumber(itemData.gf) > 0 and string.format("%s+%s番", strDuoGang, itemData.gf) or ""; return string.format("%s %s %s", opType, paiType, gangType); end function yibinmajiangFlowView:initFlowView( data ) local scrollView = self.ui.Items.ScrollView_Detail; -- scrollView:removeAllChildren(); local result = {}; -- gs: 杠分 hs: 胡分 ht: 胡牌类型(自摸or点炮)可能要修改 gf: 杠番 ls: 萝卜分 ot: 操作类型,胡or 杠等 seat: 本次收费的座位id,多个;分割 for k, v in ipairs(data) do local obj = {}; obj.title = self:getItemTitle(v); obj.card = v.oc or 0; obj.huFen = v.hs; obj.yuFen = v.gs; obj.seats = string.split(v.seat, ";"); table.insert(result, obj); end for k, v in ipairs(result) do local ui = self:createItem(v); scrollView:addChild(ui); end local size = scrollView:getContentSize(); size.height = 70 * table.nums(result); scrollView:setInnerContainerSize(size); end function yibinmajiangFlowView:onBtnCloseClicked( ) self:removeFromParent(); self = nil; end return yibinmajiangFlowView;