| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495 |
- local UIArtifactReforgeView = require("UIArtifactTips/UIArtifactReforgeView_Generate")
- local IconItemCtr = require "Common.IconItemCtr"
- local pageToggleData = {}
- local transCost
- function UIArtifactReforgeView:OnAwake(data)
- self.controller = require("UIArtifactTips/UIArtifactReforgeCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIArtifactReforgeView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SKILL_EQUIP_REFORGE_SUCCESS, self, self.ReforgeSuccess)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.DIAMOND_CHANGED, self, self.RefreshCost)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SKILL_EQUIP_SHIFT_REFRESH, self, self.TransSuccess)
- end
- function UIArtifactReforgeView:FillContent(data, uiBase)
- self.uiBase = uiBase
- local gameObject = self.uiBase:GetRoot()
- if gameObject ~= nil then
- self.gameObject = gameObject
- self.transform = gameObject.transform
- end
- self:InitGenerate(self.transform, data)
- self:Init()
- end
- function UIArtifactReforgeView:Init()
- local costStr = GlobalConfig.Instance:GetConfigStrValue(342)
- transCost = CommonUtil.DeserializeGlobalStrToNumberTable(costStr)
- self.fX_UI_ShenQi_01.uIParticle:PlayCachedParticalSystem(false)
- self.reforgeBox:SetActive(false)
- self.transBox:SetActive(false)
- self.mask:SetActive(false)
- self.selectedName:SetActive(false)
- self.slotIconItem:SetActive(false)
- self.transItem1Name:SetActive(false)
- self.transItem1:SetActive(false)
- self.transItem2Name:SetActive(false)
- self.transItem2:SetActive(false)
- -- self.unselected:SetActive(true)
- self.unselected.text.text.text = I18N.T("ArtifactReforgeDsc01")
- self:InitGrid()
- self.toggleGroup.toggleGroup:SetAllTogglesOff()
- self:RefreshCost()
- end
- function UIArtifactReforgeView:ReforgeSuccess(newSkillEquip)
- self.controller:SetCurSelectedIdx()
- self:ShowSelectedSkillEquip()
- self.fX_UI_ShenQi_01.uIParticle:PlayCachedParticalSystem(true)
- self.mask:SetActive(true)
- if self.delayShowTimer then
- self.delayShowTimer:Stop()
- self.delayShowTimer = nil
- end
- if not self.delayShowTimer then
- self.delayShowTimer = Timer.New(function()
- self:ShowReward(newSkillEquip)
- self.mask:SetActive(false)
- self:OnToggleSwitch()
- self.scrollview.loopGridView:RefreshAllShownItem()
- end, 2.5)
- end
- if not self.delayShowTimer.running then
- self.delayShowTimer:Start()
- end
- end
- function UIArtifactReforgeView:ShowReward(newSkillEquip)
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_SKILL_EQUIP_ADD_LIST, {{newSkillEquip.cfgId, 1, newSkillEquip.starLv}})
- end
- function UIArtifactReforgeView:InitGrid()
- self.scrollview.loopGridView:InitGridView(0, function(gridView, itemIndex, row, column)
- return self:GetItemByRowColumn(gridView, itemIndex, row, column)
- end, nil)
- end
- function UIArtifactReforgeView:OnToggleSwitch(idx)
- self.controller:RefrshShowDatas(pageToggleData.toggleDefaultIndex)
- self.reforgeBox:SetActive(pageToggleData.toggleDefaultIndex == 1)
- self.transBox:SetActive(pageToggleData.toggleDefaultIndex == 2)
- self:RefreshCurrency()
- self.btnArtifactReforge.number.text.text = 0
- self.fX_UI_ShenQi_01.uIParticle:PlayCachedParticalSystem(false)
- if pageToggleData.toggleDefaultIndex == 1 then
- self.unselected.text.text.text = I18N.T("ArtifactReforgeDsc01")
- self.btnArtifactReforge.text.uILocalizeScript:SetContent("BtnReforge")
- self.mask:SetActive(false)
- self.selectedName:SetActive(false)
- self.slotIconItem:SetActive(false)
- local cfgData = ManagerContainer.CfgMgr:GetItemById(Enum.ItemIds.Diamond)
- if cfgData.Icon and cfgData.Icon ~= '' then
- self.btnArtifactReforge.icon.image.enabled = false
- CommonUtil.LoadIcon(self, cfgData.Icon, function (sprite)
- self.btnArtifactReforge.icon.image.sprite = sprite
- self.btnArtifactReforge.icon.image.enabled = true
- end, 'ItemIcon1')
- end
- elseif pageToggleData.toggleDefaultIndex == 2 then
- self.TransUnselected.TransTips.text.text = I18N.T("ArtifactTransDsc01")
- self.btnArtifactReforge.text.uILocalizeScript:SetContent("BtnArtifactTransfer")
- self.transItem1Name:SetActive(false)
- self.transItem1:SetActive(false)
- self.transItem2Name:SetActive(false)
- self.transItem2:SetActive(false)
- local cfgData = ManagerContainer.CfgMgr:GetItemById(Enum.ItemIds.SkillEquipTransItem)
- if cfgData.Icon and cfgData.Icon ~= '' then
- self.btnArtifactReforge.icon.image.enabled = false
- CommonUtil.LoadIcon(self, cfgData.Icon, function (sprite)
- self.btnArtifactReforge.icon.image.sprite = sprite
- self.btnArtifactReforge.icon.image.enabled = true
- end, 'ItemIcon1')
- end
- end
- local loopGridView = self.scrollview.loopGridView
- local length = self.controller:GetShowDataLength()
- loopGridView:SetListItemCount(length, false)
- loopGridView:RefreshAllShownItem()
- end
- function UIArtifactReforgeView:RefreshCurrency()
- local cfgData, num
- if pageToggleData.toggleDefaultIndex == 1 then
- cfgData = ManagerContainer.CfgMgr:GetItemById(Enum.ItemIds.Diamond)
- num = CommonUtil.GetOwnResCountByItemId(Enum.ItemIds.Diamond)
- elseif pageToggleData.toggleDefaultIndex == 2 then
- cfgData = ManagerContainer.CfgMgr:GetItemById(Enum.ItemIds.SkillEquipTransItem)
- num = CommonUtil.GetOwnResCountByItemId(Enum.ItemIds.SkillEquipTransItem)
- end
- self.currencyIcon.image.enabled = false
- CommonUtil.LoadIcon(self, cfgData.Icon, function (sprite)
- self.currencyIcon.image.sprite = sprite
- self.currencyIcon.image.enabled = true
- end, 'CurrencyIcon')
- self.currencyNum.text.text = CommonUtil.FormatNumber(num)
- end
- function UIArtifactReforgeView:GetItemByRowColumn(gridView, itemIndex, row, column)
- local showData = self.controller:GetShowData(itemIndex)
- local item = nil
- if showData then
- item = gridView:NewListViewItem("IconItem")
- item.gameObject.name = itemIndex
- local itemlua = CommonUtil.BindGridViewItem2Lua(self, "IconItem", item.gameObject)
- CommonUtil.UpdateItemPrefab(self, itemlua, showData, Enum.ItemIEnterType.Bag, self, self.OnItemClick, itemIndex)
- itemlua.selected:SetActive(showData.reforgeSelected)
- else
- item = gridView:NewListViewItem('IconEmptyItem')
- end
- return item
- end
- function UIArtifactReforgeView:OnItemClick(button, params)
- local idx = params[2]
- if pageToggleData.toggleDefaultIndex == 1 then
- local oldIdx = self.controller:SetCurSelectedIdx(idx + 1)
- self:RefreshSelectedSkillEquipShow(oldIdx)
- elseif pageToggleData.toggleDefaultIndex == 2 then
- local result, oldIdx,newIdx = self.controller:SetTransSelected(idx + 1)
- if result > 0 then
- if result == 1 then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("ArtifactTransUnFull02")
- elseif result == 2 then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("ArtifactTransUnFull03")
- elseif result == 3 then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("ArtifactTransUnFull04")
- end
- return
- end
- self:RefreshTransSelectedSkillEquipShow(oldIdx)
- end
- end
- function UIArtifactReforgeView:RefreshSelectedSkillEquipShow(oldIdx)
- if oldIdx then
- local oldItemLua = self:GetSkillEquipItemByIdx(oldIdx)
- if oldItemLua then
- oldItemLua.selected:SetActive(false)
- end
- end
- local curIdx = self.controller:GetCurSelecteIdx()
- if curIdx then
- local curItemLua = self:GetSkillEquipItemByIdx(curIdx)
- curItemLua.selected:SetActive(true)
- end
- self:ShowSelectedSkillEquip()
- end
- function UIArtifactReforgeView:ShowSelectedSkillEquip()
- local curIdx = self.controller:GetCurSelecteIdx()
- self.selectedName:SetActive(curIdx ~= nil)
- self.slotIconItem:SetActive(curIdx ~= nil)
- -- self.unselected:SetActive(curIdx == nil)
- self.unselected.text.text.text = curIdx == nil and I18N.T("ArtifactReforgeDsc01") or I18N.T("ArtifactReforgeDsc02")
- if curIdx then
- local skillEquipData = self.controller:GetShowData(curIdx - 1)
- if skillEquipData then
- IconItemCtr:SetData(self, self.slotIconItem, skillEquipData, Enum.ItemIEnterType.Bag)
- local cfgData = ManagerContainer.CfgMgr:GetArtifactCfgDataByCfgId(skillEquipData.cfgId)
- self.selectedName.text.text = I18N.T(cfgData.Name)
- end
- end
- self:RefreshCost()
- end
- function UIArtifactReforgeView:RefreshTransSelectedSkillEquipShow(oldIdx)
- if oldIdx then
- local oldItemLua = self:GetSkillEquipItemByIdx(oldIdx)
- if oldItemLua then
- oldItemLua.selected:SetActive(false)
- end
- end
- local leftSelectedIdx, rightSelectedIdx = self.controller:GetTransSelectedIdx()
- if leftSelectedIdx then
- local curItemLua = self:GetSkillEquipItemByIdx(leftSelectedIdx)
- if curItemLua then
- curItemLua.selected:SetActive(true)
- end
- end
- if rightSelectedIdx then
- local curItemLua = self:GetSkillEquipItemByIdx(rightSelectedIdx)
- if curItemLua then
- curItemLua.selected:SetActive(true)
- end
- end
- self:ShowTransSelectedSkillEquip()
- end
- function UIArtifactReforgeView:ShowTransSelectedSkillEquip()
- LogHRWarning("ShowTransSelectedSkillEquip")
- local leftSelectedIdx, rightSelectedIdx = self.controller:GetTransSelectedIdx()
- self.transItem1Name:SetActive(leftSelectedIdx ~= nil)
- self.transItem1:SetActive(leftSelectedIdx ~= nil)
- self.transItem2Name:SetActive(rightSelectedIdx ~= nil)
- self.transItem2:SetActive(rightSelectedIdx ~= nil)
- if leftSelectedIdx then
- local skillEquipData = self.controller:GetShowData(leftSelectedIdx - 1)
- if skillEquipData then
- IconItemCtr:SetData(self, self.transItem1, skillEquipData, Enum.ItemIEnterType.Bag)
- local cfgData = ManagerContainer.CfgMgr:GetArtifactCfgDataByCfgId(skillEquipData.cfgId)
- self.transItem1Name.text.text = I18N.T(cfgData.Name)
- end
- end
- if rightSelectedIdx then
- local skillEquipData = self.controller:GetShowData(rightSelectedIdx - 1)
- if skillEquipData then
- IconItemCtr:SetData(self, self.transItem2, skillEquipData, Enum.ItemIEnterType.Bag)
- local cfgData = ManagerContainer.CfgMgr:GetArtifactCfgDataByCfgId(skillEquipData.cfgId)
- self.transItem2Name.text.text = I18N.T(cfgData.Name)
- end
- end
- self:RefreshTransCost()
- end
- function UIArtifactReforgeView:GetSkillEquipItemByIdx(idx)
- local item = self.scrollview.loopGridView:GetShownItemByItemIndex(idx - 1)
- if item then
- local itemlua = CommonUtil.GetBindGridViewItem2Lua(self, "IconItem", item.gameObject)
- return itemlua
- end
- end
- local lackRes
- function UIArtifactReforgeView:RefreshCost()
- lackRes = {}
- local curIdx = self.controller:GetCurSelecteIdx()
- if not curIdx then
- self.btnArtifactReforge.number.text.text = 0
- return
- end
- local skillEuipData = self.controller:GetShowData(curIdx - 1)
- if skillEuipData then
- local cfgData = ManagerContainer.CfgMgr:GetArtifactCfgDataByCfgId(skillEuipData.cfgId)
- local cost = cfgData.ReforgeCost
- if cost then
- for i = 1, 1 do
- local cst = cost[i]
- if cst then
- local cfgData = ManagerContainer.CfgMgr:GetItemById(cst[1])
- if cfgData then
- -- self.btnArtifactReforge.icon.image.enabled = false
- local ownNum = CommonUtil.GetOwnResCountByItemId(cst[1])
- -- if cfgData.Icon and cfgData.Icon ~= '' then
- -- CommonUtil.LoadIcon(self, cfgData.Icon, function (sprite)
- -- self.btnArtifactReforge.icon.image.sprite = sprite
- -- self.btnArtifactReforge.icon.image.enabled = true
- -- end, 'ItemIcon'..i)
- -- end
- if ownNum < cst[2] then
- lackRes = {cst[1], true}
- self.btnArtifactReforge.number.text.text = string.format(Constant.PinkColorText, cst[2])
- else
- lackRes = {cst[1], false}
- self.btnArtifactReforge.number.text.text = cst[2]
- end
- else
- self.btnArtifactReforge.number.text.text = 0
- end
- end
- end
- end
- end
- end
- function UIArtifactReforgeView:RefreshTransCost()
- lackRes = {}
- local leftSelectedIdx, rightSelectedIdx = self.controller:GetTransSelectedIdx()
- if not leftSelectedIdx then
- self.btnArtifactReforge.number.text.text = 0
- return
- end
- local leftData = self.controller:GetShowData(leftSelectedIdx - 1)
- local maxStarLv = leftData.maxStarLv
- for i = 1, #transCost do
- if maxStarLv == tonumber(transCost[i][1]) then
- local key = tonumber(transCost[i][2])
- local num = tonumber(transCost[i][3])
- local cfgData = ManagerContainer.CfgMgr:GetItemById(key)
- if cfgData then
- -- self.btnArtifactReforge.icon.image.enabled = false
- local ownNum = CommonUtil.GetOwnResCountByItemId(key)
- -- if cfgData.Icon and cfgData.Icon ~= '' then
- -- CommonUtil.LoadIcon(self, cfgData.Icon, function (sprite)
- -- self.btnArtifactReforge.icon.image.sprite = sprite
- -- self.btnArtifactReforge.icon.image.enabled = true
- -- end, 'ItemIcon'..i)
- -- end
- if ownNum < num then
- lackRes = {key, true}
- self.btnArtifactReforge.number.text.text = string.format(Constant.PinkColorText, num)
- else
- lackRes = {key, false}
- self.btnArtifactReforge.number.text.text = num
- end
- else
- self.btnArtifactReforge.number.text.text = 0
- end
- end
- end
- end
- function UIArtifactReforgeView:TransSuccess()
- local oldLeftData, oldRightData = self.controller:GetOldLeftAndRightData()
- if not oldLeftData or not oldRightData then return end
- IconItemCtr:SetData(self, self.iconItem1, oldLeftData, Enum.ItemIEnterType.Bag)
- IconItemCtr:SetData(self, self.iconItem2, oldRightData, Enum.ItemIEnterType.Bag)
- self.uITransSuccess:SetActive(true)
- end
- function UIArtifactReforgeView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UIArtifactReforgeView:AddUIEventListener()
- CommonUtil.CreateToggleMouduleOnlyBtns(self, pageToggleData, self.toggleGroup, 1, self.OnToggleSwitch)
- self.uiBase:AddButtonEventListener(self.btnBack.button, self, self.OnCloseClick)
- self.uiBase:AddButtonEventListener(self.btnArtifactPool.button, self, self.OnPoolClick)
- self.uiBase:AddButtonEventListener(self.btnArtifactReforge.button, self, self.OnReforgeClick)
- self.uiBase:AddButtonEventListener(self.btnInfo.button, self, self.OnClickPlayRuleBtn)
- self.uiBase:AddButtonEventListener(self.reforgeBox.bg.button, self, self.OnReforgeBoxClick)
- self.uiBase:AddButtonEventListener(self.transBox.bg1.button, self, self.OnClickLeft)
- self.uiBase:AddButtonEventListener(self.transBox.bg2.button, self, self.OnClickRight)
- end
- function UIArtifactReforgeView:OnClickPlayRuleBtn()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPlayRule, {'PlayExplainTitle', "ArtifactReforgeExplain"})
- end
- function UIArtifactReforgeView:OnCloseClick()
- ManagerContainer.LuaUIMgr:OpenSourceUI(self)
- end
- function UIArtifactReforgeView:OnPoolClick()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIArtifactPool)
- end
- function UIArtifactReforgeView:OnReforgeClick()
- if pageToggleData.toggleDefaultIndex == 1 then
- local curIdx = self.controller:GetCurSelecteIdx()
- if not curIdx then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("ArtifactReforgeChoose")
- return
- end
- if lackRes[2] then
- CommonUtil.ItemNotEnoughHandle(lackRes[1], Enum.UIPageName.UIArtifactReforge)
- return
- end
- local data = {"SkillEquipReforgeTips", nil, nil, self, self.OnSure}
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINoticeTips, data)
- elseif pageToggleData.toggleDefaultIndex == 2 then
- local leftSelectedIdx, rightSelectedIdx = self.controller:GetTransSelectedIdx()
- if not leftSelectedIdx or not rightSelectedIdx then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("ArtifactTransChoose")
- return
- end
- if lackRes[2] then
- CommonUtil.ItemNotEnoughHandle(lackRes[1], Enum.UIPageName.UIArtifactReforge)
- return
- end
- local data = {"SkillEquipTransTips", nil, nil, self, self.OnSure}
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINoticeTips, data)
- end
-
- end
- function UIArtifactReforgeView:OnSure()
- if pageToggleData.toggleDefaultIndex == 1 then
- self.controller:SendReforgeReq()
- elseif pageToggleData.toggleDefaultIndex == 2 then
- self.controller:SendTransReq()
- end
- end
- function UIArtifactReforgeView:OnReforgeBoxClick()
- local curIdx = self.controller:GetCurSelecteIdx()
- if not curIdx then return end
- self.controller:SetCurSelectedIdx()
- self:RefreshSelectedSkillEquipShow(curIdx)
- self:ShowSelectedSkillEquip()
- end
- function UIArtifactReforgeView:OnClickLeft()
- local leftSelectedIdx, rightSelectedIdx = self.controller:GetTransSelectedIdx()
- if not leftSelectedIdx then return end
- self.controller:ClearLeftTransSelectedIdx()
- self:RefreshTransSelectedSkillEquipShow(leftSelectedIdx)
- end
- function UIArtifactReforgeView:OnClickRight()
- local leftSelectedIdx, rightSelectedIdx = self.controller:GetTransSelectedIdx()
- if not rightSelectedIdx then return end
- self.controller:ClearRightTransSelectedIdx()
- self:RefreshTransSelectedSkillEquipShow(rightSelectedIdx)
- end
- function UIArtifactReforgeView:OnSubClose(path)
- self.super.OnSubClose(self, path)
- local target = CommonUtil.ParseUITargetPath(self, path)
- if target == nil then
- return
- end
- if target == self.uITransSuccess then
- self:OnToggleSwitch()
- self.scrollview.loopGridView:RefreshAllShownItem()
- end
- end
- function UIArtifactReforgeView:OnHide()
- end
- function UIArtifactReforgeView:OnShow(data)
- self.controller:SetData(data)
- end
- function UIArtifactReforgeView:OnClose()
- self.scrollview.loopGridView:Dispose()
- if self.delayShowTimer then
- self.delayShowTimer:Stop()
- self.delayShowTimer = nil
- end
- end
- function UIArtifactReforgeView:OnDispose()
- self.controller:OnDispose()
- end
- return UIArtifactReforgeView
|