210 lines
9.0 KiB
Lua
210 lines
9.0 KiB
Lua
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 = GetLanguageStrById(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 = Language[10427]
|
|
else
|
|
from = Language[13061]
|
|
end
|
|
self.tip.text = Language[13062] .. from .. "<color=#08EC03>" .. player.userName .. "</color>"
|
|
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 = Language[13063]
|
|
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 = Language[10617]
|
|
Util.AddOnceClick(self.btn, function()
|
|
local tempData1 = MonsterCampManager.GetFriendHelpHero(self.curType)
|
|
if tempData1 and tempData1.player and tempData1.player.state == 0 then
|
|
PopupTipPanel.ShowTip(Language[13064])
|
|
elseif tempData1 and tempData1.player and tempData1.player.state == 1 then
|
|
LogGreen(tempData1.player.state)
|
|
PopupTipPanel.ShowTip(Language[13065])
|
|
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 = Language[10617]
|
|
Util.AddOnceClick(self.btn, function()
|
|
local tempData1 = MonsterCampManager.GetMyHelpHero(self.curType)
|
|
if tempData1 then
|
|
PopupTipPanel.ShowTip(Language[13066])
|
|
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(Language[13067], item.itemNum,
|
|
GetLanguageStrById(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
|