284 lines
11 KiB
Lua
284 lines
11 KiB
Lua
local SmallSoldierLvInfoPanel = quick_class("SmallSoldierLvInfoPanel", BasePanel)
|
|
local itemData = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
local gemConfig = ConfigManager.GetConfig(ConfigName.GemConfigNew)
|
|
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
local lotteryConfig = ConfigManager.GetConfig(ConfigName.SoldiersLotteryConfig)
|
|
local specialConfig = ConfigManager.GetConfigData(ConfigName.SpecialConfig, 178).Value
|
|
local aaa = string.split(specialConfig, "#")
|
|
local list = {}
|
|
local isMax = false
|
|
local activityId = 0
|
|
local curLv = 0
|
|
local progress = 0
|
|
local curType = 0
|
|
local rewardConfig = nil
|
|
local isCan = false
|
|
local curConfig
|
|
local quaName = { Language[10992], Language[10349], Language[10993], Language[10994], Language[10995], Language[10996],
|
|
Language[10997], Language[10391] }
|
|
local quaColor = {
|
|
Color.New(165 / 255, 165 / 255, 165 / 255, 1),
|
|
Color.New(184 / 255, 200 / 255, 110 / 255, 1),
|
|
Color.New(139 / 255, 126 / 255, 192 / 255, 1),
|
|
Color.New(169 / 255, 84 / 255, 149 / 255, 1),
|
|
Color.New(243 / 255, 164 / 255, 79 / 255, 1),
|
|
Color.New(181 / 255, 21 / 255, 6 / 255, 1),
|
|
Color.New(255 / 255, 193 / 255, 0 / 255, 1),
|
|
Color.New(149 / 255, 178 / 255, 229 / 255, 1)
|
|
}
|
|
function SmallSoldierLvInfoPanel:InitComponent()
|
|
self.spLoader = SpriteLoader.New()
|
|
self.btn_close = Util.GetGameObject(self.gameObject, "bg/close")
|
|
Util.GetGameObject(self.gameObject, "bg/title"):GetComponent("Text").text = Language[11009]
|
|
self.info = Util.GetGameObject(self.gameObject, "bg/info"):GetComponent("Text")
|
|
self.curlv = Util.GetGameObject(self.gameObject, "bg/curLv/Text"):GetComponent("Text")
|
|
self.nextlv = Util.GetGameObject(self.gameObject, "bg/nextLv/Text"):GetComponent("Text")
|
|
self.btn_go = Util.GetGameObject(self.gameObject, "bg/upObj/Button")
|
|
Util.GetGameObject(self.gameObject, "bg/upObj/Button/Text"):GetComponent("Text").text = Language[11010]
|
|
self.btn_Text = Util.GetGameObject(self.gameObject, "bg/upObj/Button/Text"):GetComponent("Text")
|
|
self.infoGrid = Util.GetGameObject(self.gameObject, "bg/grid")
|
|
self.infoPre = Util.GetGameObject(self.gameObject, "bg/pre")
|
|
local rootHight = self.infoGrid.transform.rect.height
|
|
local width = self.infoGrid.transform.rect.width
|
|
self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.infoGrid.transform, self.infoPre,
|
|
self.Scrollbar, Vector2.New(width, rootHight), 1, 1, Vector2.New(0, 0))
|
|
self.ScrollView.moveTween.MomentumAmount = 1
|
|
self.ScrollView.moveTween.Strength = 2
|
|
self.ScrollView.elastic = false
|
|
self.upObj = Util.GetGameObject(self.gameObject, "bg/upObj")
|
|
self.costImg = Util.GetGameObject(self.gameObject, "bg/upObj/costImg"):GetComponent("Image")
|
|
self.costTxt = Util.GetGameObject(self.gameObject, "bg/upObj/costTxt"):GetComponent("Text")
|
|
self.skipObj = Util.GetGameObject(self.gameObject, "bg/skipObj")
|
|
self.btn_skip = Util.GetGameObject(self.gameObject, "bg/skipObj/skipBtn")
|
|
Util.GetGameObject(self.gameObject, "bg/skipObj/skipBtn/Text"):GetComponent("Text").text = Language[11011]
|
|
self.timeDown = Util.GetGameObject(self.gameObject, "bg/timeTxt"):GetComponent("Text")
|
|
self.skipCostImg = Util.GetGameObject(self.gameObject, "bg/skipObj/costImg"):GetComponent("Image")
|
|
self.skipCostTxt = Util.GetGameObject(self.gameObject, "bg/skipObj/Text"):GetComponent("Text")
|
|
self.curInfo = Util.GetGameObject(self.gameObject, "bg/curInfo"):GetComponent("Text")
|
|
self.nextInfo = Util.GetGameObject(self.gameObject, "bg/nextInfo"):GetComponent("Text")
|
|
end
|
|
|
|
function SmallSoldierLvInfoPanel:BindEvent()
|
|
Util.AddClick(self.btn_close, function()
|
|
self:ClosePanel()
|
|
end)
|
|
|
|
Util.AddClick(self.btn_go, function()
|
|
if isMax then
|
|
PopupTipPanel.ShowTip(Language[11012])
|
|
return
|
|
end
|
|
if isCan == false then
|
|
PopupTipPanel.ShowTip(Language[11013])
|
|
return
|
|
end
|
|
if BagManager.GetItemCountById(curConfig.Consume[1]) < curConfig.Consume[2] then
|
|
PopupTipPanel.ShowTip(BagManager.GetItemNameById(curConfig.Consume[1]) .. Language[10462])
|
|
return
|
|
end
|
|
NetManager.UpSoldierLevelRequest(1, function()
|
|
self.skipObj:SetActive(true)
|
|
self.upObj:SetActive(false)
|
|
self:ShowLeftTime()
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Solider.RefreshSoliderInfoWindow)
|
|
end)
|
|
end)
|
|
|
|
|
|
Util.AddClick(self.btn_skip, function()
|
|
NetManager.UpSoldierLevelRequest(2, function()
|
|
-- self.skipObj:SetActive(false)
|
|
-- self.upObj:SetActive(true)
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
self:OnShow()
|
|
end)
|
|
end)
|
|
end
|
|
|
|
function SmallSoldierLvInfoPanel:AddListener()
|
|
|
|
end
|
|
|
|
function SmallSoldierLvInfoPanel:RemoveListener()
|
|
|
|
end
|
|
|
|
--待功能扩展(试图打开某个状态)
|
|
function SmallSoldierLvInfoPanel:OnOpen(...)
|
|
local args = { ... }
|
|
curType = args[1]
|
|
end
|
|
|
|
function SmallSoldierLvInfoPanel:OnSortingOrderChange()
|
|
|
|
end
|
|
|
|
local itemList = {}
|
|
function SmallSoldierLvInfoPanel:OnShow()
|
|
curLv = SmallSoldierManager.level
|
|
local nextLv = curLv + 1
|
|
if nextLv > 50 then
|
|
nextLv = 50
|
|
isMax = true
|
|
end
|
|
--local
|
|
self.curlv.text = Language[10998] .. curLv
|
|
self.nextlv.text = Language[10999] .. nextLv
|
|
local qua = 0
|
|
local lotteryData = {}
|
|
|
|
curConfig = ConfigManager.GetConfigData(ConfigName.SoldiersLotteryConfig, curLv)
|
|
local nextConfig = ConfigManager.TryGetConfigData(ConfigName.SoldiersLotteryConfig, nextLv)
|
|
if nextConfig == nil then
|
|
nextConfig = curConfig
|
|
self.nextlv.text = Language[10999] .. curLv
|
|
end
|
|
|
|
local qua = 0
|
|
local priviConfig = ConfigManager.GetConfigData(ConfigName.PrivilegeTypeConfig, 2044)
|
|
self.curInfo.text = string.format(GetLanguageStrById(priviConfig.Name), priviConfig.Condition[curLv][2] / 100)
|
|
self.nextInfo.text = string.format(GetLanguageStrById(priviConfig.Name), priviConfig.Condition[nextLv][2] / 100)
|
|
for i = 1, #curConfig.Show do
|
|
local data = {}
|
|
data.leftData = {}
|
|
data.rightData = {}
|
|
|
|
local settingConfig = ConfigManager.GetConfigDataByKey(ConfigName.SoldiersSetting, "ShowQuality",
|
|
curConfig.Show[i][1])
|
|
local str = ""
|
|
if settingConfig.QualityLevel > 0 then
|
|
str = quaName[settingConfig.Quality] .. "+" .. settingConfig.QualityLevel
|
|
else
|
|
str = quaName[settingConfig.Quality]
|
|
end
|
|
data.leftData.quaStr = str
|
|
data.leftData.qua = settingConfig.Quality
|
|
data.rightData.qua = settingConfig.Quality
|
|
data.leftData.pro = curConfig.Show[i][2] / 100
|
|
data.rightData.pro = nextConfig.Show[i][2] / 100
|
|
table.insert(lotteryData, data)
|
|
end
|
|
--LogError("GetResourcePath(curConfig.Consume[1])=="..GetResourcePath(curConfig.Consume[1]).." "..curConfig.Consume[1])
|
|
--self.spLoader:LoadSprite(GetResourcePath(curConfig.Consume[1]))
|
|
if curConfig.Consume and type(curConfig.Consume[1]) ~= "userdata" then
|
|
self.costImg.gameObject:SetActive(true)
|
|
self.costTxt.gameObject:SetActive(true)
|
|
self.costImg.sprite = SetIcon(self.spLoader, curConfig.Consume[1])
|
|
self.costTxt.text = curConfig.Consume[2]
|
|
else
|
|
self.costImg.gameObject:SetActive(false)
|
|
self.costTxt.gameObject:SetActive(false)
|
|
end
|
|
self.skipObj:SetActive(SmallSoldierManager.upEndTime > 0)
|
|
self.upObj:SetActive(SmallSoldierManager.upEndTime == 0)
|
|
self.skipCostImg.sprite = SetIcon(self.spLoader, tonumber(aaa[1])) --self.spLoader:LoadSprite(GetResourcePath(tonumber(aaa[1])))
|
|
self.timeDown.text = TimeToFelaxible(curConfig.Time)
|
|
if SmallSoldierManager.upEndTime > 0 then
|
|
self:ShowLeftTime()
|
|
end
|
|
|
|
self.ScrollView:SetData(lotteryData, function(index, go)
|
|
self:SingleDataShow(go, lotteryData[index])
|
|
end, false)
|
|
|
|
if BagManager.GetItemCountById(curConfig.Soldiers[1]) >= curConfig.Soldiers[2] then
|
|
isCan = true
|
|
Util.SetGray(self.btn_go, false)
|
|
else
|
|
isCan = false
|
|
Util.SetGray(self.btn_go, true)
|
|
end
|
|
--self:CheckReward()
|
|
end
|
|
|
|
function SmallSoldierLvInfoPanel:ShowLeftTime()
|
|
--显示倒计时
|
|
if SmallSoldierManager.upEndTime > 0 then
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
local leftTime = SmallSoldierManager.upEndTime - GetTimeStamp()
|
|
--leftTime=60
|
|
if leftTime > 0 then
|
|
self.timeDown.text = TimeToFelaxible(leftTime)
|
|
local time = 0
|
|
if leftTime % 60 > 0 then
|
|
time = math.floor(leftTime / 60) + 1
|
|
else
|
|
time = math.floor(leftTime / 60)
|
|
end
|
|
self.skipCostTxt.text = time * tonumber(aaa[2])
|
|
self.timer = Timer.New(function()
|
|
self.timeDown.text = TimeToFelaxible(leftTime)
|
|
leftTime = leftTime - 1
|
|
local time = 0
|
|
if leftTime % 60 > 0 then
|
|
time = math.floor(leftTime / 60) + 1
|
|
else
|
|
time = math.floor(leftTime / 60)
|
|
end
|
|
LogError("time================================" .. time)
|
|
self.skipCostTxt.text = time * tonumber(aaa[2])
|
|
if leftTime <= 0 then
|
|
SmallSoldierManager.upEndTime = 0
|
|
SmallSoldierManager.level = SmallSoldierManager.level + 1
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
self:OnShow()
|
|
end
|
|
end, 1, -1, true)
|
|
self.timer:Start()
|
|
else
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
SmallSoldierManager.upEndTime = 0
|
|
self:OnShow()
|
|
end
|
|
end
|
|
end
|
|
|
|
function SmallSoldierLvInfoPanel:SingleDataShow(go, data)
|
|
local leftObj = Util.GetGameObject(go, "curLv")
|
|
local leftTxt = Util.GetGameObject(go, "curLv/Text"):GetComponent("Text")
|
|
local leftValue = Util.GetGameObject(go, "curLv/value"):GetComponent("Text")
|
|
local rightObj = Util.GetGameObject(go, "nextLv")
|
|
local rightTxt = Util.GetGameObject(go, "nextLv/Text"):GetComponent("Text")
|
|
leftObj:SetActive(data.leftData ~= nil)
|
|
rightObj:SetActive(data.rightData ~= nil)
|
|
|
|
if data.leftData then
|
|
leftTxt.text = data.leftData.quaStr
|
|
leftObj:GetComponent("Image").color = quaColor[data.leftData.qua]
|
|
leftValue.text = data.leftData.pro
|
|
end
|
|
if data.rightData then
|
|
rightTxt.text = data.rightData.pro
|
|
rightObj:GetComponent("Image").color = quaColor[data.rightData.qua]
|
|
end
|
|
end
|
|
|
|
--检测奖励
|
|
function SmallSoldierLvInfoPanel:CheckReward()
|
|
|
|
end
|
|
|
|
function SmallSoldierLvInfoPanel:OnClose()
|
|
|
|
end
|
|
|
|
function SmallSoldierLvInfoPanel:OnDestroy()
|
|
self.spLoader:Destroy()
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
end
|
|
|
|
return SmallSoldierLvInfoPanel
|