122 lines
No EOL
4 KiB
Lua
122 lines
No EOL
4 KiB
Lua
XUiPanelFavorabilityExchangeRole = XClass(nil, "XUiPanelFavorabilityExchangeRole")
|
|
|
|
function XUiPanelFavorabilityExchangeRole:Ctor(ui, uiRoot)
|
|
self.GameObject = ui.gameObject
|
|
self.Transform = ui.transform
|
|
self.UiRoot = uiRoot
|
|
XTool.InitUiObject(self)
|
|
|
|
self.BtnCancel.CallBack = function() self:OnBtnCancelClick() end
|
|
end
|
|
|
|
|
|
-- [刷新切换角色界面]
|
|
function XUiPanelFavorabilityExchangeRole:RefreshDatas()
|
|
self:LoadDatas()
|
|
end
|
|
|
|
function XUiPanelFavorabilityExchangeRole:LoadDatas()
|
|
local characterId = self.UiRoot:GetCurrFavorabilityCharacter()
|
|
local allCharDatas = XDataCenter.CharacterManager.GetCharacterList()
|
|
local characterList = {}
|
|
for _, v in pairs(allCharDatas or {}) do
|
|
local isOwn = XDataCenter.CharacterManager.IsOwnCharacter(v.Id)
|
|
if isOwn then
|
|
table.insert(characterList, {
|
|
Id = v.Id,
|
|
TrustLv = v.TrustLv or 1,
|
|
Selected = (characterId == v.Id)
|
|
})
|
|
end
|
|
end
|
|
table.sort(characterList, function(characterA, characterB)
|
|
if characterA.TrustLv == characterB.TrustLv then
|
|
return characterA.Id < characterB.Id
|
|
end
|
|
return characterA.TrustLv > characterB.TrustLv
|
|
end)
|
|
|
|
self:UpdateCharacterList(characterList)
|
|
end
|
|
|
|
-- [刷新角色ListView]
|
|
function XUiPanelFavorabilityExchangeRole:UpdateCharacterList(charList)
|
|
if not charList then
|
|
XLog.Warning("XUiPanelFavorabilityExchangeRole:UpdateCharacterList error: charList is nil")
|
|
return
|
|
end
|
|
|
|
self.CharList = charList
|
|
|
|
if not self.DynamicTabelCharacters then
|
|
self.DynamicTabelCharacters = XDynamicTableNormal.New(self.SViewSelectRole.gameObject)
|
|
self.DynamicTabelCharacters:SetProxy(XUiGridLikeRoleItem)
|
|
self.DynamicTabelCharacters:SetDelegate(self)
|
|
end
|
|
|
|
self.DynamicTabelCharacters:SetDataSource(self.CharList)
|
|
self.DynamicTabelCharacters:ReloadDataASync()
|
|
|
|
end
|
|
|
|
-- [监听动态列表事件]
|
|
function XUiPanelFavorabilityExchangeRole:OnDynamicTableEvent(event, index, grid)
|
|
local characterId = self.UiRoot:GetCurrFavorabilityCharacter()
|
|
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
|
|
grid:Init(self.UiRoot)
|
|
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
|
|
local data = self.CharList[index]
|
|
if not data then return end
|
|
grid:OnRefresh(self.CharList[index], index)
|
|
if characterId == data.Id then
|
|
self.CurCharacter = self.CharList[index]
|
|
self.CurCharacterGrid = grid
|
|
end
|
|
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then
|
|
self.CurCharacter = self.CharList[index]
|
|
local isOwn = XDataCenter.CharacterManager.IsOwnCharacter(self.CurCharacter.Id)
|
|
if not isOwn then
|
|
XUiManager.TipMsg(CS.XTextManager.GetText("FavorabilityNotOwnChar"))
|
|
return
|
|
end
|
|
|
|
if self.CurCharacterGrid then
|
|
if self.CurCharacter then
|
|
self.CurCharacter.Selected = false
|
|
end
|
|
self.CurCharacterGrid:OnSelect()
|
|
end
|
|
|
|
self.CurCharacter.Selected = true
|
|
grid:OnSelect()
|
|
self.CurCharacterGrid = grid
|
|
self:OnChangeCharacter()
|
|
end
|
|
end
|
|
|
|
-- [换人确定按钮]
|
|
function XUiPanelFavorabilityExchangeRole:OnChangeCharacter()
|
|
if self.CurCharacter == nil then
|
|
return
|
|
end
|
|
|
|
local isOwn = XDataCenter.CharacterManager.IsOwnCharacter(self.CurCharacter.Id)
|
|
if not isOwn then
|
|
XUiManager.TipError(CS.XTextManager.GetText("FavorabilityNotOwnChar"))
|
|
return
|
|
end
|
|
|
|
self.UiRoot:SetCurrFavorabilityCharacter(self.CurCharacter.Id)
|
|
self.UiRoot:UpdateCamera(false)
|
|
self.UiRoot:CloseChangeRoleView()
|
|
end
|
|
|
|
-- [取消按钮]
|
|
function XUiPanelFavorabilityExchangeRole:OnBtnCancelClick()
|
|
local characterId = self.UiRoot:GetCurrFavorabilityCharacter()
|
|
self.UiRoot:ChangeCharacterModel(characterId)
|
|
self.UiRoot:UpdateCamera(false)
|
|
self.UiRoot:CloseChangeRoleView()
|
|
end
|
|
|
|
return XUiPanelFavorabilityExchangeRole |