|
- local CreateRoomItemBase=require("luaScript.Views.CreateRoom.CreateRoomItemBase")
-
- local MJCreateRoomItem=class("dazhouCreateRoomItem",CreateRoomItemBase)
-
- local SELECT_COLOR = cc.c4b(213,46,11,255)
- local NON_SELECT_COLOR = cc.c4b(21,99,97,255)
-
- function MJCreateRoomItem:ctor(defaultValues)
- MJCreateRoomItem.super.ctor(self, defaultValues, "dazhoumj_room.json")
- local ui = loadUI("res/ui/ui_chuangjian/mj_createroom_xzdd_dazhou.ui");
- self.ui = ui;
- self:addChild(ui);
-
- self.JuShuRadioManager = import("luaScript.Tools.RadioManager"):new();
- --房费
- self.PayRadioManager = import("luaScript.Tools.RadioManager"):new();
- --人数
- self.RenShuRadioManager = import("luaScript.Tools.RadioManager"):new();
- --封顶
- self.FengDingCheckBoxManager = import("luaScript.Tools.RadioManager"):new();
- --自摸
- self.ZiMoCheckBoxManager = import("luaScript.Tools.RadioManager"):new();
- --点杠
- self.DianGangCheckBoxManager = import("luaScript.Tools.RadioManager"):new();
- --换张【换三张,换四张,不换张】
- self.SwapCheckBoxManager = import("luaScript.Tools.RadioManager"):new();
- --萝卜
- self.LuoBoCheckBoxManager = import("luaScript.Tools.RadioManager"):new();
- --玩法
- self.WanFaCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new();
- --低分加分
- self.DiFenJiaFenCheckBoxManager = import("luaScript.Tools.RadioManager"):new();
- -- 其他选项
- self.otherCheckBoxManager = import("luaScript.Tools.CheckBoxManager"):new()
-
- self:onHideCestView() -- 隐藏cest的界面
- end
-
- function MJCreateRoomItem:onHideCestView()
- if self.ui.Items.Button_pay0_tips then
- self.ui.Items.Button_pay0_tips:setVisible(false)
- end
- if self.ui.Items.Button_pay1_tips then
- self.ui.Items.Button_pay1_tips:setVisible(false)
- end
- if self.ui.Items.ImageView_pay0_tips then
- self.ui.Items.ImageView_pay0_tips:setVisible(false)
- end
- if self.ui.Items.ImageView_pay1_tips then
- self.ui.Items.ImageView_pay1_tips:setVisible(false)
- end
- end
-
- function MJCreateRoomItem:onShowCestView()
- if self.ui.Items.Text_pay0 then
- self.ui.Items.Text_pay0:setText("免费")
- end
- if self.ui.Items.Text_pay1 then
- self.ui.Items.Text_pay1:setText("自费")
- end
- if self.ui.Items.Button_pay0_tips then
- self.ui.Items.Button_pay0_tips:setVisible(true)
- end
- if self.ui.Items.Button_pay1_tips then
- self.ui.Items.Button_pay1_tips:setVisible(true)
- end
- if self.ui.Items.ImageView_pay0_tips then
- self.ui.Items.ImageView_pay0_tips:setVisible(false)
- end
- if self.ui.Items.Button_pay0_tips then
- self.ui.Items.Button_pay0_tips:registerClick(function()
- if self.ui.Items.ImageView_pay0_tips then
- local isVisible = not self.ui.Items.ImageView_pay0_tips:isVisible()
- self.ui.Items.ImageView_pay0_tips:setVisible(isVisible)
- end
- end)
- end
- if self.ui.Items.ImageView_pay1_tips then
- self.ui.Items.ImageView_pay1_tips:setVisible(false)
- end
- if self.ui.Items.Button_pay1_tips then
- self.ui.Items.Button_pay1_tips:registerClick(function()
- if self.ui.Items.ImageView_pay1_tips then
- local isVisible = not self.ui.Items.ImageView_pay1_tips:isVisible()
- self.ui.Items.ImageView_pay1_tips:setVisible(isVisible)
- end
- end)
- end
- end
-
- --根据局数获取房费
- function MJCreateRoomItem:getCreateRoomCost(jushu)
- if self.cost then
- local costInfo = self.cost[jushu]
- if costInfo then
- local payMode = self.PayRadioManager:getResult()
- if payMode == 0 then
- return costInfo.roomCard or 0
- elseif payMode == 1 then
- return costInfo.roomCardAA or 0
- end
- end
- end
- return 0
- end
-
- function MJCreateRoomItem:onEnter()
- MJCreateRoomItem.super.onEnter(self)
- -- 整理不同局数对应的房卡消耗
- local payTypes={}
- local gameConfig = app.user:getGameConfig(GAME_IDS.dazhouMJ)--app.gameId);
- if gameConfig then
- local arrGameRound = toNumberArray(",")(gameConfig.gameRound)
- local arrRequireCards = toNumberArray(",")(gameConfig.requireCards)
- local arrRequireCardsAA = toNumberArray(",")(gameConfig.AArequireCards)
-
- for idx, gameRound in ipairs(arrGameRound) do
- payTypes[gameRound] =
- {
- roomCard = arrRequireCards[idx],
- roomCardAA = arrRequireCardsAA[idx],
- }
- end
- end
- self.cost = payTypes
-
- -- 玩家选择局数后,更新房卡消耗
- --[[local function updateCost(gameRound)
- local costInfo = payTypes[gameRound]
- if costInfo then
- self.ui.Items.Text_FangZhu:setText(tostring(costInfo.requireCards or 0))
- self.ui.Items.Text_AAPay:setText(tostring(costInfo.requireCardsAA or 0))
- end
- end --]]
-
- -- 房费
- if self.PayRadioManager then
- self.PayRadioManager:addItem(self.ui.Items.CheckBox_FangZhu, 0); -- 房主支付
- self.PayRadioManager:addItem(self.ui.Items.CheckBox_AAPay, 1); -- AA支付
- --self.PayRadioManager:addItem(self.ui.Items.CheckBox_WinFinal, 2); -- 大赢家支付
-
- local default = self:getDefaultValue("deductRule") or 0
- self.PayRadioManager:setDefault(default)
-
- --通知创建界面更新显示
- local function dispatchUpdateCost()
- app:dispatchEvent({name = "onChangePayMode"})
- end
- self.PayRadioManager:setCallback(dispatchUpdateCost);
-
- self:setDefaultTextColor(self.PayRadioManager,"Text_pay")
- --self:updataTextColor(self.PayRadioManager,"Text_pay","radioBox",{0,1})
- end
-
- -- 封顶
- if self.FengDingCheckBoxManager then
- self.FengDingCheckBoxManager:addItem(self.ui.Items.CheckBox_3fan, 2); -- 2番
- self.FengDingCheckBoxManager:addItem(self.ui.Items.CheckBox_4fan, 3); -- 3番
- self.FengDingCheckBoxManager:addItem(self.ui.Items.CheckBox_5fan, 4); -- 4番
-
- local default = self:getDefaultValue("limitfan") or 3
- self.FengDingCheckBoxManager:setDefault(default)
-
- --self:setDefaultTextColor(self.FengDingCheckBoxManager,"Text_limit")
- --self:updataTextColor(self.FengDingCheckBoxManager,"Text_limit","radioBox",{5,6})
- end
-
- -- 自摸
- if self.ZiMoCheckBoxManager then
- self.ZiMoCheckBoxManager:addItem(self.ui.Items.CheckBox_ZiMo_1, 1); -- 自摸加底
- self.ZiMoCheckBoxManager:addItem(self.ui.Items.CheckBox_ZiMo_2, 2); -- 自摸加番
- --self.ZiMoCheckBoxManager:addItem(self.ui.Items.CheckBox_ZiMo_3, 0); -- 自摸不加
-
- local default = self:getDefaultValue("playmode") or 1
- self.ZiMoCheckBoxManager:setDefault(default)
- end
-
- -- 点杠
- if self.DianGangCheckBoxManager then
- self.DianGangCheckBoxManager:addItem(self.ui.Items.CheckBox_gang_1, 2); -- 自摸
- self.DianGangCheckBoxManager:addItem(self.ui.Items.CheckBox_gang_2, 1); -- 点炮
-
- local default = self:getDefaultValue("gshmode") or 2
- self.DianGangCheckBoxManager:setDefault(default)
- end
-
- -- 换三张
- if self.SwapCheckBoxManager then
- self.SwapCheckBoxManager:addItem(self.ui.Items.CheckBox_Change3, 3); -- 换三张
- self.SwapCheckBoxManager:addItem(self.ui.Items.CheckBox_Change4, 4); -- 换四张
- self.SwapCheckBoxManager:addItem(self.ui.Items.CheckBox_Nothing, 0); -- 不换张
- local default = self:getDefaultValue("swapcardcount") or 3
- self.SwapCheckBoxManager:setDefault(default)
- end
-
- --玩法
- if self.WanFaCheckBoxManager then
- self.WanFaCheckBoxManager:addItem(self.ui.Items.CheckBox_YaoJiuJiangDui, "jdyj", 1, 0) -- 幺九将对
- self.WanFaCheckBoxManager:addItem(self.ui.Items.CheckBox_MenQingZhongZhang, "mqzz", 1, 0) -- 门清中张
- self.WanFaCheckBoxManager:addItem(self.ui.Items.CheckBox_TianDiHu, "tdh", 1, 0) -- 天地胡
- self.WanFaCheckBoxManager:addItem(self.ui.Items.CheckBox_FangNiu, "fanniu", 1, 0) -- 放牛必须过庄胡
- self.WanFaCheckBoxManager:addItem(self.ui.Items.CheckBox_GuoShouPeng, 'guoshoupeng', 1, 0) -- 过手碰
- self.WanFaCheckBoxManager:addItem(self.ui.Items.CheckBox_ShiJiao,"sjbsj",1,0) -- 死叫不算叫
- self.WanFaCheckBoxManager:addItem(self.ui.Items.CheckBox_HuJue,"hjzjf",1,0) -- 胡绝张加番
-
- local jdyj = self:getDefaultValue("jdyj") or 1
- local mqzz = self:getDefaultValue("mqzz") or 1
- local tdh = self:getDefaultValue("tdh") or 1
- local fanniu = self:getDefaultValue("fanniu") or 0
- local guoshoupeng = self:getDefaultValue('guoshoupeng') or 0
- local sjbsj = self:getDefaultValue("sjbsj") or 1
- local hjzjf = self:getDefaultValue("hjzjf") or 1
-
- local selecteds = {}
- if jdyj==1 then
- table.insert(selecteds,"jdyj")
- end
- if mqzz==1 then
- table.insert(selecteds,"mqzz")
- else
- --self.ui.Items.CheckBox_BoZiMo:setVisible(false)
- end
- if tdh==1 then
- table.insert(selecteds,"tdh")
- end
- --[[if getNumBand(specrule, 0x0001)>0 then
- table.insert(selecteds, "guozhang")
- end
- if getNumBand(specrule, 0x0002)>0 then
- table.insert(selecteds, "bozimo")
- end--]]
- if fanniu==1 then
- table.insert(selecteds,"fanniu")
- end
-
- if guoshoupeng == 1 then
- table.insert(selecteds, 'guoshoupeng')
- end
-
- if sjbsj == 1 then
- table.insert(selecteds,"sjbsj")
- end
-
- if hjzjf == 1 then
- table.insert(selecteds,"hjzjf")
- end
-
- self.WanFaCheckBoxManager:setDefault(selecteds)
-
- self:setDefaultTextColor()
- --self:updataTextColor(self.WanFaCheckBoxManager,"","checkBox",{})
- end
- self:initLayoutEvent()
- self:initJiFenBeiShu()
- self:initOtherCheckBoxManager()
-
- -- 低分加分
- --[[if self.DiFenJiaFenCheckBoxManager then
- self.DiFenJiaFenCheckBoxManager:addItem(self.ui.Items.CheckBox_BuJiaFen, 0);-- 不加分
- self.DiFenJiaFenCheckBoxManager:addItem(self.ui.Items.CheckBox_JiaFen, 1); -- 加分
-
- local default = self:getDefaultValue("diFenLimit") or 0
- if default > 0 then
- default = 1
- end
- self.DiFenJiaFenCheckBoxManager:setDefault(default)
- --self:setDefaultTextColor(self.DiFenJiaFenCheckBoxManager,"Text_difenjiadi")
- end
-
- --小于多少分
- self._txtLimitScore = self.ui.Items.Text_limitScore
- local lstMin, lsMax = 1, 40
- self.Slider_limitScore = self.ui.Items.Slider_limitScore
- self.Slider_limitScore:addEventListener(function ( sender, eventType)
- if eventType == 0 then
- local per = sender:getPercent()
- self.limitScore = math.floor(lstMin + (lsMax-lstMin)/100 * per)
- self._txtLimitScore:setString(string.format("%d", self.limitScore))
- end
- end)
- -- default
- self.limitScore = self:getDefaultValue("diFenLimit") or 5
- if self.limitScore == 0 then
- self.limitScore = 5
- end
- self._txtLimitScore:setString(string.format("%d", tonumber(self.limitScore)))
- local lastlsPer = (self.limitScore-lstMin)/(lsMax-lstMin)*100
- self.Slider_limitScore:setPercent(lastlsPer)
-
- --加多少分
- self._txtAddScore = self.ui.Items.Text_addScore
- local asMin, asMax = 1, 40
- self.sliderAddScore = self.ui.Items.Slider_addScore
- self.sliderAddScore:addEventListener(function ( sender, eventType)
- if eventType == 0 then
- local per = sender:getPercent()
- self.addScore = math.floor(asMin + (asMax-asMin)/100 * per)
- self._txtAddScore:setString(string.format("%d", self.addScore))
- end
- end)
- -- default
- self.addScore = self:getDefaultValue("diFenAdd") or 5
- if self.addScore == 0 then
- self.addScore = 5
- end
- self._txtAddScore:setString(string.format("%d", tonumber(self.addScore)))
- local lastfaPer = (self.addScore-asMin)/(asMax-asMin)*100
- self.sliderAddScore:setPercent(lastfaPer)--]]
- end
- ---
- -- 初始化其他选项
- -- @return
- --
- function MJCreateRoomItem:initOtherCheckBoxManager ()
- if not self.otherCheckBoxManager then
- return
- end
-
- self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidProp, "forbidProp", 1, 0)--屏蔽快捷语与道具
- self.otherCheckBoxManager:addItem(self.ui.Items.CheckBox_ForbidVoice, "forbidVoice", 1, 0)--屏蔽语音
- local forbidProp = self:getDefaultValue("forbidProp") or 0
- local forbidVoice = self:getDefaultValue("forbidVoice") or 0
- local defaults = {}
- if forbidProp == 1 then
- table.insert(defaults, "forbidProp")
- end
- if forbidVoice == 1 then
- table.insert(defaults, "forbidVoice")
- end
- self.otherCheckBoxManager:setDefault(defaults)
- end
- -- 面板的点击事件,点击面板后,隐藏所有提示
- function MJCreateRoomItem:initLayoutEvent()
- self.ui.Items.Layout_1:registerClick(function()
- local buttons = {
- {buttonName = "Button_JFBS", tipsName = "ImageView_JFBS"},
- };
-
- -- 隐藏其他提示信息
- for k, v in ipairs(buttons) do
- local tipsNode = self.ui.Items[v.tipsName]
- tipsNode:setVisible(false)
- end
- end)
- end
- -- 初始化积分倍数
- function MJCreateRoomItem:initJiFenBeiShu()
- self.ui.Items.Button_jia:registerClick(handler(self, self.onClickAdd))
- self.ui.Items.Button_jian:registerClick(handler(self, self.onClickJian))
- self.curJFBS = self:getDefaultValue("baseMulti") or 1;
- self:updateJiFenBeiShu()
- --积分倍数说明
- self.ui.Items.ImageView_JFBS:setVisible(false)
- self.ui.Items.Button_JFBS:registerClick(function()
- self.ui.Items.ImageView_JFBS:setVisible(not self.ui.Items.ImageView_JFBS:isVisible())
- end)
- end
- --更新积分倍数
- function MJCreateRoomItem:updateJiFenBeiShu()
- self.curJFBS = self.curJFBS >= 1.0 and math.floor(self.curJFBS) or self.curJFBS;
- self.ui.Items.Text_jifen:setText(self.curJFBS)
-
- self.ui.Items.Button_jia:setEnabled(self.curJFBS ~= 100)
- self.ui.Items.Button_jian:setEnabled(self.curJFBS ~= 0.1)
- end
- --按钮加
- function MJCreateRoomItem:onClickAdd()
- playBtnEffect()
- if not self.curJFBS then
- return
- end
- if self.curJFBS >= 1.0 then
- self.curJFBS = self.curJFBS + 1.0
- else
- self.curJFBS = self.curJFBS + 0.1
- end
- if self.curJFBS >= 100 then
- self.curJFBS = 100;
- end
- self:updateJiFenBeiShu()
- end
- --按钮减
- function MJCreateRoomItem:onClickJian()
- playBtnEffect()
- if not self.curJFBS then
- return
- end
- if self.curJFBS <= 1.0 then
- self.curJFBS = self.curJFBS - 0.1
- else
- self.curJFBS = self.curJFBS - 1.0
- end
- if self.curJFBS <= 0.1 then
- self.curJFBS = 0.1
- end
- self:updateJiFenBeiShu()
- end
-
- --设置选中值默认颜色
- function MJCreateRoomItem:setDefaultTextColor(radio,text)
- if radio then
- local index = radio:getResult()
- local defaultText = string.format(text.."%d",index)
- self.ui.Items[defaultText]:setTextColor(SELECT_COLOR)
- end
-
- --[[local result = self.WanFaCheckBoxManager:getResult2()
- if result.mqzz == 1 then
- self.ui.Items.Text_mqzz:setTextColor(SELECT_COLOR)
- end--]]
- end
-
- --点击checkBox时,改变其text的颜色
- function MJCreateRoomItem:updataTextColor(radio,text,boxType,valueTab)
- local function updataRadioTextColor()
- if boxType == "radioBox" then
- local index = radio:getResult()
- for k,value in pairs(valueTab) do
- local item = string.format(text.."%d",value)
- self.ui.Items[item]:setTextColor(NON_SELECT_COLOR)
- if value == index then
- self.ui.Items[item]:setTextColor(SELECT_COLOR)
- end
- end
- elseif boxType == "checkBox" then
- --[[local result = self.WanFaCheckBoxManager:getResult2()
- local result = self.WanFaCheckBoxManager:getResult2()
- if result.mqzz == 1 then
- self.ui.Items.Text_mqzz:setTextColor(SELECT_COLOR)
- self.ui.Items.CheckBox_BoZiMo:setVisible(true)
- else
- self.ui.Items.Text_mqzz:setTextColor(NON_SELECT_COLOR)
- self.ui.Items.CheckBox_BoZiMo:setVisible(false)
- end--]]
- end
- end
-
- radio:setCallback(updataRadioTextColor);
- end
-
-
- function MJCreateRoomItem:getRuleResult()
- local game_num = self.JuShuRadioManager:getResult()
- local payMode = self.PayRadioManager:getResult()
- local playnum = 0--self.RenShuRadioManager:getResult()
- local isfaststart = playnum==0 and 1 or 0
- playnum = playnum==0 and 4 or playnum
- --下面两局代码限制只有三人模式,没有快速成局
- isfaststart = 0 -- 达州麻将只能满4人才能开始
- --playnum = 3
-
- local limitfan = self.FengDingCheckBoxManager:getResult()
- local playmode = self.ZiMoCheckBoxManager:getResult()
- local gshmode = self.DianGangCheckBoxManager:getResult()
- local swapresult = self.SwapCheckBoxManager:getResult()
- local wanFaResult = self.WanFaCheckBoxManager:getResult2()
- local jdyj = wanFaResult.jdyj
- local mqzz = wanFaResult.mqzz
- local tdh = wanFaResult.tdh
- local fanniu = wanFaResult.fanniu
- local guoshoupeng = wanFaResult.guoshoupeng
- local sjbsj = wanFaResult.sjbsj
- local hjzjf = wanFaResult.hjzjf
- local swapcard = swapresult
- local isSwapcard = 1;
- -- if swapcard == 0 then
- -- isSwapcard = 0
- -- end
-
- if swapcard == 0 then
- isSwapcard = 0
- elseif swapcard == 3 then
- isSwapcard = 1
- elseif swapcard == 4 then
- isSwapcard = 2
- end
-
-
- local other = self.otherCheckBoxManager:getResult2()
- local forbidProp = other["forbidProp"]
- local forbidVoice = other["forbidVoice"]
-
-
- self.defaultValus =
- {
- gamerule = 1,
- totalgamenum = game_num,
- deductRule = payMode,
- playnum = playnum,
- isfaststart = isfaststart,
- faststart = isfaststart,
- limitfan = limitfan,
- playmode = playmode,
- gshmode = gshmode,
- swapcard = isSwapcard,
- jdyj = jdyj,
- mqzz = mqzz,
- tdh = tdh,
- baseMulti = self.curJFBS,
- forbidProp = forbidProp,
- forbidVoice = forbidVoice,
- fanniu = fanniu,
- guoshoupeng = guoshoupeng,
- sjbsj = sjbsj,
- hjzjf = hjzjf,
- swapcardcount = swapcard,
- }
-
- -- 保存玩家的选择
- self:saveDefaultValues()
-
- local strGameInfo = json.encode(self.defaultValus);
- return game_num, strGameInfo
- end
-
-
- return MJCreateRoomItem
|