miduo_client/Assets/ManagedResources/~Lua/Modules/Expedition/View/MonsterCampFormationInfo.lua

260 lines
11 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

----- 远征怪节点弹窗 -----
local this = {}
--传入父脚本模块
local parent
--传入特效层级
local sortingOrder=0
--item容器
local itemList = {}
local heroListGo = {}
local waveId = 0 --当前层
local curType = 1 --当前试炼类型
local configData = {} --当前层的数据表
local data = {} --当前试炼的数据
local rewardData = {} --当前层的奖励
local freeTime = 0
local buyTime = 0
local itemId = 0
local costNum = 0
local storeDataId = 0
local roleConfig=ConfigManager.GetConfig(ConfigName.RoleConfig)
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
function this:InitComponent(gameObject)
this.spLoader = SpriteLoader.New()
this.titleText=Util.GetGameObject(gameObject,"TitleText"):GetComponent("Text")
this.power = Util.GetGameObject(gameObject, "Power/Value"):GetComponent("Text")
--滚动条根节点
this.root = Util.GetGameObject(gameObject, "Root")
for i = 1, 6 do
heroListGo[i] = Util.GetGameObject(gameObject, "RoleGrid/Bg"..i.."/Hero"..i)
Util.GetGameObject(gameObject, "RoleGrid/Bg"..i):GetComponent("Image").sprite = this.spLoader:LoadSprite(CardPosImageName[i])
end
this.backBtn=Util.GetGameObject(gameObject,"BackBtn")
this.sureBtn=Util.GetGameObject(gameObject,"sureBtn")
this.fightBtn=Util.GetGameObject(gameObject,"sureBtn/fightBtn")
this.fightBtnText=Util.GetGameObject(this.fightBtn,"Text"):GetComponent("Text")
this.fightBtnIcon=Util.GetGameObject(this.fightBtn,"Icon"):GetComponent("Image")
this.fightBtnNum=Util.GetGameObject(this.fightBtn,"IconNum"):GetComponent("Text")
this.fightBtn.gameObject:SetActive(true)
this.returnLook=Util.GetGameObject(gameObject,"returnLook")
this.returnLook.gameObject:SetActive(false)
this.tip = Util.GetGameObject(gameObject,"tip"):GetComponent("Text")
Util.GetGameObject(gameObject, "RoleGrid/FrontImage"):GetComponent("Image").sprite = this.spLoader:LoadSprite("bd_xinqianpai_zh")
Util.GetGameObject(gameObject, "RoleGrid/BehindImage"):GetComponent("Image").sprite = this.spLoader:LoadSprite("bd_xinhoupai_zh")
this.returnLook:GetComponent("Image").sprite = this.spLoader:LoadSprite("s_silingshilian_huifanganniu_zh")
Util.GetGameObject(gameObject, "Power"):GetComponent("Image").sprite = this.spLoader:LoadSprite("t_tongyong-zhanli_zh")
end
function this:BindEvent()
Util.AddClick(this.sureBtn, function()
this:BtnClickEvent()
end)
-- Util.AddClick(this.returnLook, function()
-- --faxieyi
-- local tempData = {}
-- NetManager.GetRePlayData(curType,waveId,function(msg)
-- tempData = msg.userRank
-- if not tempData or #tempData < 1 then
-- PopupTipPanel.ShowTip("无通关记录!")
-- else
-- UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.FourElementReturnLook,waveId,curType,tempData)
-- end
-- end)
-- end)
Util.AddClick(this.backBtn, function()
parent:ClosePanel()
Game.GlobalEvent:DispatchEvent(GameEvent.MonsterCamp.UpdatePanel)
end)
end
function this:BtnClickEvent()
local x = function()
NetManager.SweepDemonRequest(waveId,false,function(msg)
UIManager.OpenPanel(UIName.RewardItemPopup,msg.Drop,1,function()
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.MONSTERCAMP_BATTLENUM, 1)
Game.GlobalEvent:DispatchEvent(GameEvent.MonsterCamp.UpdatePri)
this:SetIcon()
CheckRedPointStatus(RedPointType.EpicExplore_MoppingUp)
end)
end)
end
if waveId == MonsterCampManager.monsterWave - 1 then
LogGreen(freeTime..buyTime)
if freeTime <=0 and buyTime <= 0 then
PopupTipPanel.ShowTip("今日已无扫荡次数!")
return
end
if freeTime <= 0 then
if BagManager.GetItemCountById(itemId) < costNum then
PopupTipPanel.ShowTip(string.format(Language[10298], itemConfig[itemId].Name))
return
end
MsgPanel.ShowTwo(string.format("是否花费%s%s购买一次扫荡次数",costNum,itemConfig[itemId].Name),function() end,function()
ShopManager.RequestBuyShopItem(SHOP_TYPE.FUNCTION_SHOP,storeDataId,1,function()
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.MONSTERCAMP_BUY_BATTLENUM, 1)
x()
end)
end,"取消","确定")
else
x()
end
elseif (waveId == MonsterCampManager.monsterWave) then
-- if data.canFightTime > 0 then
UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.MONSTER_CAMP)
parent:ClosePanel()
-- else
-- PopupTipPanel.ShowTip("今日已无可挑战层数!")
-- end
else
parent:ClosePanel()
end
end
function this:AddListener()
end
function this:RemoveListener()
end
function this:SetIcon()
freeTime = MonsterCampManager.GetCanBattleCount()
buyTime = MonsterCampManager.GetCanBuyBattleCount()
storeDataId,itemId,costNum = MonsterCampManager.MonsterCampGetCost()
Util.SetGray(this.sureBtn,false)
this.fightBtnIcon.gameObject:SetActive(false)
this.fightBtnNum.gameObject:SetActive(false)
this.sureBtn:GetComponent("Image").sprite = this.spLoader:LoadSprite("r_hero_button_002")
this.tip.text = "奖励"
if waveId == MonsterCampManager.monsterWave - 1 then
if freeTime > 0 then
this.fightBtnText.text = string.format("<color=#%s>%s</color>","17232A","免费扫荡")
else
this.fightBtnIcon.gameObject:SetActive(true)
this.fightBtnNum.gameObject:SetActive(true)
this.fightBtnIcon.sprite = this.spLoader:LoadSprite(GetResourcePath(itemConfig[itemId].ResourceID))
local color = 0
if BagManager.GetItemCountById(itemId) < costNum then
color = "E71515"
else
color = "17232A"
end
this.fightBtnNum.text =string.format("<color=#%s>%s</color>",color,costNum)
this.fightBtnText.text = string.format("<color=#%s>%s</color>",color,"扫荡")
if buyTime < 1 then
Util.SetGray(this.sureBtn,true)
end
end
elseif (waveId == MonsterCampManager.monsterWave) then
this.sureBtn:GetComponent("Image").sprite = this.spLoader:LoadSprite("r_hero_button_001")
this.fightBtnText.text = string.format("<color=#%s>%s</color>","17232A","挑 战")
else
this.fightBtnText.text =string.format("<color=#%s>%s</color>","17232A","确定")
end
end
function this:OnShow(_parent,...)
parent=_parent
sortingOrder = _parent.sortingOrder
--不定参中包含的不定参 _args[1]为面板类型 _args[2]之后(包括)为打开面板后传入的不定参
local args = {...}
waveId = args[1]
configData = ConfigManager.GetConfigData(ConfigName.FloodConfig,waveId)
this:SetIcon()
rewardData = configData.RewardShow
this:FormationAdapter()
end
-- 编队数据匹配
function this:FormationAdapter()
this.titleText.text = string.format("%s层",configData.Id)
this.power.text = configData.Force
local bossTeaminfo = ConfigManager.GetConfigData(ConfigName.MonsterGroup,configData.Monster).Contents[1]
for i = 1, #heroListGo do
if (bossTeaminfo[i]) and bossTeaminfo[i] > 0 then
heroListGo[i].transform.parent:GetComponent("Image").sprite= this.spLoader:LoadSprite("t_chengyuankuang_kuang")
this.SetCardSingleData(heroListGo[i],bossTeaminfo[i],i)
heroListGo[i]:SetActive(true)
else
heroListGo[i]:SetActive(false)
end
end
ResetItemView(this.root,this.root.transform,itemList,5,1,sortingOrder,false,rewardData)
end
function this.OnSortingOrderChange()
for i = 1, #heroListGo do
Util.AddParticleSortLayer(heroListGo[i], self.sortingOrder - sortingOrder)
end
sortingOrder = self.sortingOrder
end
--设置单个上阵英雄信息
function this.SetCardSingleData(o,monsterId, _pos)
local yuanImage=Util.GetGameObject(o,"yuanImage")
yuanImage:SetActive(false)
local hp = Util.GetGameObject(o,"hpProgress")
hp:SetActive(false)
local rage = Util.GetGameObject(o,"rageProgress")
rage:SetActive(false)
local monsterconfig = ConfigManager.GetConfigData(ConfigName.MonsterConfig, monsterId)
local heroConfig = ConfigManager.GetConfigData(ConfigName.HeroConfig, monsterconfig.MonsterId)
local bg=Util.GetGameObject(o,"Bg1"):GetComponent("Image")
-- bg.sprite = this.spLoader:LoadSprite(GetHeroCardStarBg[monsterconfig.Star])
local fg=Util.GetGameObject(o,"Bg2"):GetComponent("Image")
-- fg.sprite = this.spLoader:LoadSprite(GetHeroCardStarFg[monsterconfig.Star])
-- local live=Util.GetGameObject(o,"Mask/Live")
local lv=Util.GetGameObject(o,"lv/Text"):GetComponent("Text")
lv.text=monsterconfig.Level
local pro=Util.GetGameObject(o,"Pro/Image"):GetComponent("Image")
pro.sprite= this.spLoader:LoadSprite(GetProStrImageByProNum(heroConfig.PropertyName))
local starGrid=Util.GetGameObject(o,"StarGrid")
SetCardStars(starGrid,monsterconfig.Star)
local name=Util.GetGameObject(o,"Name/Text"):GetComponent("Text")
name.text=heroConfig.ReadingName
local live = Util.GetGameObject(o, "Mask/icon"):GetComponent("RawImage")
live.transform.rotation=Vector3.New(0,0,0)
local liveName = GetResourcePath(heroConfig.Live)
local roleConfig = ConfigManager.GetConfigData(ConfigName.RoleConfig, heroConfig.Id)
local scale = roleConfig.play_liveScale
local livePos = Vector3.New(roleConfig.offset[1], roleConfig.offset[2]+300, 0)
live.texture = CardRendererManager.GetSpineTexture(_pos, liveName, Vector3.one * scale, livePos, true)
live.transform.localScale = Vector3.one
live.transform.localPosition = Vector3.zero
if heroConfig.Toward==2 then
SetHEeroLiveToward(live,1)
end
local zs = Util.GetGameObject(o, "zs")
local zsName = GetHeroCardStarZs[monsterconfig.Star]
if zsName == "" then
zs:SetActive(false)
else
zs:SetActive(true)
zs:GetComponent("Image").sprite = this.spLoader:LoadSprite(zsName)
end
local effect = Util.GetGameObject(o,"UI_Effect_jinkuang_KaPai")
effect.gameObject:SetActive(monsterconfig.Star > 9)
SetHeroFormationFlyEffect(o,this.spLoader,effect,monsterconfig.Star,sortingOrder + 1)
Util.SetParticleSortLayer(effect.gameObject, sortingOrder + 1)
end
function this:OnClose()
sortingOrder = 0
rewardData = {}
end
function this:OnDestroy()
sortingOrder = 0
this.spLoader:Destroy()
end
return this