|
-
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
- local MJ=MJFramework.MJImport("mj.luaScript.Views.Game.MJ")
- local huamajiangFlowView = class("huamajiangFlowView", cc.UIView);
-
- function huamajiangFlowView:ctor(data, desktopType)
- huamajiangFlowView.super.ctor(self);
- self.desktopType = MJDefine.DesktopType.TwoD;
- self.data = data or {};
- end
-
- function huamajiangFlowView:loadUI( )
- local ui = loadUI("mj_huamajiang/res/ui_fangjian/mj_huamajiang_flow.ui");
- self.ui = ui;
- self:addChild(ui);
- end
-
- function huamajiangFlowView:onEnter( )
- self:loadUI();
-
- self:initViews();
-
- self:initFlowView(self.data.detail);
- self:initLuoBoView(self.data.luoboCards);
-
- 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 huamajiangFlowView:onEventXiaoJuViewShowed( )
- self:onBtnCloseClicked();
- end
-
- function huamajiangFlowView:initViews ()
- self.ui.Items.Button_Close:registerClick(handler(self, self.onBtnCloseClicked));
-
- self.ui.Items.ScrollView_Detail:hideAllBar();
- self.ui.Items.ScrollView_LuoBo:hideAllBar();
-
- self.ui.Items.Layout_1:setTouchEnabled(true);
-
- --标题根据玩法修改
- local gamerule = app.room.roomInfo:getGameRuleByKey("gamerule");
- --三副牌玩法
- self.ui.Items.Text_Title_Hu:setVisible(gamerule ~= 2)
- self.ui.Items.Text_Title_LongFen:setVisible(gamerule == 2)
- self.ui.Items.Text_Title_HuLong:setVisible(gamerule == 2)
- end
-
- function huamajiangFlowView:createItem(data)
-
- local gamerule = app.room.roomInfo:getGameRuleByKey("gamerule");
- local ui
- if gamerule == 2 then
- ui = loadUI("mj_huamajiang/res/ui_fangjian/mj_huamajiang_flow_three_item.ui");
- ui.Items.Text_LongFen:setString(data.longFen or "");
- local color = data.longFen >= 0 and cc.c3b(235,72,15) or cc.c3b(113,113,113);
- ui.Items.Text_LongFen:setColor(color);
- else
- ui = loadUI("mj_huamajiang/res/ui_fangjian/mj_huamajiang_flow_item.ui");
- end
-
- 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_LuoBoFen:setString(data.luoboFen or 0);
- local color = data.luoboFen >= 0 and cc.c3b(235,72,15) or cc.c3b(113,113,113);
- ui.Items.Text_LuoBoFen: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_huamajiang/res/zy_fangjian/player/huamajiang_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 huamajiangFlowView:getLongType(longFen, longCount)
- local str = "";
- if longFen > 0 then
- str = str.."龙牌"
- elseif longFen < 0 then
- str = str.."被龙牌"
- end
-
- if longCount > 0 then
- str = str.." "..longCount.."条神龙"
- end
-
- return str or "";
- end
-
- function huamajiangFlowView: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 huamajiangFlowView: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 huamajiangFlowView: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 "";
- local longType = self:getLongType(itemData.ss, itemData.sl) or "";
- return string.format("%s%s%s%s", opType, paiType, gangType, longType);
- end
-
- function huamajiangFlowView: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.luoboFen = v.ls;
- obj.seats = string.split(v.seat, ";");
- obj.longFen = v.ss
- 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 huamajiangFlowView:initLuoBoView(data)
- local scrollView = self.ui.Items.ScrollView_LuoBo;
-
- local rowCount = 18;
- local maxRow = math.ceil(table.nums(data) / rowCount);
- local index = 0;
- local cardScale = 0.9;
- for card, count in pairs(data) do
- index = index + 1;
- local mj = MJ:new(card, MJDefine.MJType.Out, MJDefine.MyViewId, self.desktopType);
- local size = mj:getContentSize();
- size.width = size.width * cardScale;
- size.height = size.height * cardScale;
- local row = math.ceil( index / rowCount );
- local order = index % rowCount;
- order = order == 0 and rowCount or order;
- local x = (order - 1) * (size.width + 15) + size.width / 2 + 20;
- local y = 60;
- mj:setPosition(cc.p(x, y));
- mj:setScale(cardScale);
- mj:setVisible(true);
-
- local txtCount = cc.Text:createNode()
- txtCount:setDefaults()
- local config = txtCount:getFontConfig()
- config.fontSize = 24;
- config.texColor = cc.c4b(235, 72, 15, 255);
- txtCount:setFontConfig(config);
- txtCount:setString(count);
- txtCount:setAnchorPoint(cc.p(0, 0));
- txtCount:setPosition(cc.p(size.width / 2 - 5, -30))
- mj:addChild(txtCount);
-
- scrollView:addChild(mj);
- end
- end
-
- function huamajiangFlowView:onBtnCloseClicked( )
- self:removeFromParent();
- self = nil;
- end
-
- return huamajiangFlowView;
|