Files
JJBB/Assets/Project/Script/LuaScripts/UI/Lua/EquipSuit/EquipSuitPage.txt

525 lines
15 KiB
Plaintext
Raw Normal View History

2024-08-23 15:49:34 +08:00

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