| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- local UIChangeHeadCtr = class("UIChangeHeadCtr", require("UICtrBase"))
- local GetSex = function(key)
- local sex = key
- while sex >= 10 do
- sex = sex * 0.1
- end
- return math.floor(sex)
- end
- function UIChangeHeadCtr:Init(view)
- self.view = view
- end
- function UIChangeHeadCtr:SetData(data)
- self.asyncIdx = 0
- self:RefreshHeadPortraitsSort()
- if data == nil then return end
- self.data = data
- end
- function UIChangeHeadCtr:GetAsyncIdx()
- self.asyncIdx = self.asyncIdx + 1
- return self.asyncIdx
- end
- function UIChangeHeadCtr:GetData()
- return self.data
- end
- function UIChangeHeadCtr:OnDispose()
- self.data = nil
- self.view = nil
- end
- ----Custom start----
- function UIChangeHeadCtr:RefreshHeadPortraits()
- local headPortraits = {}
- local datas = ManagerContainer.CfgMgr:GetHeadPortraitDatas()
- local sex = ManagerContainer.DataMgr.UserData:GetSex()
- for key, value in pairs(datas) do
- if Constant.OpenPay or not value.NoPay then
- if GetSex(key) == sex then
- table.insert(headPortraits, {cfgId = key})
- end
- end
- end
- self.headPortraits = headPortraits
- self:RefreshHeadPortraitsSort()
- end
- function UIChangeHeadCtr:GetActiveHeadProtraitError(cfgId)
- local state = ManagerContainer.DataMgr.HeadProtraitData:GetState(cfgId)
- if state == Enum.TaskStateType.NoCompeleted then
- return 1
- elseif state == Enum.TaskStateType.Received then
- return 2
- end
- return 0
- end
- function UIChangeHeadCtr:GetSetHeadProtraitError(cfgId)
- if cfgId == ManagerContainer.DataMgr.UserData:GetUserHeadPortraitId() then
- return 1
- end
- local state = ManagerContainer.DataMgr.HeadProtraitData:GetState(cfgId)
- if state == Enum.TaskStateType.NoCompeleted then
- return 2
- elseif state == Enum.TaskStateType.CompletedAndNoReceive then
- return 3
- end
- return 0
- end
- function UIChangeHeadCtr:RefreshHeadPortraitsSort()
- if not self.headPortraits then return end
- table.sort(self.headPortraits, function(a, b)
- local stateA = ManagerContainer.DataMgr.HeadProtraitData:GetState(a.cfgId)
- local stateB = ManagerContainer.DataMgr.HeadProtraitData:GetState(b.cfgId)
- if stateA == stateB then
- return b.cfgId > a.cfgId
- else
- return stateA > stateB
- end
- end)
- end
- function UIChangeHeadCtr:GetHeadPortraits()
- if not self.headPortraits then
- self:RefreshHeadPortraits()
- end
- return self.headPortraits
- end
- ----Custom end ----
- return UIChangeHeadCtr
|