149 lines
4.9 KiB
Plaintext
149 lines
4.9 KiB
Plaintext
local BaseCell = autoImport("BaseCell");
|
|
ServantRecommendCell = class("ServantRecommendCell", BaseCell);
|
|
|
|
local tmpPos = LuaVector3.zero
|
|
local OFFSET = 200
|
|
|
|
local btnStatus =
|
|
{
|
|
|
|
GO = {"com_btn_2s",ZhString.Servant_Recommend_Go,Color(158/255,86/255,0/255),},
|
|
RECEIVE = {"com_btn_3s",ZhString.Servant_Recommend_Receive,Color(41/255,105/255,0/255)},
|
|
RECEIVED = {"com_btn_3s",ZhString.Servant_Recommend_Received,Color(124/255,124/255,124/255)},
|
|
}
|
|
|
|
-- 活動、升級、賺錢、收集、社交
|
|
local typeCfgColor = {"[ffa0bf]","[6ca7ff]","[ffd44f]","[bde379]","[dbb8ef]"}
|
|
|
|
function ServantRecommendCell:Init()
|
|
ServantRecommendCell.super.Init(self)
|
|
self:FindObjs()
|
|
self:AddUIEvts()
|
|
end
|
|
|
|
-- function ServantRecommendCell:PlayTrailEffect(worldpos)
|
|
-- self.pos = self.effectContainer.transform:InverseTransformPoint(worldpos)
|
|
-- self:Show(self.effectContainer)
|
|
-- self:PlayUIEffect(EffectMap.UI.LovelyTail,self.effectContainer,false)
|
|
-- self:SetTween()
|
|
-- end
|
|
|
|
function ServantRecommendCell:FindObjs()
|
|
self.bg = self:FindGO("Bg")
|
|
self.icon = self:FindComponent("Icon", UISprite)
|
|
self.rewardNum = self:FindComponent("RewardNum",UILabel)
|
|
self.rewardIcon = self:FindComponent("RewardIcon",UISprite)
|
|
self.name = self:FindComponent("Name",UILabel)
|
|
self.title = self:FindComponent("Title",UILabel)
|
|
self.checkImg = self:FindGO("CheckImg")
|
|
self.btn = self:FindComponent("Btn",UISprite)
|
|
self.btnLab = self:FindComponent("BtnText",UILabel)
|
|
self.finishedFlag = self:FindGO("FinishedImg")
|
|
-- self.effectContainer = self:FindGO("EffectContainer");
|
|
-- self.tweenPosition= self.effectContainer:GetComponent(TweenPosition)
|
|
end
|
|
|
|
-- function ServantRecommendCell:SetTween()
|
|
-- self.tweenPosition.duration = 2
|
|
-- local parentPos = self.gameObject.transform.localPosition
|
|
-- tmpPos:Set(OFFSET,0,0)
|
|
-- self.tweenPosition.from = tmpPos
|
|
-- tmpPos:Set(self.pos.x+OFFSET,self.pos.y,0)
|
|
-- self.tweenPosition.to = tmpPos
|
|
-- self.tweenPosition:ResetToBeginning()
|
|
-- self.tweenPosition:PlayForward()
|
|
-- self.tweenPosition:SetOnFinished(function ()
|
|
-- self:Hide(self.effectContainer)
|
|
-- end)
|
|
-- end
|
|
|
|
function ServantRecommendCell:AddUIEvts()
|
|
self:AddClickEvent(self.btn.gameObject,function ( obj )
|
|
self:OnClickBtn()
|
|
end)
|
|
end
|
|
|
|
function ServantRecommendCell:OnClickBtn()
|
|
if(ServantRecommendProxy.STATUS.GO==self.status)then
|
|
if(self.data and self.data:IsActive() and not self.data.real_open)then
|
|
MsgManager.ShowMsgByID(25423)
|
|
return
|
|
end
|
|
FuncShortCutFunc.Me():CallByID(self.gotoMode);
|
|
GameFacade.Instance:sendNotification(UIEvent.CloseUI,UIViewType.NormalLayer)
|
|
elseif(ServantRecommendProxy.STATUS.RECEIVE==self.status)then
|
|
ServiceNUserProxy.Instance:CallReceiveServantUserCmd(false, self.id)
|
|
end
|
|
end
|
|
|
|
local reward_icon,reward_num
|
|
local CONST_GIFT_ID , CONST_GIFT_NUM , FAVOR_ICON = 700108, 1 , "food_icon_10"
|
|
local tempColor = LuaColor.white
|
|
function ServantRecommendCell:SetData(data)
|
|
self.data = data;
|
|
if(data)then
|
|
self.bg:SetActive(true)
|
|
-- TODO
|
|
local cfg = data.staticData
|
|
if(nil==cfg)then
|
|
helplog("女僕今日推薦前後端表不一致")
|
|
return
|
|
end
|
|
self.id = data.id
|
|
self.status = data.status
|
|
self.gotoMode = cfg.GotoMode
|
|
self.name.text = cfg.Name
|
|
self.title.text = data.finish_time and string.format(cfg.Title,data.finish_time) or cfg.Title
|
|
if(cfg.Favorability)then
|
|
self:Show(self.rewardNum)
|
|
reward_num = cfg.Favorability
|
|
IconManager:SetUIIcon(FAVOR_ICON,self.rewardIcon)
|
|
else
|
|
local rewards = ItemUtil.GetRewardItemIdsByTeamId(cfg.Reward);
|
|
if(rewards)then
|
|
reward_num = #rewards>1 and CONST_GIFT_NUM or rewards[1].num
|
|
reward_icon = #rewards>1 and CONST_GIFT_ID or rewards[1].id
|
|
reward_icon = Table_Item[reward_icon] and Table_Item[reward_icon].Icon or ""
|
|
IconManager:SetItemIcon(reward_icon,self.rewardIcon)
|
|
self:Show(self.rewardNum)
|
|
else
|
|
self:Hide(self.rewardNum)
|
|
end
|
|
end
|
|
self.rewardNum.text = reward_num
|
|
local exitIcon = IconManager:SetUIIcon(cfg.Icon,self.icon)
|
|
if(not exitIcon)then
|
|
exitIcon = IconManager:SetItemIcon(cfg.Icon,self.icon)
|
|
if(not exitIcon)then
|
|
-- helplog("ServantRecommendCell SetData SetIcon 未在v1、v2、item圖集中找到對應icon. 錯誤ID: ",cfg.id)
|
|
end
|
|
end
|
|
-- 3 -- 一次性引導任務 待配置
|
|
ColorUtil.WhiteUIWidget(self.btn)
|
|
self.checkImg:SetActive(false)
|
|
if(ServantRecommendProxy.STATUS.FINISHED==data.status)then
|
|
self:_setBtnStatue(false)
|
|
self.checkImg:SetActive(true)
|
|
elseif(ServantRecommendProxy.STATUS.RECEIVE==data.status)then
|
|
self:_setBtnStatue(true,btnStatus.RECEIVE)
|
|
elseif(ServantRecommendProxy.STATUS.GO==data.status)then
|
|
self:_setBtnStatue(true,btnStatus.GO)
|
|
end
|
|
else
|
|
self.bg:SetActive(false)
|
|
end
|
|
end
|
|
|
|
function ServantRecommendCell:_setBtnStatue(showBtn,statusCfg)
|
|
if(showBtn)then
|
|
self.btn.spriteName = statusCfg[1]
|
|
self.btnLab.text = statusCfg[2]
|
|
self.btnLab.effectColor = statusCfg[3]
|
|
end
|
|
self.btn.gameObject:SetActive(showBtn)
|
|
self.finishedFlag:SetActive(not showBtn)
|
|
end
|
|
|
|
|
|
|