FourTrailSingleHelpHero = {} local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) function FourTrailSingleHelpHero:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = FourTrailSingleHelpHero }) return b end --初始化组件(用于子类重写) function FourTrailSingleHelpHero:InitComponent() local go = Util.GetGameObject(self.gameObject, "GameObject") self.hero = Util.GetGameObject(go, "HeroPre") self.frame = Util.GetGameObject(self.hero, "frame"):GetComponent("Image") self.icon = Util.GetGameObject(go, "icon"):GetComponent("Image") self.lv = Util.GetGameObject(go, "lv/Text"):GetComponent("Text") self.proIcon = Util.GetGameObject(go, "proIcon"):GetComponent("Image") self.starGrid = Util.GetGameObject(go, "star") self.name = Util.GetGameObject(go,"name"):GetComponent("Text") self.num = Util.GetGameObject(go,"power/Text"):GetComponent("Text") self.tip = Util.GetGameObject(go,"tip"):GetComponent("Text") self.select = Util.GetGameObject(go,"Button/tip"):GetComponent("Image") self.selectText = Util.GetGameObject(go,"Button/Text"):GetComponent("Text") self.btn = Util.GetGameObject(go,"Button") end --绑定事件(用于子类重写) function FourTrailSingleHelpHero:BindEvent() end --添加事件监听(用于子类重写) function FourTrailSingleHelpHero:AddListener() end --移除事件监听(用于子类重写) function FourTrailSingleHelpHero:RemoveListener() end function FourTrailSingleHelpHero:OnShow(curType,...) local args = {...} local player = {} local heroData = {} self.curType = args[2] self.heifhtPower = args[3] if curType == 1 then heroData = args[1].hero player = args[1].player else heroData = args[1] end self.frame.sprite = Util.LoadSprite(GetHeroQuantityImageByquality(heroData.heroConfig.Quality, heroData.star)) self.icon:GetComponent("Image").sprite = Util.LoadSprite(heroData.icon) self.lv:GetComponent("Text").text = heroData.lv self.proIcon.sprite = Util.LoadSprite(GetProStrImageByProNum(heroData.heroConfig.PropertyName)) SetHeroStars(self.starGrid , heroData.star) self.name.text = itemConfig[heroData.heroConfig.Id].Name self.num.text = heroData.warPower if curType == 1 then local from = "" if player.guildName == 0 then from = "好友" else from = "公会成员" end self.tip.text = "来自"..from..""..player.userName.."" self.tip.gameObject:SetActive(true) self:SetIcon1(heroData,player) else self.tip.gameObject:SetActive(false) self:SetIcon2(heroData) end Util.AddOnceClick(self.hero, function() UIManager.OpenPanel(UIName.RoleInfoPopup, heroData) end) end function FourTrailSingleHelpHero:SetIcon1(heroData,player) local tempData = MonsterCampManager.GetFriendHelpHero(self.curType) if self.heifhtPower < heroData.warPower then self.select.sprite = Util.LoadSprite("s_silingshilian_zhanliguogao") self.selectText.text = "" self.btn:GetComponent("Button").enabled = false elseif tempData and heroData.dynamicId == tempData.hero.dynamicId then if tempData.player and tempData.player.state == 1 then self.select.sprite = Util.LoadSprite("s_silingshilian_yishiyong") self.selectText.text = "" self.btn:GetComponent("Button").enabled = false else self.select.sprite = Util.LoadSprite("r_hero_button_001") self.selectText.text = "取消选择" Util.AddOnceClick(self.btn, function() NetManager.UseHelpHeroRequest(heroData.dynamicId,self.curType,0,function() local curFormation = FormationManager.GetFormationByID(1700 + self.curType) --上阵列表赋值 local choosedList ={} for j = 1, #curFormation.teamHeroInfos do local teamInfo = curFormation.teamHeroInfos[j] -- 加空判断避免不知名错误 if teamInfo and teamInfo.heroId ~= heroData.dynamicId then table.insert(choosedList, {heroId = teamInfo.heroId,position=teamInfo.position}) end end FormationManager.RefreshFormation( (1700 + self.curType), choosedList, FormationManager.formationList[(1700 + self.curType)].teamPokemonInfos ) MonsterCampManager.SetFriendHelpHero(nil,self.curType) self:SetIcon1(heroData,player) return end) end) end else self.select.sprite = Util.LoadSprite("r_hero_button_001") self.selectText.text = "选择神将" self.btn:GetComponent("Button").enabled = true Util.AddOnceClick(self.btn, function() if tempData and tempData.player and tempData.player.state == 0 then PopupTipPanel.ShowTip("已选择其他神将!") elseif tempData and tempData.player and tempData.player.state == 1 then LogGreen(tempData.player.state) PopupTipPanel.ShowTip("今日已无使用助战次数!") else NetManager.UseHelpHeroRequest(heroData.dynamicId,self.curType,1,function() MonsterCampManager.SetFriendHelpHero(player,self.curType) self:SetIcon1(heroData,player) return end) end end) end end function FourTrailSingleHelpHero:SetIcon2(heroData) LogGreen(heroData.dynamicId) local tempData = MonsterCampManager.GetMyHelpHero(self.curType) LogGreen(heroData.dynamicId) if tempData and heroData.dynamicId == tempData.dynamicId then self.select.sprite = Util.LoadSprite("s_silingshilian_zhiyuanzhong") self.select:SetNativeSize() self.selectText.text = "" Util.AddOnceClick(self.btn, function() end) else self.select.sprite = Util.LoadSprite("r_hero_button_001") self.select:SetNativeSize() self.selectText.text = "选择神将" Util.AddOnceClick(self.btn, function() if tempData then PopupTipPanel.ShowTip("已选择支援神将!") else NetManager.SetHelpHeroRequest(heroData.dynamicId,function(msg) MonsterCampManager.SetMyHelpHeroData(self.curType,heroData,nil) UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1) self:SetIcon2(heroData) end) end end) end end function FourTrailSingleHelpHero:OnClose() end function FourTrailSingleHelpHero:OnDestroy() end return FourTrailSingleHelpHero