miduo_client/Assets/ManagedResources/~Lua/Modules/FormFightMatch/MatchFight.lua

233 lines
7.6 KiB
Lua
Raw Normal View History

2021-04-21 13:12:04 +08:00
---
2020-05-09 13:31:21 +08:00
--- Generated by EmmyLua(https://github.com/EmmyLua)
--- Created by aaa.
--- DateTime: 2019/8/30 15:40
---
local MatchFight = quick_class("MatchFight")
local bloodyTask = ConfigManager.GetConfig(ConfigName.BloodyBattleTask)
function MatchFight:ctor(parent, root)
self.root = root
self:InitComponent(root)
self:BindEvent()
end
function MatchFight:InitComponent(root)
2021-04-21 13:12:04 +08:00
self.spLoader = SpriteLoader.New()
2020-05-09 13:31:21 +08:00
self.btnFormat = Util.GetGameObject(root, "flag/btnFormat")
self.btnMatch = Util.GetGameObject(root, "rewardRoot/btnMatch")
-- 积分
self.score = Util.GetGameObject(root, "flag/Img/score"):GetComponent("Text")
-- 段位
self.level = Util.GetGameObject(root, "flag/KingLevel"):GetComponent("Text")
-- 结束时间
self.endTime = Util.GetGameObject(root, "flag/timeInfo/time"):GetComponent("Text")
self.roleList = {}
self.demoList = {}
self.btnBox = {}
-- 下标对应的任务ID
self.missionIdList = {}
-- 5个编队数据
for i = 1, 5 do
self.roleList[i] = Util.GetGameObject(root, "flag/roleList/head_" .. i)
end
-- 3只异妖
for j = 1, 3 do
self.demoList[j] = Util.GetGameObject(root, "flag/demonList/deomon_" .. j)
end
self.scoreProgress = Util.GetGameObject(root, "rewardBg/score/progress"):GetComponent("Slider")
self.scoreText = Util.GetGameObject(root, "rewardBg/score/progress/Text"):GetComponent("Text")
self.scoreReward = Util.GetGameObject(root, "rewardBg/score/reward")
-- 每日任务的奖励
for k = 1, 4 do
self.btnBox[k] = Util.GetGameObject(root, "rewardRoot/rewardBg/daily/bxoRoot/reward_" .. k)
end
end
function MatchFight:BindEvent()
Util.AddClick(self.btnMatch, function ()
-- 校验编队
local checkPass = FormationManager.CheckFormationValid(FormationTypeDef.BLOODY_BATTLE_ATTACK)
if not checkPass then
2021-03-02 16:53:12 +08:00
PopupTipPanel.ShowTip(Language[10748])
2020-05-09 13:31:21 +08:00
return
end
UIManager.OpenPanel(UIName.MatchingPopup)
end)
Util.AddClick(self.btnFormat, function ()
UIManager.OpenPanel(UIName.FormationPanel, FORMATION_TYPE.BLOODY_BATTLE)
end)
Util.AddClick(self.scoreReward, function ()
UIManager.OpenPanel(UIName.MapFightRewardPanel)
end)
for i = 1, 4 do
Util.AddClick(self.btnBox[i], function ()
local info = TaskManager.GetTypeTaskInfo(TaskTypeDef.BloodyTask, self.missionIdList[i])
--local taskData = TaskManager.GetTypeTaskList(TaskTypeDef.BloodyTask)
--for i = 1, #taskData do
-- Log("MissionId == " .. taskData[i].missionId .. "Mission State == " .. taskData[i].state)
--end
if info.state == 0 then
2021-03-02 16:53:12 +08:00
PopupTipPanel.ShowTip(Language[10749])
2020-05-09 13:31:21 +08:00
elseif info.state == 1 then
NetManager.TakeMissionRewardRequest(TaskTypeDef.BloodyTask, info.missionId, function (msg)
UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1, function()
TaskManager.SetTypeTaskState(TaskTypeDef.BloodyTask, info.missionId)
self:ShowDailyRreward()
end)
end)
elseif info.state == 2 then
2021-03-02 16:53:12 +08:00
PopupTipPanel.ShowTip(Language[10750])
2020-05-09 13:31:21 +08:00
end
end)
end
end
function MatchFight:OnShow()
self.root:SetActive(true)
-- 初始化显示
self:InitShow()
-- 请求数据
NetManager.RequestBloodyScoreRewardData(function()
-- 显示奖励
self:ShowReward()
end)
-- 显示每日任务状态
self:ShowDailyRreward()
end
function MatchFight:ReShowPanel()
-- 刷新编队数据
self:ReFreshTeamInfo()
end
-- 编队以及时间显示
---- ===================================================
function MatchFight:InitShow()
local score = MatchDataManager.myScore >= 0 and MatchDataManager.myScore or 0
2021-03-02 16:53:12 +08:00
self.score.text = Language[10751] .. score
self.level.text = Language[10752] .. MatchDataManager.GetNickNameByScore(MatchDataManager.myScore)
2020-05-09 13:31:21 +08:00
self.endTime.text = ""
local upDate = function()
-- 定时器清除后,仍然会调用一次
local serData = ActTimeCtrlManager.GetSerDataByTypeId(47)
local endTime = serData.endTime
if not self.timer then return end
if PlayerManager.serverTime > endTime then
self.endTime.text = "000000"
self.timer:Stop()
else
self.endTime.text = self:FormatTime(endTime - PlayerManager.serverTime)
end
end
if not self.timer then
self.timer = Timer.New(upDate, 1, -1 , true)
self.timer:Start()
end
end
function MatchFight:FormatTime(second)
local minute = math.floor(second / 60) % 60
local sec = second % 60
local hour = math.floor(math.floor(second - sec - minute * 60) / 3600)
return string.format("%02d%02d%02d", hour, minute, sec)
end
function MatchFight:ReFreshTeamInfo()
local teamInfo = FormationManager.GetFormationByID(FormationTypeDef.BLOODY_BATTLE_ATTACK)
for i = 1, #teamInfo.teamHeroInfos do
local roleData = teamInfo.teamHeroInfos[i]
if roleData then
self.roleList[i]:SetActive(true)
local demonData = HeroManager.GetSingleHeroData(roleData.heroId)
2021-04-21 13:12:04 +08:00
self.roleList[i]:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(demonData.heroConfig.Quality))
Util.GetGameObject(self.roleList[i], "icon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(demonData.icon)
2020-05-09 13:31:21 +08:00
end
end
for d = #teamInfo.teamHeroInfos + 1, 5 do
self.roleList[d]:SetActive(false)
end
-- 设置异妖
for j = 1, #teamInfo.teamPokemonInfos do
local demoInfo = teamInfo.teamPokemonInfos[j]
if demoInfo then
self.demoList[j]:SetActive(true)
local resId = ConfigManager.GetConfigData(ConfigName.DifferDemonsConfig, demoInfo.pokemonId).LiveIcon
2021-04-21 13:12:04 +08:00
self.demoList[j]:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetResourcePath(resId))
2020-05-09 13:31:21 +08:00
else
self.demoList[j]:SetActive(false)
end
end
for p = #teamInfo.teamPokemonInfos + 1, 3 do
self.demoList[p]:SetActive(false)
end
end
---- ===================================================
-- 赛季奖励数据显示
function MatchFight:ShowReward()
local curRewardScore = MatchDataManager.GetRewardScore()
local curStageRewardScore = MatchDataManager.GetCurStageRewardScore()
self.scoreText.text = string.format("%s/%s", curRewardScore, curStageRewardScore)
self.scoreProgress.value = curRewardScore/curStageRewardScore
end
-- 每日任务, state : 1未完成 2可领取 3已领取
function MatchFight:ShowDailyRreward()
Log("设置血战每日任务状态")
2020-05-09 13:31:21 +08:00
local taskData = TaskManager.GetTypeTaskList(TaskTypeDef.BloodyTask)
for i = 1, #taskData do
local missionId = taskData[i].missionId
local state = taskData[i].state
local doingImg = Util.GetGameObject(self.btnBox[i], "default")
local doneImg = Util.GetGameObject(self.btnBox[i], "choose")
local context = Util.GetGameObject(self.btnBox[i], "context"):GetComponent("Text")
doingImg:SetActive(state == 0)
doneImg:SetActive(state ~= 0)
Util.SetGray(doneImg, state == 2)
2021-03-02 16:53:12 +08:00
context.text = Language[10753] .. bloodyTask[missionId].TaskValue[2][1]
2020-05-09 13:31:21 +08:00
self.missionIdList[i] = missionId
end
end
function MatchFight:OnHidePanel()
self.root:SetActive(false)
if self.timer then
self.timer:Stop()
self.timer = nil
end
end
2020-06-23 18:36:24 +08:00
return MatchFight