FourTrailSingleHelpHero = {} local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local redTrailType = { [1] = RedPointType.PersonTrailHelp, [2] = RedPointType.BuddishTrailHelp, [3] = RedPointType.DemonTrailHelp, [4] = RedPointType.TaoistTrailHelp, } local redTrailType1 = { [1] = RedPointType.PersonTrail, [2] = RedPointType.BuddishTrail, [3] = RedPointType.DemonTrail, [4] = RedPointType.TaoistTrail, } function FourTrailSingleHelpHero:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = FourTrailSingleHelpHero }) return b end --初始化组件(用于子类重写) function FourTrailSingleHelpHero:InitComponent() self.spLoader = SpriteLoader.New() 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(self.hero, "icon"):GetComponent("Image") self.lv = Util.GetGameObject(self.hero, "lv/Text"):GetComponent("Text") self.proIcon = Util.GetGameObject(self.hero, "proIcon"):GetComponent("Image") self.starGrid = Util.GetGameObject(self.hero, "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:OnOpen(_sortingOrder) self.sortingOrder = _sortingOrder 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 heroData.changeProId = player.hero.propertyId self.proIcon.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(player.hero.propertyId)) else heroData = args[1] self.proIcon.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroData.changeProId)) end self.frame.sprite = self.spLoader:LoadSprite(GetHeroQuantityImageByquality(heroData.heroConfig.Quality, heroData.star)) self.icon:GetComponent("Image").sprite = self.spLoader:LoadSprite(heroData.icon) self.lv:GetComponent("Text").text = heroData.lv local star,starType = heroData.GetStar(1) SetHeroStars(self.spLoader,self.starGrid , star,starType) SetHeroFlyEffect(self.hero,self.spLoader,heroData.star,self.sortingOrder+1,1 ) Util.SetParticleSortLayer(self.starGrid,self.sortingOrder + 1) self.name.text = itemConfig[heroData.heroConfig.Id].Name -- local allAddProVal = HeroManager.CalculateHeroAllProValList(1, heroData, false) --LogGreen(heroData.dynamicId.." allAddProVal[HeroProType.WarPower]:"..allAddProVal[HeroProType.WarPower]) self.num.text = HeroPowerManager.GetHeroPower(heroData.dynamicId)--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) self.btn:GetComponent("Button").enabled = true if tempData and heroData.dynamicId == tempData.hero.dynamicId then if tempData.player and tempData.player.state == 1 then self.select.sprite = self.spLoader:LoadSprite("s_silingshilian_yishiyong_zh") self.select:SetNativeSize() self.selectText.text = "" self.btn:GetComponent("Button").enabled = false else self.select.sprite = self.spLoader:LoadSprite("r_hero_button_001") self.select:SetNativeSize() 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.SaveFormation( (1700 + self.curType), choosedList, FormationManager.formationList[(1700 + self.curType)].teamPokemonInfos ) MonsterCampManager.SetFriendHelpHero(nil,self.curType) self:SetIcon1(heroData,player) return end) end) end elseif self.heifhtPower < heroData.warPower then self.select.sprite = self.spLoader:LoadSprite("s_silingshilian_zhanliguogao_zh") self.select:SetNativeSize() self.selectText.text = "" self.btn:GetComponent("Button").enabled = false else self.select.sprite = self.spLoader:LoadSprite("r_hero_button_001") self.select:SetNativeSize() self.selectText.text = "选择神将" Util.AddOnceClick(self.btn, function() local tempData1 = MonsterCampManager.GetFriendHelpHero(self.curType) if tempData1 and tempData1.player and tempData1.player.state == 0 then PopupTipPanel.ShowTip("已选择其他神将!") elseif tempData1 and tempData1.player and tempData1.player.state == 1 then LogGreen(tempData1.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) local tempData = MonsterCampManager.GetMyHelpHero(self.curType) self.btn:GetComponent("Button").enabled = true if tempData and heroData.dynamicId == tempData.dynamicId then self.btn:GetComponent("Button").enabled = false self.select.sprite = self.spLoader:LoadSprite("s_silingshilian_zhiyuanzhong_zh") self.select:SetNativeSize() self.selectText.text = "" Util.AddOnceClick(self.btn, function() end) else self.select.sprite = self.spLoader:LoadSprite("r_hero_button_001") self.select:SetNativeSize() self.selectText.text = "选择神将" Util.AddOnceClick(self.btn, function() local tempData1 = MonsterCampManager.GetMyHelpHero(self.curType) if tempData1 then PopupTipPanel.ShowTip("已选择支援神将!") else NetManager.SetHelpHeroRequest(heroData.dynamicId,function(msg) MonsterCampManager.SetMyHelpHeroData(self.curType,heroData,nil) if msg.drop and msg.drop.itemlist and #msg.drop.itemlist > 0 then local item = msg.drop.itemlist[1] PopupTipPanel.ShowTip(string.format("已选择神将,获得%s%s",item.itemNum,ConfigManager.GetConfigData(ConfigName.ItemConfig,item.itemId).Name)) end CheckRedPointStatus(redTrailType[self.curType]) CheckRedPointStatus(redTrailType1[self.curType]) self:SetIcon2(heroData) end) end end) end end function FourTrailSingleHelpHero:OnClose() end function FourTrailSingleHelpHero:OnDestroy() self.spLoader:OnDestroy() end return FourTrailSingleHelpHero