require("LuaUtil") require("TextUtil") EquipSuitPage = {} local isInit = false local enableTime = 0 local refreshTime = 0 local needRefreshMat = false local showingPage = 1 local suitLvTab = null local minLvTab = null local selectEquip = null local type1Value = 0 local type1Step = 1 local type2Value = 0 local type2Step = 5 local fairActAttrTab = {} local fairActAttrIdx = {} local fairActCnt = {1,2,3} local godActAttrTab = {} local godActAttrIdx = {} local godActCnt = {1,2,3} local maxStep1 = 1 local maxStep2 = 8 local minStep2 = 5 function EquipSuitPage.Start() tipText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5441}"); --EquipSuitPage.InitSuitTag(); --btnLvup:GetComponent("Button").onClick:AddListener(EquipSuitPage.OnLevelUpClick) --btnHelp:GetComponent("Button").onClick:AddListener(EquipSuitPage.OnHelpClick) end function EquipSuitPage.Update() if(isInit == false) then refreshTime = CS.UnityEngine.Time.time if(CS.UnityEngine.Time.time - enableTime > 0.1) then EquipSuitPage.InitAfterEnable() isInit = true end end if(CS.UnityEngine.Time.time - refreshTime > 0.1) then refreshTime = CS.UnityEngine.Time.time matSlot:GetComponent("CommonItemMaterialSlot"):UpdateNum() end end function EquipSuitPage.OnDisable() isInit = false enableTime = CS.UnityEngine.Time.time btnLvup:GetComponent("Button").onClick:RemoveListener(EquipSuitPage.OnLevelUpClick) btnHelp:GetComponent("Button").onClick:RemoveListener(EquipSuitPage.OnHelpClick) end function EquipSuitPage.OnEnable() isInit = false enableTime = CS.UnityEngine.Time.time EquipSuitPage.InitSuitTag(); btnLvup:GetComponent("Button").onClick:AddListener(EquipSuitPage.OnLevelUpClick) btnHelp:GetComponent("Button").onClick:AddListener(EquipSuitPage.OnHelpClick) end function EquipSuitPage.InitAfterEnable() EquipSuitPage.ShowEnableEquips(); end function EquipSuitPage.RefreshEquips() local equipEnhanceRoot = CS.EquipEnhanceRoot.Instance() if (equipEnhanceRoot:RefreshItems() == true) then EquipSuitPage.ShowEnableEquips(); end end function EquipSuitPage.ShowEnableEquips() local equipEnhanceRoot = CS.EquipEnhanceRoot.Instance() equipEnhanceRoot:InitAllEquipList(); local selectedArry = null; if(equipEnhanceRoot._AllEquipList.Count ~= 0) then selectedArry = equipEnhanceRoot._AllEquipList:GetRange(0,1); end equipEnhanceRoot._EquipContainer:InitSelectContent(equipEnhanceRoot._AllEquipList, selectedArry,EquipSuitPage.OnSelectEquip) end function EquipSuitPage.OnSelectEquip(selectItem) btnTagOn1:SetActive(true); btnTagOff1:SetActive(false); btnTagOn2:SetActive(false); btnTagOff2:SetActive(true); showingPage = 1 selectEquip = selectItem local commonItemTab = TabMan.GetCommonItemByID(selectEquip.DataID, 0); local Table_EquipSuitLvUp = require("Table_EquipSuitLvUp") suitLvTab = null minLvTab = null for i,v in ipairs(Table_EquipSuitLvUp) do if(v.Profession == CS.ObjManager.Instance.MainPlayer.BaseAttr.Profession and v.Quality == commonItemTab.Quality) then if (minLvTab == null) then minLvTab = v end if(v.Level == selectEquip:GetEquipLevel()) then suitLvTab = v end end end if (suitLvTab == null) then tipPanel:SetActive(true); lvupPanel:SetActive(false) tipText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5441}"); EquipSuitPage.RefreshItemLevelUp(1) else require("LuaDistributesEquipSuitGetInfoReq") local reqInfo = { equipGuid = selectEquip.Guid} LuaDistributesEquipSuitGetInfoReq.SendPacket(reqInfo) end --test local packet = {} packet['suitValue1'] = 150 packet['suitValue2'] = 50 packet['suitClass1'] = 1 packet['suitClass2'] = 2 packet['fairyAttrId'] = {1000002,1010102,3} packet['fairyClassID'] = {-1,1,2} packet['fairyEquipCnt'] = {1,2,3} packet['godAttrId'] = {2000002,2010102,4} packet['godClassID'] = {1,-1,2} packet['godEquipCnt'] = {2,3,4} --require("LuaDistributesEquipSuitInfoRet") --LuaDistributesEquipSuitInfoRet.SendPacket(packet) --EquipSuitPage.InitEquipSuitInfo(packet) end function EquipSuitPage.InitEquipSuitInfo(equipSuitInfo) needRefreshMat = true suitLvTab = null type1Value = equipSuitInfo.suitValue1 type2Value = equipSuitInfo.suitValue2 type1Step = equipSuitInfo.suitClass1 type2Step = equipSuitInfo.suitClass2 print("equipSuitInfo.suitValue2:"..equipSuitInfo.suitValue2) print("equipSuitInfo.suitClass2:"..equipSuitInfo.suitClass2) fairActAttrTab = equipSuitInfo.fairyAttrId fairActAttrIdx = equipSuitInfo.fairyClassID fairActCnt = equipSuitInfo.fairyEquipCnt godActAttrTab = equipSuitInfo.godAttrId godActAttrIdx = equipSuitInfo.godClassID godActCnt = equipSuitInfo.godEquipCnt if(type1Step < 0) then type1Step = 0 end type2Step = equipSuitInfo.suitClass2 if(type2Step < 0) then type2Step = 0 end print("EquipSuitPage.InitEquipSuitInfo") print("type2Step"..","..type2Step) local commonItemTab = TabMan.GetCommonItemByID(selectEquip.DataID, 0); local Table_EquipSuitLvUp = require("Table_EquipSuitLvUp") for i,v in ipairs(Table_EquipSuitLvUp) do if(v.Profession == CS.ObjManager.Instance.MainPlayer.BaseAttr.Profession and v.Quality == commonItemTab.Quality and v.Level == selectEquip:GetEquipLevel()) then suitLvTab = v end end if (suitLvTab == null) then tipPanel:SetActive(true); lvupPanel:SetActive(false) tipText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5441}"); else local stepCnt = #suitLvTab.SuitTypeStep minStep2 = 0 for i=1,stepCnt,1 do if(suitLvTab.SuitTypeStep[i] < 100) then if( suitLvTab.SuitTypeStep[i] > 0) then maxStep1 = i end else if(minStep2 == 0) then minStep2 = i end if suitLvTab.SuitTypeStep[i] > 0 then maxStep2 = i end end end tipPanel:SetActive(false); lvupPanel:SetActive(true) if(showingPage == 1) then EquipSuitPage.OnBtnTagOff1() else EquipSuitPage.OnBtnTagOff2() end EquipSuitPage.RefreshItemLevelUp(showingPage) end print("minStep2"..","..minStep2) end function EquipSuitPage.RefreshItemLevelUp(pageIdx) equipSlot:GetComponent("CommonItemEquipItem"):InitItem(selectEquip) if(suitLvTab == null) then EquipSuitPage.ShowAttrs(pageIdx); return; end if(pageIdx == 1) then tipPanel:SetActive(false); lvupPanel:SetActive(true) local nextStep = type1Step + 1 if(nextStep > maxStep1) then nextStep = maxStep1 end matSlot:GetComponent("CommonItemMaterialSlot"):InitMaterial(suitLvTab.StepItem[nextStep],1) matSlot:GetComponent("CommonItemMaterialSlot"):UpdateNum() if(type1Step == maxStep1) then curStepText:GetComponent("Text").text = ""; nextStepText:GetComponent("Text").text = ""; valueText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5457}"); valueProcess:GetComponent("Slider").value = 1; else curStepText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5447}", type1Step); nextStepText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5447}", nextStep); valueText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5445}", type1Value, suitLvTab.StepValue[nextStep]); valueProcess:GetComponent("Slider").value = type1Value / suitLvTab.StepValue[nextStep] end else if(type1Step == 0) then tipPanel:SetActive(true); lvupPanel:SetActive(false) tipText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5443}"); EquipSuitPage.ShowAttrs(pageIdx); else tipPanel:SetActive(false); lvupPanel:SetActive(true) local nextStepTab = type2Step + minStep2 if(nextStepTab > maxStep2) then nextStepTab = maxStep2 else if(nextStepTab < minStep2) then nextStepTab = minStep2 end end matSlot:GetComponent("CommonItemMaterialSlot"):InitMaterial(suitLvTab.StepItem[nextStepTab],1) matSlot:GetComponent("CommonItemMaterialSlot"):UpdateNum() print("type2Step"..","..type2Step) if(type2Step + minStep2 - 1 == maxStep2) then curStepText:GetComponent("Text").text = ""; nextStepText:GetComponent("Text").text = ""; valueText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5458}"); valueProcess:GetComponent("Slider").value = 1; else curStepText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5447}", type2Step); nextStepText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5447}", nextStepTab-minStep2+1); valueText:GetComponent("Text").text = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5446}", type2Value, suitLvTab.StepValue[nextStepTab]); valueProcess:GetComponent("Slider").value = type2Value / suitLvTab.StepValue[nextStepTab] end end end EquipSuitPage.ShowAttrs(pageIdx); end function EquipSuitPage.InitSuitTag() --btnTagOn1:GetComponent("Button").onClick:AddListener(onBtn1Click) btnTagOff1:GetComponent("Button").onClick:AddListener(EquipSuitPage.OnBtnTagOff1) --btnTagOn2:GetComponent("Button").onClick:AddListener(onBtn3Click) btnTagOff2:GetComponent("Button").onClick:AddListener(EquipSuitPage.OnBtnTagOff2) end function EquipSuitPage.OnBtnTagOn1() end function EquipSuitPage.OnBtnTagOff1() btnTagOn1:SetActive(true); btnTagOff1:SetActive(false); btnTagOn2:SetActive(false); btnTagOff2:SetActive(true); showingPage = 1 bgSuit21:SetActive(false); bgSuit22:SetActive(false); bgSuit23:SetActive(false); EquipSuitPage.RefreshItemLevelUp(1) end function EquipSuitPage.OnBtnTagOn2() end function EquipSuitPage.OnBtnTagOff2() btnTagOn1:SetActive(false); btnTagOff1:SetActive(true); btnTagOn2:SetActive(true); btnTagOff2:SetActive(false); showingPage = 2 bgSuit21:SetActive(true); bgSuit22:SetActive(true); bgSuit23:SetActive(true); EquipSuitPage.RefreshItemLevelUp(2) end function EquipSuitPage.ShowAttrs(pageIdx) if(suitLvTab == null) then local suitAttrUI1 = suitAttr1:GetComponent("LuaUIBehaviour") suitAttrUI1:CallScriptFuncAtPath("EquipSuitAttr.ShowAttrIdx", "", false, "", "","") local suitAttrUI2 = suitAttr2:GetComponent("LuaUIBehaviour") suitAttrUI2:CallScriptFuncAtPath("EquipSuitAttr.ShowAttrIdx", "", false, "", "","") local suitAttrUI3 = suitAttr3:GetComponent("LuaUIBehaviour") suitAttrUI3:CallScriptFuncAtPath("EquipSuitAttr.ShowAttrIdx", "", false, "", "","") return end if(pageIdx == 1) then EquipSuitPage.ShowStepAttr(pageIdx, fairActAttrTab[1], 1, fairActCnt[1], suitAttr1); EquipSuitPage.ShowStepAttr(pageIdx, fairActAttrTab[2], 2, fairActCnt[2], suitAttr2); EquipSuitPage.ShowStepAttr(pageIdx, fairActAttrTab[3], 3, fairActCnt[3], suitAttr3); else EquipSuitPage.ShowStepAttr(pageIdx, godActAttrTab[1], 1, godActCnt[1], suitAttr1); EquipSuitPage.ShowStepAttr(pageIdx, godActAttrTab[2], 2, godActCnt[2], suitAttr2); EquipSuitPage.ShowStepAttr(pageIdx, godActAttrTab[3], 3, godActCnt[3], suitAttr3); end end function EquipSuitPage.ShowStepAttr(pageIdx, suitAttrID, suitAttrClassIdx, suitEquipCnt, attrPanel) local Table_EquipSuitAttr = require("Table_EquipSuitAttr") local suitAttrTab = Table_EquipSuitAttr[suitAttrID] local stepStr = CS.GCGame.Utils.NumStr(type1Step); local isAct1 = true if(suitAttrTab == null) then isAct1 = false if(pageIdx == 1) then suitAttrTab = Table_EquipSuitAttr[minLvTab.SuitAttrID[1]] if(suitAttrTab.SuitStep > 10) then t2 = suitAttrTab.SuitStep%10; t1 = suitAttrTab.SuitStep - t2; s1 = CS.GCGame.Utils.NumStr(t1); s2 = CS.GCGame.Utils.NumStr(t2); print("step:"..suitAttrTab.SuitStep) print("t1"..t1..",t2"..t2) print("s1"..s1..",s2"..s2) stepStr = s1..s2; else stepStr = CS.GCGame.Utils.NumStr(suitAttrTab.SuitStep); end if(type1Step == 0) then stepStr = CS.GCGame.Utils.NumStr(1); end else suitAttrTab = Table_EquipSuitAttr[minLvTab.SuitAttrID[minStep2]] if(suitAttrTab.SuitStep > 10) then t2 = suitAttrTab.SuitStep%10; t1 = suitAttrTab.SuitStep - t2; s1 = CS.GCGame.Utils.NumStr(t1); s2 = CS.GCGame.Utils.NumStr(t2); print("step:"..suitAttrTab.SuitStep) print("t1"..t1..",t2"..t2) print("s1"..s1..",s2"..s2) stepStr = s1..s2; else stepStr = CS.GCGame.Utils.NumStr(suitAttrTab.SuitStep); end if(type2Step == 0) then stepStr = CS.GCGame.Utils.NumStr(1); end end else if(pageIdx == 1) then if(suitAttrTab.SuitStep > 10) then t2 = suitAttrTab.SuitStep%10; t1 = suitAttrTab.SuitStep - t2; s1 = CS.GCGame.Utils.NumStr(t1); s2 = CS.GCGame.Utils.NumStr(t2); print("step:"..suitAttrTab.SuitStep) print("t1"..t1..",t2"..t2) print("s1"..s1..",s2"..s2) stepStr = s1..s2; else stepStr = CS.GCGame.Utils.NumStr(suitAttrTab.SuitStep); end else if(suitAttrTab.SuitStep > 10) then t2 = suitAttrTab.SuitStep%10; t1 = suitAttrTab.SuitStep - t2; s1 = CS.GCGame.Utils.NumStr(t1); s2 = CS.GCGame.Utils.NumStr(t2); print("step:"..suitAttrTab.SuitStep) print("t1"..t1..",t2"..t2) print("s1"..s1..",s2"..s2) stepStr = s1..s2; else stepStr = CS.GCGame.Utils.NumStr(suitAttrTab.SuitStep); end end end if(suitAttrTab == null) then return end local suitAttrUI1 = attrPanel:GetComponent("LuaUIBehaviour") --local name1 = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5448}", stepStr, suitAttrTab.EquipRequreNum[suitAttrClassIdx]); local name1 = CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{5448}", stepStr, suitAttrTab.EquipRequreNum[suitAttrClassIdx]); local attr1 = TextUtil.GetAttrValueName(suitAttrTab.AttrType[suitAttrClassIdx], -1, suitAttrTab.AttrValue[suitAttrClassIdx]); local exAttr1 = null if(suitAttrTab.ExAttrType[suitAttrClassIdx] > 0) then exAttr1 = TextUtil.GetAttrValueName(suitAttrTab.ExAttrType[suitAttrClassIdx], -1, suitAttrTab.ExAttrValue[suitAttrClassIdx]); end local newExAttr1 = null if(suitAttrTab.NewExAttrType[suitAttrClassIdx] > 0) then newExAttr1 = TextUtil.GetAttrValueName(suitAttrTab.NewExAttrType[suitAttrClassIdx], -1, suitAttrTab.NewExAttrValue[suitAttrClassIdx]); end local equipCnt1 = suitEquipCnt..'/'..suitAttrTab.EquipRequreNum[suitAttrClassIdx] suitAttrUI1:CallScriptFuncAtPath("EquipSuitAttr.ShowAttrIdx", name1, isAct1, attr1, exAttr1, newExAttr1, equipCnt1) end function EquipSuitPage.OnLevelUpClick() --CS.GUIData.AddNotifyData("#{5444}") matSlot:GetComponent("CommonItemMaterialSlot"):UpdateNum() if(matSlot:GetComponent("CommonItemMaterialSlot"):IsMaterialEnough() == false) then CS.GUIData.AddNotifyData("#{5444}") return end if(showingPage == 1) then local nextStep = type1Step + 1 if(nextStep > maxStep1) then nextStep = maxStep1 end if(type1Value >= suitLvTab.StepValue[nextStep]) then CS.GUIData.AddNotifyData("#{5442}") return end else local nextStep = type2Step + 1 if(nextStep > maxStep2) then nextStep = maxStep2 end if(nextStep > type1Step) then CS.GUIData.AddNotifyData("#{5453}") return end if(type2Value >= suitLvTab.StepValue[nextStep]) then CS.GUIData.AddNotifyData("#{5442}") return end end require("LuaDistributesEquipSuitLevelUpReq") local reqInfo = { equipGuid = selectEquip.Guid, suitType = showingPage-1} LuaDistributesEquipSuitLevelUpReq.SendPacket(reqInfo) end function EquipSuitPage.OnHelpClick() CS.MessageHelpLogic.ShowHelpMessage(69); end