177 lines
6.6 KiB
Lua
177 lines
6.6 KiB
Lua
|
|
--local EXMainView = import(".EXMainView")
|
|||
|
|
|
|||
|
|
local SettingView = require('Game.View.SettingView')
|
|||
|
|
local PKSettingView = {
|
|||
|
|
__checkMainViewState = nil,
|
|||
|
|
__changePokerCallBack = nil,
|
|||
|
|
__changePokerSizeCallBack = nil,
|
|||
|
|
}
|
|||
|
|
local M = PKSettingView
|
|||
|
|
function PKSettingView.new(blur_view, show_type, isjiesan,url,cardSizeHandle)
|
|||
|
|
setmetatable(SettingView, {__index = BaseWindow})
|
|||
|
|
setmetatable(M, {__index = SettingView})
|
|||
|
|
local self = setmetatable({}, {__index = M})
|
|||
|
|
self.class = 'PKSettingView'
|
|||
|
|
self._currenIndex = 0
|
|||
|
|
self._blur_view = blur_view
|
|||
|
|
self.onCallback = event('onCallback', true)
|
|||
|
|
self.stateIndex = 0
|
|||
|
|
self.cd_time = 0
|
|||
|
|
self._btn_dismiss_room_enable = true
|
|||
|
|
self._full = true
|
|||
|
|
self._anim_pop = 2
|
|||
|
|
self._close_destroy = true
|
|||
|
|
self._show_type = show_type
|
|||
|
|
self.isjiesan = isjiesan
|
|||
|
|
self.__changePokerSizeCallBack=cardSizeHandle
|
|||
|
|
if url ~= nil then
|
|||
|
|
self:init(url)
|
|||
|
|
else
|
|||
|
|
self:init('ui://Main_Poker/SettingWindow1')
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
return self
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
function M:init(url)
|
|||
|
|
SettingView.init(self, url)
|
|||
|
|
-- show_type:1隐藏所有 2隐藏解散和换牌 3隐藏返回和换牌
|
|||
|
|
-- 设置界面有换牌功能的,需要在mainview中重写方法UpdateCard
|
|||
|
|
self._view:GetController('type').selectedIndex = self._show_type
|
|||
|
|
-- show_type1玩法的换牌功能
|
|||
|
|
if self._show_type == 1 then
|
|||
|
|
local room = DataManager.CurrenRoom
|
|||
|
|
local c1 = self._view:GetController('paimian')
|
|||
|
|
local user_id = DataManager.SelfUser.account_id
|
|||
|
|
local json_data = Utils.LoadLocalFile(user_id .. room.game_id .. 'pai')
|
|||
|
|
if json_data == nil then
|
|||
|
|
local _gamectr = self._gamectr
|
|||
|
|
c1.selectedIndex = 0
|
|||
|
|
else
|
|||
|
|
local _data = json.decode(json_data)
|
|||
|
|
local pai = _data['pai']
|
|||
|
|
|
|||
|
|
c1.selectedIndex = pai
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
|
|||
|
|
c1.onChanged:Set(
|
|||
|
|
function()
|
|||
|
|
if self.__changePokerCallBack then
|
|||
|
|
self.__changePokerCallBack(c1.selectedIndex)
|
|||
|
|
end
|
|||
|
|
--点击换牌按钮后保存当前游戏的牌
|
|||
|
|
local user_id = DataManager.SelfUser.account_id
|
|||
|
|
local _data = {}
|
|||
|
|
_data['pai'] = c1.selectedIndex
|
|||
|
|
local key = user_id .. room.game_id .. 'pai'
|
|||
|
|
Utils.SaveLocalFile(key, json.encode(_data))
|
|||
|
|
end
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
local card_size = self._view:GetController('card_size')
|
|||
|
|
json_data = Utils.LoadLocalFile(user_id .. room.game_id .. 'cardsize')
|
|||
|
|
if json_data == nil then
|
|||
|
|
local _gamectr = self._gamectr
|
|||
|
|
card_size.selectedIndex = 1
|
|||
|
|
else
|
|||
|
|
local _data = json.decode(json_data)
|
|||
|
|
local cardsize = _data['cardsize']
|
|||
|
|
|
|||
|
|
card_size.selectedIndex = cardsize
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
card_size.onChanged:Set(
|
|||
|
|
function()
|
|||
|
|
if self.__changePokerSizeCallBack then
|
|||
|
|
self.__changePokerSizeCallBack(card_size.selectedIndex)
|
|||
|
|
end
|
|||
|
|
--点击换牌按钮后保存当前游戏的牌
|
|||
|
|
local user_id = DataManager.SelfUser.account_id
|
|||
|
|
local _data = {}
|
|||
|
|
_data['cardsize'] = card_size.selectedIndex
|
|||
|
|
local key = user_id .. room.game_id .. 'cardsize'
|
|||
|
|
Utils.SaveLocalFile(key, json.encode(_data))
|
|||
|
|
end
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
self._view:GetChild('btn_close').onClick:Add(
|
|||
|
|
function(...)
|
|||
|
|
self:Destroy()
|
|||
|
|
end
|
|||
|
|
)
|
|||
|
|
end
|
|||
|
|
if self.isjiesan then
|
|||
|
|
self._view:GetChild('n82').visible = false
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
function M:Show()
|
|||
|
|
SettingView.Show(self)
|
|||
|
|
self:showSettingOption()
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 显示设置界面按钮
|
|||
|
|
function M:showSettingOption()
|
|||
|
|
local btn_back = self._view:GetChild('btn_back')
|
|||
|
|
if btn_back ~= nil then
|
|||
|
|
btn_back.onClick:Set(
|
|||
|
|
function()
|
|||
|
|
local room = DataManager.CurrenRoom
|
|||
|
|
local ispanguangzhe = room.self_player.seat == 0
|
|||
|
|
local tip_owner = '您是否退出房间?\n(退出房间后房间将解散)'
|
|||
|
|
local tip = '您是否退出房间?'
|
|||
|
|
local tipStr = ''
|
|||
|
|
if room.agent then
|
|||
|
|
tipStr = '您是否返回?'
|
|||
|
|
else
|
|||
|
|
tipStr =
|
|||
|
|
(not ispanguangzhe and room.owner_id == room.self_player.self_user.account_id) and tip_owner or tip
|
|||
|
|
end
|
|||
|
|
local _curren_msg = MsgWindow.new(self._root_view, tipStr, MsgWindow.MsgMode.OkAndCancel)
|
|||
|
|
_curren_msg.onOk:Add(
|
|||
|
|
function()
|
|||
|
|
-- 如果游戏已经开始,是旁观者发出退出协议,否则的话不能离开
|
|||
|
|
-- 如果没开始,发出退出协议
|
|||
|
|
-- 不用考虑回放,回放不会显示返回按钮
|
|||
|
|
local state = self.__checkMainViewState()
|
|||
|
|
local _gamectr = ControllerManager.GetController(GameController)
|
|||
|
|
if state > 0 and state < 3 then
|
|||
|
|
if ispanguangzhe then
|
|||
|
|
ViewUtil.ShowModalWait(self._root_view)
|
|||
|
|
_gamectr:LevelRoom(
|
|||
|
|
function(res)
|
|||
|
|
ViewUtil.CloseModalWait()
|
|||
|
|
if res.ReturnCode == 0 then
|
|||
|
|
ViewManager.ChangeView(ViewManager.View_Lobby)
|
|||
|
|
else
|
|||
|
|
ViewUtil.ErrorTip(res.ReturnCode)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
)
|
|||
|
|
else
|
|||
|
|
ViewUtil.ErrorTip(nil, '房间已开始,无法退出游戏。')
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
ViewUtil.ShowModalWait(self._root_view)
|
|||
|
|
_gamectr:LevelRoom(
|
|||
|
|
function(res)
|
|||
|
|
ViewUtil.CloseModalWait()
|
|||
|
|
if res.ReturnCode == 0 then
|
|||
|
|
ViewManager.ChangeView(ViewManager.View_Lobby)
|
|||
|
|
else
|
|||
|
|
ViewUtil.ErrorTip(res.ReturnCode)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
)
|
|||
|
|
_curren_msg:Show()
|
|||
|
|
end
|
|||
|
|
)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
return M
|