dezhou_client/lua_probject/extend_project/extend/zipai/weimaque/ExtendConfig.lua

286 lines
9.8 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

local EXTEND_MODEL_NAME = ...
local EXGameInfo = import('.EXGameInfo')
local EXMainView = import('.EXMainView')
local EXGameController = import('.EXGameController')
local EXRoomConfig = import('.EXRoomConfig')
local EXPlayBackView = import('.EXPlayBackView')
local explayer = import('.EXPlayer')
local checkHuxi = import('.checkHuxi')
local ExtendConfig = {}
local M = ExtendConfig
function ExtendConfig.new()
setmetatable(M, {__index = IExtendConfig})
local self = setmetatable({}, {__index = M})
self.class = 'ExtendConfig'
self.extend_id = 50
self._viewMap = {}
self._viewMap[ViewManager.View_Main] = EXMainView
self._viewMap[ViewManager.View_PlayBack] = EXPlayBackView
return self
end
--卸载资源
function M:UnAllAssets()
UIPackage.RemovePackage('extend/zipai/weimaque/ui/Info_Poker_WeiMaQue')
self:UnAssets()
end
--卸载资源
function M:UnAssets()
UIPackage.RemovePackage('extend/zipai/weimaque/ui/Extend_Poker_WeiMaQue')
ResourcesManager.UnLoadGroup('WeiMaQue_ZP')
end
local _gameInfo = nil
function M:GetGameInfo()
if not _gameInfo then
_gameInfo = EXGameInfo.new()
end
return _gameInfo
end
local _ctr_game = nil
function M:GetGameController()
if _ctr_game == nil then
_ctr_game = EXGameController.new()
end
return _ctr_game
end
function M:FillRoomConfig(room, _config)
room.room_config = EXRoomConfig.new(_config)
end
function M:FillRoomData(s2croom)
local room = DataManager.CurrenRoom
local reload = s2croom['reload']
local _tableInfo = s2croom['tableInfo']
local _config = _tableInfo['config']
room.room_config = EXRoomConfig.new(_config)
local playerList = _tableInfo['playerData']
room.curren_round = _tableInfo['round']
printlog("jefe s2croom")
pt(s2croom)
for i = 1, #playerList do
local _jp = playerList[i]
local p = explayer.new()
p.seat = _jp['seat']
local online = _jp['online']
p.line_state = online
p.ready = _jp['ready'] == 1 and true or false
local pid = _jp['aid']
if (DataManager.SelfUser.account_id == pid) then
room.self_player = p
p.self_user = DataManager.SelfUser
else
local u = User.new()
u.account_id = pid
p.self_user = u
u.nick_name = _jp['nick']
u.head_url = _jp['portrait']
u.sex = _jp['sex']
end
p.entrust = _jp['entrust']
p.self_user.host_ip = _jp['ip']
p.self_user.location = Location.new(_jp['pos'] or '')
p.cur_hp = _jp['cur_hp'] or 0
p.total_hp = _jp['total_hp'] or 0
if _jp['hp_info'] then
p.cur_hp = _jp.hp_info.cur_hp
p.total_hp = _jp.hp_info.total_hp
end
room:AddPlayer(p)
end
-- 如果重写了player类就需要传第二个参数
-- self:FillPlayerData(playerList, explayer)
if (reload) then
local _reloadInfo = s2croom['reloadInfo']
local _hand_card = _reloadInfo['hand_card']
local _card_list = _reloadInfo['hand_px_data']
local _discard = _reloadInfo['discard']
room.discard = _discard
-- local _index = _reloadInfo["typeface"]
-- if _index ==1 then
-- room.change_card_display = "2_"
-- else
-- room.change_card_display = "1_"
-- end
room.self_player.handcard_list = _hand_card
room.self_player.card_list = {}
if _card_list ~= nil and #_card_list > 0 then
for i = 1, #_card_list do
local data = {}
data.card_item = _card_list[i].card
data.index_X = _card_list[i].X
data.index_Y = _card_list[i].Y
room.self_player.card_list[#room.self_player.card_list + 1] = data
end
end
local active_seat = _reloadInfo['active_seat']
local bank_seat = _reloadInfo['banker_seat']
local playing = _reloadInfo['playing']
local _info_list = _reloadInfo['info_list']
local last_outcard_seat = _reloadInfo['last_outcard_seat']
room.left_count = _reloadInfo['left_card']
room.banker_seat = bank_seat
room.curren_outcard_seat = _reloadInfo['curren_outcard_seat']
local show_card = _reloadInfo['show_card']
if active_seat ~= 0 and show_card ~= 0 then
local player = room:GetPlayerBySeat(active_seat)
player.DiceCard = show_card
end
room.last_outcard_seat = last_outcard_seat
room.playing = playing
room.suoCard = _reloadInfo['suoCard']
room.showtinglist = _reloadInfo['tinglist']
room.tinglist = _reloadInfo['ting']
room.score_pool = _reloadInfo['score_pool']
for i = 1, #_info_list do
local tem = _info_list[i]
local playerid = tem['playerid']
local p = room:GetPlayerById(playerid)
local outcard_list = {}
local tlist = tem['outcard_list']
--local exlist = tem["ex_outcard_list"]
for i=1,#tlist do
local c = tlist[i]
-- local chu = exlist[i]
local t = {}
t.card = c
--t.ischu = chu or 0
t.ischu = 0
table.insert( outcard_list, t )
end
p.outcard_list = outcard_list
p.total_score = tem['score']
p.hu_xi = tem['hu_xi']
p.hand_left_count = tem['card_count']
p.cur_hp = tem['cur_hp'] or 0
p.total_hp = tem['total_hp'] or 0
if tem['hp_info'] then
p.cur_hp = tem.hp_info.cur_hp
p.total_hp = tem.hp_info.total_hp
end
p.entrust = tem['entrust']
p.sishou = tem['sishou']
local opcard = tem['opcard']
for k = 1, #opcard do
local op = opcard[k]
local fz = {}
fz.type = op.type
local data = {}
for j = 1, #op.opcard do
data[#data + 1] = op.opcard[j]
end
fz.opcard = data
fz.card = op.card
fz.active_card = op.card
fz.huxi = op.huxi
p.fz_list[#p.fz_list + 1] = fz
end
-- if p.seat == room.self_player.seat then
-- local handcards = room.self_player.handcard_list
-- for i=1,#handcards do
-- if checkHuxi:checkCard(handcards[i],handcards,3) then
-- local fz = {}
-- fz.card = handcards[i]
-- fz.type = RB_FZType.Kan
-- fz.active_card = handcards[i]
-- fz.from_seat = room.self_player.seat
-- fz.opcard ={handcards[i],handcards[i]}
-- if fz.card % 100 == 2 or fz.card % 100 == 7 or fz.card == 110 or fz.card == 210 then
-- fz.huxi = 4
-- else
-- fz.huxi = 3
-- end
-- if #room.self_player.fz_list>0 then
-- local count =0
-- for j=1,#room.self_player.fz_list do
-- if room.self_player.fz_list[j].card == handcards[i] then
-- count = count+1
-- end
-- end
-- if count ==0 then
-- room.self_player.fz_list[#room.self_player.fz_list+1] = fz
-- end
-- else
-- room.self_player.fz_list[#room.self_player.fz_list+1] = fz
-- end
-- end
-- end
-- end
if not playing and room.curren_round > 0 then
self.GetGameController():PlayerReady()
end
end
end
end
function M:FillPlayBackData(pd_data)
local room = DataManager.CurrenRoom
local _tableInfo = pd_data['info']
local _config = _tableInfo['config']
room.room_id = _tableInfo.roomid
room.room_config = EXRoomConfig.new(_config)
room.owner_id = _config['ownerid']
local active_seat = _tableInfo['active_seat']
local bank_seat = _tableInfo['banker_seat']
room.left_count = _tableInfo['left_card']
room.banker_seat = bank_seat
room.curren_turn_seat = active_seat
room.curren_round = _tableInfo['round']
local _info_list = _tableInfo['playerData']
for i = 1, #_info_list do
local _jp = _info_list[i]
local p = room:NewPlayer()
p.seat = _jp['seat']
local online = _jp['online']
p.line_state = online
p.ready = _jp['ready'] == 1 and true or false
local pid = _jp['aid']
if pid == DataManager.SelfUser.account_id then
room.self_player = p
end
local u = User.new()
u.account_id = pid
p.self_user = u
u.nick_name = _jp['nick']
u.head_url = _jp['portrait']
u.sex = _jp['sex']
p.self_user.host_ip = p.self_user.host_ip
local _hand_card = _jp['hand_card']
p.hand_card = _hand_card
if room.self_player ~= nil and p.seat == room.self_player.seat then
room.self_player.handcard_list = _hand_card
end
p.total_score = _jp['score']
p.hand_left_count = #_hand_card
p.cur_hp = _jp['cur_hp'] or 0
p.total_hp = _jp['total_hp'] or 0
if _jp['hp_info'] then
p.cur_hp = _jp.hp_info.cur_hp
p.total_hp = _jp.hp_info.total_hp
end
room:AddPlayer(p)
end
room.cmdList = pd_data['cmdList']
room.result = pd_data['result']
end
return M