163 lines
3.2 KiB
Plaintext
163 lines
3.2 KiB
Plaintext
autoImport("PvpTeamData");
|
|
|
|
PvpRoomData = class("PvpRoomData");
|
|
|
|
local Room_MaxIndex = 3;
|
|
|
|
function PvpRoomData:ctor(guid)
|
|
self.guid = guid
|
|
|
|
self.teamList = {};
|
|
for i=1,Room_MaxIndex do
|
|
self.teamList[i] = PvpTeamData.new();
|
|
self.teamList[i]:SetIndex(i);
|
|
end
|
|
|
|
self.endtime = 0;
|
|
end
|
|
|
|
function PvpRoomData:SetData(roomBriefInfo)
|
|
self.state = roomBriefInfo.state
|
|
self.roomid = roomBriefInfo.roomid
|
|
self.zoneid = roomBriefInfo.zoneid
|
|
self.name = roomBriefInfo.name;
|
|
self.player_num = roomBriefInfo.player_num;
|
|
self.type = roomBriefInfo.type;
|
|
|
|
for i=1,Room_MaxIndex do
|
|
local tmData = self.teamList[i];
|
|
local memberNum = roomBriefInfo["num"..i];
|
|
tmData:SetMemberNum(memberNum);
|
|
end
|
|
end
|
|
|
|
function PvpRoomData:SetRoomDetailInfo(roomDetailInfo)
|
|
local matchTeamDatas = roomDetailInfo.team_datas;
|
|
|
|
for i=1,Room_MaxIndex do
|
|
self.teamList[i]:ResetMembersData();
|
|
end
|
|
for i=1,#matchTeamDatas do
|
|
local matchTeamData = matchTeamDatas[i];
|
|
local index = matchTeamData.index;
|
|
|
|
local teamData = self.teamList[index];
|
|
if(teamData)then
|
|
teamData:SetMatchTeamData(matchTeamData);
|
|
end
|
|
end
|
|
end
|
|
|
|
function PvpRoomData:RemoveTeamByGuid(guid)
|
|
for i=Room_MaxIndex,1,-1 do
|
|
local teamData = self.teamList[i];
|
|
helplog("RemoveTeamByGuid", guid, teamData.id);
|
|
if(teamData.id == guid)then
|
|
teamData:ResetMembersData();
|
|
end
|
|
end
|
|
end
|
|
|
|
function PvpRoomData:GetTeamMemberNumByPos(pos)
|
|
local teamData = self.teamList[pos];
|
|
if(teamData)then
|
|
return teamData.memberNum;
|
|
end
|
|
end
|
|
|
|
function PvpRoomData:GetRoomTeamList()
|
|
return self.teamList;
|
|
end
|
|
|
|
function PvpRoomData:GetRoomTeamDataByPos(pos)
|
|
return self.teamList[pos]
|
|
end
|
|
|
|
function PvpRoomData:IsFull()
|
|
local isFull = true;
|
|
for i=1,Room_MaxIndex do
|
|
local teamData = self.teamList[i];
|
|
if(teamData.memberNum == 0)then
|
|
isFull = false;
|
|
break;
|
|
end
|
|
end
|
|
return isFull;
|
|
end
|
|
|
|
function PvpRoomData:SetIndex(index)
|
|
self.index = index;
|
|
end
|
|
|
|
function PvpRoomData:GetZoneString()
|
|
if self.zoneid then
|
|
local zoneid = self.zoneid % 10000
|
|
return ChangeZoneProxy.Instance:ZoneNumToString(zoneid)
|
|
end
|
|
|
|
return 0
|
|
end
|
|
|
|
function PvpRoomData:GetTeamByGuid(guid)
|
|
for i=1,#self.teamList do
|
|
if(self.teamList[i].id == guid)then
|
|
return self.teamList[i];
|
|
end
|
|
end
|
|
end
|
|
|
|
function PvpRoomData:SetEndTime(endtime)
|
|
self.endtime = endtime;
|
|
end
|
|
|
|
function PvpRoomData:GetEndTime()
|
|
return self.endtime;
|
|
end
|
|
|
|
--TestSet
|
|
function PvpRoomData:TestSetRoomDetail()
|
|
local matchTeamData1 =
|
|
{
|
|
guid = 100001,
|
|
zoneid = 1,
|
|
name = "TestTeam1",
|
|
index = 2,
|
|
members =
|
|
{
|
|
{
|
|
guid = 1000011,
|
|
name = "Test_Member1",
|
|
datas =
|
|
{
|
|
{type = SessionTeam_pb.EMEMBERDATA_PROFESSION, value = 13},
|
|
{type = SessionTeam_pb.EMEMBERDATA_PORTRAIT, value = 56005},
|
|
{type = SessionTeam_pb.EMEMBERDATA_BASELEVEL, value = 13},
|
|
},
|
|
},
|
|
{
|
|
guid = 1000012,
|
|
name = "Test_Member2",
|
|
datas =
|
|
{
|
|
{type = SessionTeam_pb.EMEMBERDATA_PROFESSION, value = 13},
|
|
{type = SessionTeam_pb.EMEMBERDATA_PORTRAIT, value = 56005},
|
|
{type = SessionTeam_pb.EMEMBERDATA_BASELEVEL, value = 41},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
local testServerData =
|
|
{
|
|
guid = self.guid,
|
|
name = self.name,
|
|
team_datas = {
|
|
matchTeamData1,
|
|
},
|
|
};
|
|
|
|
self:SetRoomDetailInfo(testServerData);
|
|
end
|
|
|
|
function PvpRoomData:OnRemove()
|
|
end
|