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

260 lines
12 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.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.name=Util.GetGameObject(self.hero,"Name/Text"):GetComponent("Text")
self.effect = Util.GetGameObject(self.hero,"UI_Effect_jinkuang_KaPai")
self.pass = Util.GetGameObject(self.hero,"pass")
Util.GetGameObject(self.hero,"yuanImage"):SetActive(false)
Util.GetGameObject(self.hero,"hpProgress"):SetActive(false)
Util.GetGameObject(self.hero,"rageProgress"):SetActive(false)
self.reward = Util.GetGameObject(go,"bg/rewardRect")
self.fight = Util.GetGameObject(go,"bg/fight")
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.fightBtnRed = Util.GetGameObject(self.fight,"red")
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(_sortingOrder)
self:UpdatePrivilage()
self.Id.text = ""..self.data.Id..""
self.power.text = self.data.Force
--self.bg.sprite = self.spLoader:LoadSprite("s_silingshilian_shiliandi")
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: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
-- self.effect.gameObject:SetActive(false)--因为穿透,所以关闭了
--Util.SetParticleSortLayer(self.effect.gameObject, _sortingOrder + 1)
Util.AddOnceClick(self.btn, function()
UIManager.OpenPanel(UIName.ExpeditionMonsterInfoPopup,EXPEDITON_POPUP_TYPE.MonsterXinMo,self.data.Id)
end)
Util.AddOnceClick(self.fight, function()
LogGreen(self.data.Id)
local x = function()
NetManager.SweepDemonRequest(self.data.Id,false,function(msg)
UIManager.OpenPanel(UIName.RewardItemPopup,msg.Drop,1,function()
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.MONSTERCAMP_BATTLENUM, 1)
Game.GlobalEvent:DispatchEvent(GameEvent.MonsterCamp.UpdatePri)
self:UpdatePrivilage()
CheckRedPointStatus(RedPointType.EpicExplore_MoppingUp)
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 + 3000)) > 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.5,false,false,false)
self.rewardList[i].gameObject:SetActive(true)
end
end
--设置每条英雄数据
function MonsterCampSingleWave:SingleHeroDataShow(monConfig,heroData)
--self.frame.sprite=self.spLoader:LoadSprite(GetHeroCardStarBg[monConfig.Star])
local liveName = GetResourcePath(heroData.Painting)
local roleConfig = ConfigManager.GetConfigData(ConfigName.RoleConfig, heroData.Id)
local scale = roleConfig.play_liveScale
local livePos = Vector3.New(roleConfig.offset[1], roleConfig.offset[2]+60, 0)
self.icon.texture = CardRendererManager.GetSpineTexture((self.data.Id%6 == 0 and 12 or (self.data.Id%6) + 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))
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 = MonsterCampManager.GetCanBattleCount()
self.buyTimes = MonsterCampManager.GetCanBuyBattleCount()
self:SetIcon()
end
function MonsterCampSingleWave:SetIcon()
Util.SetGray(self.fight,false)
-- self.hero.transform.localPosition = Vector3.New(0,-33,0)
self.fight.gameObject:SetActive(false)
--self.pass.gameObject:SetActive(false)
self.fightBtnIcon.gameObject:SetActive(false)
self.fightBtnNum.gameObject:SetActive(false)
self.rewardText.text = "奖励"
if self.data.Id < MonsterCampManager.monsterWave - 1 then
-- self.pass.gameObject:SetActive(true)
elseif self.data.Id == MonsterCampManager.monsterWave - 1 then--扫荡
self.fight.gameObject:SetActive(true)
-- self.hero.transform.localPosition = Vector3.New(0,3,0)
if self.freeTimes > 0 then
self.fightBtnRed:SetActive(true)
self.fightBtnText.text = string.format("<color=#%s>%s</color>","17232A","免费扫荡")
-- self.fightBtnMask.sprite = self.spLoader:LoadSprite("r_guji_jihuianniu_02")
else
-- self.fightBtnMask.sprite = self.spLoader:LoadSprite("r_guji_jihuianniu_02")
self.fightBtnIcon.gameObject:SetActive(true)
self.fightBtnNum.gameObject:SetActive(true)
self.fightBtnRed:SetActive(false)
local color = BagManager.GetItemCountById(self.itemId) < self.costNum and "E71515" or "17232A"
self.fightBtnNum.text =string.format("<color=#%s>%s</color>",color,self.costNum)
self.fightBtnText.text = string.format("<color=#%s>%s</color>",color,"扫荡")
self.fightBtnIcon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[self.itemId].ResourceID))
if self.buyTimes < 1 then
Util.SetGray(self.fight,true)
end
end
elseif self.data.Id == MonsterCampManager.monsterWave then--挑战
self.fight.gameObject:SetActive(true)
-- self.hero.transform.localPosition = Vector3.New(0,3,0)
self.fightBtnIcon.gameObject:SetActive(false)
self.fightBtnNum.gameObject:SetActive(false)
self.fightBtnRed:SetActive(false)
-- self.fightBtnMask:GetComponent("Image").sprite = self.spLoader:LoadSprite("s_shouchong_anniu")
self.fightBtnText.text = string.format("<color=#%s>%s</color>","17232A","挑战")
elseif self.data.Id > MonsterCampManager.monsterWave then
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