miduo_client/Assets/ManagedResources/~Lua/Modules/Likability/LikeabilityPopup.lua

150 lines
6.3 KiB
Lua

require("Base/BasePanel")
LikeabilityPopup = Inherit(BasePanel)
--<size=32><color=#fdf5e5>全体生命</color></size> --白色
--<size=32><color=#fc902c>特权</color></size>--橙色
--<size=32><color=#fed97f>总好感度属性:</color></size> --黄色
--<color=#00FF00>+500</color></size> --绿色
local pos = {
["h_haogandu_1"] = {mask =Vector3.New(-16.15,0,0),icon = Vector3.New(-3.4,-7.3,0)} ,
["h_haogandu_2"] = {mask = Vector3.New(3.93,-1.04,0),icon = Vector3.New(4.49,-4.69,0)} ,
["h_haogandu_3"] = {mask = Vector3.New(-16.15,0,0),icon = Vector3.New(-15.5,-3.5,0)} ,
}
function LikeabilityPopup:InitComponent()
self.spLoader = SpriteLoader.New()
self.btnBack = Util.GetGameObject(self.transform, "BackMask")
self.likeabilityBtn = Util.GetGameObject(self.gameObject, "scroll/likeability")
self.likeabilityDi = Util.GetGameObject(self.likeabilityBtn, "di"):GetComponent("Image")
--h_haogandu_1 h_haogandu_2 h_haogandu_3
self.likeabilitymask = Util.GetGameObject(self.likeabilityDi.transform, "mask"):GetComponent("Image")
--self.likeabilitymask.fillAmount
self.icon = Util.GetGameObject(self.likeabilityBtn, "icon")
self.lv = Util.GetGameObject(self.likeabilityBtn, "icon/lv"):GetComponent("Text")
self.progress = Util.GetGameObject(self.likeabilityBtn, "icon/progress"):GetComponent("Text")
self.pro = Util.GetGameObject(self.transform, "pro")
self.proContent = Util.GetGameObject(self.pro, "content")
self.proGrid1 = Util.GetGameObject(self.transform, "scroll/proScrollgrid1")
self.proGrid2 = Util.GetGameObject(self.transform, "scroll/proScroll/proScrollgrid2")
self.proGrid2Pos = self.proGrid2:GetComponent("RectTransform").anchoredPosition
self.proList = {}
self.back = Util.GetGameObject(self.transform, "BG/BackBtn")
end
function LikeabilityPopup:BindEvent()
Util.AddClick(self.btnBack, function()
self:ClosePanel()
end)
Util.AddClick(self.back, function()
self:ClosePanel()
end)
end
--添加事件监听(用于子类重写)
function LikeabilityPopup:AddListener()
end
--移除事件监听(用于子类重写)
function LikeabilityPopup:RemoveListener()
end
function LikeabilityPopup:OnSortingOrderChange()
end
function LikeabilityPopup:OnOpen()
end
function LikeabilityPopup:OnShow()
self:UpdateTopLayoutPanel()
end
function LikeabilityPopup:UpdateTopLayoutPanel()
local num,lv,totalNum = LikabilityManager.GetTotalHeroLikeLv(-1)
local config = ConfigManager.GetConfigDataByDoubleKey(ConfigName.LikeAbility,"Type",1,"Level",lv)
self.likeabilityDi.sprite = self.spLoader:LoadSprite(config.Bg)
self.likeabilitymask.transform.localPosition = pos[config.Bg].mask
self.icon.transform.localPosition = pos[config.Bg].icon
self.lv.text = lv
if LikabilityManager.CheckIsMaxLv(-1) then
self.progress.text = "好感度最佳"
self.likeabilitymask.fillAmount = 1
else
self.progress.text = string.format("<color=#00FF00>%s</color>/%s",num,totalNum)
self.likeabilitymask.fillAmount = num/totalNum
end
self:UpDataProList(lv)
end
function LikeabilityPopup:UpDataProList(lv)
local pro1 = LikabilityManager.GetViewProData(1,-1,lv,"<color=#fed97f> 总好感度属性:</color>",""," <color=#%s>全体%s\n 全体%s\n 全体%s\n 全体%s</color>","",lv + 1)
--local pro2 = LikabilityManager.GetViewProData(1,lv,lv,"<color=#fed97f> 当前等级加成:</color>","<color=#%s>%s级</color>","<color=#%s>属性加成:%s %s</color>","<color=#%s>特权加成:%s</color>",nil,true)
for i = 1,#self.proList do
self.proList[i].go.gameObject:SetActive(false)
end
self:UpDataProSingleList(pro1,1,self.proGrid1)
--self:UpDataProSingleList(pro2,2,self.proGrid2,lv)
end
function LikeabilityPopup:UpDataProSingleList(data,index,parent,lv)
if not self.proList[index] then
self.proList[index] = {}
self.proList[index].go = newObjToParent(self.pro,parent.transform)
self.proList[index].title = Util.GetGameObject(self.proList[index].go, "title"):GetComponent("Text")
self.proList[index].fenge = Util.GetGameObject(self.proList[index].go, "Image")
self.proList[index].fengePre = Util.GetGameObject(self.proList[index].go, "fenge")
end
self.proList[index].go.gameObject:SetActive(true)
self.proList[index].title.text = data.content
local curIndex = 0
for i = 1,math.max(#self.proList[index],#data.prolist) do
if not data.prolist[i] then
self.proList[index][i].go.gameObject:SetActive(false)
else
if not self.proList[index][i] then
self.proList[index][i] = {}
self.proList[index][i].go = newObjToParent(self.proContent,self.proList[index].go)
self.proList[index][i].fenge = newObjToParent(self.proList[index].fengePre,self.proList[index].go)
self.proList[index][i].goText = self.proList[index][i].go:GetComponent("Text")
end
if data.prolist[i] == "" then
self.proList[index][i].go.gameObject:SetActive(false)
else
self.proList[index][i].go.gameObject:SetActive(true)
self.proList[index][i].goText.text = data.prolist[i]
end
if i%3 == 0 then
self.proList[index][i].fenge.gameObject:SetActive(true)
if lv > math.ceil(i/3) then
curIndex = math.ceil(i/3) * 4
end
else
self.proList[index][i].fenge.gameObject:SetActive(false)
end
end
end
if index == 1 then
self.proList[index].fenge.gameObject:SetActive(false)
else
self.proList[index].fenge.gameObject:SetActive(true)
if curIndex ~= 0 then
local pos = self.proGrid2:GetComponent("RectTransform").anchoredPosition
pos.y = self.proGrid2Pos.y + 41 + curIndex*35 + (lv - 1)*10
self.proGrid2:GetComponent("RectTransform").anchoredPosition = pos
end
end
end
function LikeabilityPopup:OnClose()
end
--界面销毁时调用(用于子类重写)
function LikeabilityPopup:OnDestroy()
self.spLoader:Destroy()
self.proList = {}
self.proGrid2:GetComponent("RectTransform").anchoredPosition = self.proGrid2Pos
end
return LikeabilityPopup