miduo_client/Assets/ManagedResources/~Lua/View/MonsterCampSingleWave.lua

296 lines
14 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 itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
MonsterCampSingleWave = {}
function MonsterCampSingleWave:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = MonsterCampSingleWave })
return b
end
--初始化组件(用于子类重写)
function MonsterCampSingleWave:InitComponent(go,_data)
self.spLoader = SpriteLoader.New()
self.Id = Util.GetGameObject(go,"bg/leftLayout/num"):GetComponent("Text")
self.power = Util.GetGameObject(go,"bg/power/Text"):GetComponent("Text")
self.hero = Util.GetGameObject(go,"bg/Hero")
self.frame=Util.GetGameObject(self.hero,"Bg1"):GetComponent("Image")
self.icon=Util.GetGameObject(self.hero, "Mask/icon"):GetComponent("RawImage")
-- self.icon=Util.GetGameObject(self.hero, "Mask/icon"):GetComponent("Image")
self.lv = Util.GetGameObject(self.hero, "lv/Text"):GetComponent("Text")
self.pro = Util.GetGameObject(self.hero, "Pro/Image"):GetComponent("Image")
self.fg = Util.GetGameObject(self.hero,"Bg2"):GetComponent("Image")
--self.starGrid = Util.GetGameObject(self.hero,"starGrid")
self.starGrid = Util.GetGameObject(self.hero,"StarGrid")
self.name=Util.GetGameObject(self.hero,"Name/Text"):GetComponent("Text")
self.reward = Util.GetGameObject(go,"bg/rewardRect")
self.fight = Util.GetGameObject(go,"bg/fight")
self.fightText = Util.GetGameObject(go,"bg/fight/Text"):GetComponent("Text")
-- self.pass = Util.GetGameObject(go,"bg/pass"):GetComponent("Image")
-- self.title = Util.GetGameObject(go,"bg/leftLayout/title"):GetComponent("Image")
self.rewardText = Util.GetGameObject(self.reward,"Text"):GetComponent("Text")
-- self.fightBtnIcon = Util.GetGameObject(self.fight,"layout/icon"):GetComponent("Image")
-- self.fightBtnNum = Util.GetGameObject(self.fight,"layout/num"):GetComponent("Text")
-- self.fightBtnText = Util.GetGameObject(self.fight,"layout/Text"):GetComponent("Text")
self.fightBtnMask = Util.GetGameObject(self.fight,"mask"):GetComponent("Image")
self.bg = Util.GetGameObject(go,"bg"):GetComponent("Image")
self.rewardGrid = Util.GetGameObject(self.reward,"grid")
self.btn=Util.GetGameObject(go,"bg/btn")
self.data = _data
self.rewardList = {}
for i = 1, self.rewardGrid.transform.childCount do
local temp = self:NewItemView(SubUIConfig.ItemView, self.rewardGrid.transform:GetChild(i-1).gameObject)
table.insert(self.rewardList,temp)
end
end
function MonsterCampSingleWave:OnOpen()
self:UpdatePrivilage()
-- self.fightBtnIcon.gameObject:SetActive(false)
-- self.fightBtnNum.gameObject:SetActive(false)
self.Id.text = ""..self.data.Id..""
self.power.text = self.data.Force
self.bg.sprite = self.spLoader:LoadSprite("s_silingshilian_renjieshiliandi")
local MonsterGroup = ConfigManager.GetConfigData(ConfigName.MonsterGroup,self.data.Monster)
local monsterConfig = ConfigManager.GetConfigData(ConfigName.MonsterConfig,MonsterGroup.Contents[1][1])
local herodata = ConfigManager.GetConfigData(ConfigName.HeroConfig,monsterConfig.MonsterId)
self:SingleHeroDataShow(monsterConfig,herodata)
self.rewardText.text = "奖励"
self.fight.gameObject:SetActive(false)
if self.data.Id < MonsterCampManager.monsterWave - 1 then
elseif self.data.Id == MonsterCampManager.monsterWave - 1 then--扫荡
self.fight.gameObject:SetActive(true)
self.fightText.text = Language[10997]
elseif self.data.Id == MonsterCampManager.monsterWave then--挑战
self.fight.gameObject:SetActive(true)
self.fightText.text = Language[10559]
elseif self.data.Id > MonsterCampManager.monsterWave then
end
self.rewardData = self.data.RewardShow
if self.rewardData and #self.rewardData then
self:InitShowReward()
self.reward.gameObject:SetActive(true)
else
self.reward.gameObject:SetActive(false)
end
-- if self.data.Id < MonsterCampManager.monsterWave then
-- self.fight.gameObject:SetActive(false)
-- self.reward.gameObject:SetActive(false)
-- else
-- self.fight.gameObject:SetActive(true)
-- self.rewardText.text = "挑战奖励"
-- self:SetIcon()
-- self.rewardData = self.data.RewardShow
-- if self.rewardData and #self.rewardData then
-- self:InitShowReward()
-- self.reward.gameObject:SetActive(true)
-- else
-- self.reward.gameObject:SetActive(false)
-- end
-- end
-- Util.AddOnceClick(self.pass.gameObject, function()
-- UIManager.OpenPanel(UIName.ExpeditionMonsterInfoPopup,EXPEDITON_POPUP_TYPE.FourElementMonster,self.trailData.fourElementType,self.data.Id)
-- end)
-- Util.AddOnceClick(self.hero, function()
-- UIManager.OpenPanel(UIName.ExpeditionMonsterInfoPopup,EXPEDITON_POPUP_TYPE.FourElementMonster,self.trailData.fourElementType,self.data.Id)
-- end)
Util.AddOnceClick(self.btn, function()
UIManager.OpenPanel(UIName.ExpeditionMonsterInfoPopup,EXPEDITON_POPUP_TYPE.FourElementMonster,self.trailData.fourElementType,self.data.Id)
end)
Util.AddOnceClick(self.fight, function()
LogGreen(self.data.Id)
local x = function()
NetManager.SweepDemonRequest(self.data.Id,function(msg)
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.MONSTERCAMP_BATTLENUM, 1)
Game.GlobalEvent:DispatchEvent(GameEvent.MonsterCamp.UpdatePri)
self:UpdatePrivilage()
UIManager.OpenPanel(UIName.RewardItemPopup,msg.Drop,1,function()
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.MONSTERCAMP_BATTLENUM, 1)
end)
end)
end
if self.data.Id == MonsterCampManager.monsterWave - 1 then--扫荡
LogGreen(self.freeTimes..self.buyTimes)
if self.freeTimes <=0 and self.buyTimes <= 0 then
PopupTipPanel.ShowTip("今日已无扫荡次数!")
return
end
LogGreen(self.itemId.." "..self.costNum)
if self.freeTimes <= 0 then
if BagManager.GetItemCountById(self.itemId) < self.costNum then
PopupTipPanel.ShowTip(string.format(Language[10298], itemConfig[self.itemId].Name))
return
end
MsgPanel.ShowTwo(string.format("是否花费%s%s购买一次扫荡次数",self.costNum,itemConfig[self.itemId].Name),function() end,function()
ShopManager.RequestBuyShopItem(SHOP_TYPE.FUNCTION_SHOP,self.storeDataId,1,function()
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.MONSTERCAMP_BUY_BATTLENUM, 1)
x()
end)
end,"取消","确定")
else
x()
end
elseif self.data.Id == MonsterCampManager.monsterWave then--挑战
UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.MONSTER_CAMP)
end
-- if self.data.Id == MonsterCampManager.monsterWave - 1 then
-- LogGreen(self.freeTimes..self.buyTimes)
-- if self.freeTimes <=0 and self.buyTimes <= 0 then
-- PopupTipPanel.ShowTip("今日已无扫荡次数!")
-- return
-- end
-- LogGreen(self.itemId.." "..self.costNum)
-- if self.freeTimes <= 0 then
-- if BagManager.GetItemCountById(self.itemId) < self.costNum then
-- PopupTipPanel.ShowTip(string.format(Language[10298], itemConfig[self.itemId].Name))
-- return
-- end
-- MsgPanel.ShowTwo(string.format("是否花费%s%s购买一次扫荡次数",self.costNum,itemConfig[self.itemId].Name),function() end,function()
-- ShopManager.RequestBuyShopItem(SHOP_TYPE.FUNCTION_SHOP,self.storeDataId,1,function()
-- PrivilegeManager.RefreshPrivilegeUsedTimes(self.trailData.buyTimeId, 1)
-- x()
-- end)
-- end,"取消","确定")
-- else
-- x()
-- end
-- elseif self.data.Id == self.trailData.monsterWave + 1 then
-- if self.trailData.canFightTime > 0 then
-- if LengthOfTable(FormationManager.GetWuJinFormationHeroIds(self.trailData.fourElementType + 1700)) > 0 then
-- MonsterCampManager.ExecuteFightBattle(self.data.Id,0,nil,self.trailData.fourElementType)
-- else
-- -- UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.FOUR_ELEMENT, self.trailData.fourElementType,self.data.Id)
-- UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.MONSTER_CAMP)
-- end
-- else
-- PopupTipPanel.ShowTip("今日已无可挑战层数!")
-- end
-- --UIManager.OpenPanel(UIName.ExpeditionMonsterInfoPopup,EXPEDITON_POPUP_TYPE.FourElementMonster,self.trailData.fourElementType,self.data.Id)
-- end
end)
end
-- 初始化奖励显示
function MonsterCampSingleWave:InitShowReward()
for i = 1 ,#self.rewardList do
self.rewardList[i].gameObject:SetActive(false)
end
for i = 1,#self.rewardData do
if not self.rewardList[i] then
self.rewardList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.rewardGrid.transform)
self.rewardList[i].gameObject:SetActive(false)
end
self.rewardList[i]:OnOpen(false, {self.rewardData[i][1],self.rewardData[i][2]}, 0.65,false,false,false)
self.rewardList[i].gameObject:SetActive(true)
end
end
--设置每条英雄数据
function MonsterCampSingleWave:SingleHeroDataShow(monConfig,heroData)
self.frame.sprite=Util.LoadSprite(GetHeroCardStarBg[monConfig.Star])
local liveName = GetResourcePath(heroData.Live)
local roleConfig = ConfigManager.GetConfigData(ConfigName.RoleConfig, heroData.Id)
local scale = roleConfig.play_liveScale
local livePos = Vector3.New(roleConfig.offset[1], roleConfig.offset[2], 0)
LogYellow("(self.data.Id%6 == 0 and 12 or (self.data.Id%6 + 6)) "..(self.data.Id%6 == 0 and 12 or (self.data.Id%6 + 6)))
self.icon.texture = CardRendererManager.GetSpineTexture((self.data.Id%6 == 0 and 6 or (self.data.Id%6)), liveName, Vector3.one * scale, livePos, true)
self.icon.transform.localScale = Vector3.one
self.icon.transform.localPosition = Vector3.zero
self.lv.text = monConfig.Level
self.pro.sprite= self.spLoader:LoadSprite(GetProStrImageByProNum(heroData.PropertyName))
--self.icon.sprite = Util.LoadSprite(heroData.painting)
SetCardStars(self.starGrid,monConfig.Star)
self.fg.sprite = self.spLoader:LoadSprite(GetHeroCardStarFg[monConfig.Star])
self.name.text = heroData.ReadingName
end
function MonsterCampSingleWave:UpdatePrivilage()
self.storeDataId,self.itemId,self.costNum = MonsterCampManager.MonsterCampGetCost()
-- self.freeTimes,self.buyTimes = MonsterCampManager.GetTimeTip(self.trailData.fourElementType)
self.freeTimes = MonsterCampManager.GetCanBattleCount()
self.buyTimes = MonsterCampManager.GetCanBuyBattleCount()
-- self:SetIcon()
end
-- function MonsterCampSingleWave:SetIcon()
-- Util.SetGray(self.fight,false)
-- if self.data.Id == MonsterCampManager.monsterWave then
-- --设置扫荡按钮
-- self.rewardText.text = "扫荡奖励"
-- self.fightBtnMask.sprite = self.spLoader:LoadSprite("r_hero_button_002")
-- if self.freeTimes > 0 then
-- -- self.fightBtnIcon.gameObject:SetActive(false)
-- -- self.fightBtnNum.gameObject:SetActive(false)
-- self.fightBtnText.text = string.format("<color=#%s>%s</color>","17232A","免费扫荡")
-- Util.SetGray(self.fight,false)
-- else
-- -- self.fightBtnIcon.gameObject:SetActive(true)
-- -- self.fightBtnNum.gameObject:SetActive(true)
-- -- self.fightBtnIcon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[self.itemId].ResourceID))
-- local color = 0
-- if BagManager.GetItemCountById(self.itemId) < self.costNum then
-- color = "E71515"
-- else
-- color = "17232A"
-- end
-- self.fightBtnNum.text =string.format("<color=#%s>%s</color>",color,self.costNum)
-- self.fightBtnText.text = string.format("<color=#%s>%s</color>",color,"扫荡")
-- if self.buyTimes < 1 then
-- Util.SetGray(self.fight,true)
-- end
-- end
-- else
-- if self.data.Id == self.trailData.monsterWave + 1 then
-- --设置挑战fight
-- -- self.fightBtnIcon.gameObject:SetActive(false)
-- -- self.fightBtnNum.gameObject:SetActive(false)
-- -- self.fightBtnMask:GetComponent("Image").sprite = self.spLoader:LoadSprite("r_hero_button_001")
-- -- self.fightBtnText.text = string.format("<color=#%s>%s</color>","17232A","挑战")
-- else
-- self.fight.gameObject:SetActive(false)
-- end
-- Util.SetGray(self.fight,false)
-- end
-- end
--界面销毁时调用(用于子类重写)
function MonsterCampSingleWave:OnDestroy()
self.rewardList = {}
self.spLoader:Destroy()
end
function MonsterCampSingleWave:NewItemView(config, gameObject, ...)
local view = reimport(config.script)
local sub = view:New(gameObject)
sub.assetName = config.assetName
if sub.Awake then
sub:Awake()
end
if sub.InitComponent then
sub:InitComponent()
end
if sub.BindEvent then
sub:BindEvent()
end
if sub.AddListener then
sub:AddListener()
end
if sub.Update then
UpdateBeat:Add(sub.Update, sub)
end
if sub.OnOpen then
sub:OnOpen(...)
end
return sub
end
return MonsterCampSingleWave