autoImport("GuildTreasureItemCell") GuildTreasureView = class("GuildTreasureView", ContainerView) GuildTreasureView.ViewType = UIViewType.NormalLayer local beginVector3,endVector3 = LuaVector3.zero,LuaVector3.zero local tweenDuration = 0.3 local tempMark = "\n" local tempData = {} local tempTipLabWidth = 600 local UI_FLITER = GameConfig.GuildTreasure.SceneFilter or {11,12,20,24}; local actionCsv = { showBox = "state1001", openBox = "state2001", disappear = "state3001", } local BtnPhase = { lottery={ BtnSpriteName = "com_btn_1", costId = 151, }, guildAsset = { BtnSpriteName = "com_btn_2", costId = 460, }, Diamond = { BtnSpriteName = "com_btn_3", costId = 50, }, } local GuildTreasureLimit= { --逼格貓金幣每週開啟次數及對應的價格 LotteryWeekLimit= { [1]=100, [2]=200, [3]=300, [4]=400, }, --公會資金每週開啟次數及對應的價格 GuildAssetWeekLimit= { [1]=100, [2]=200, [3]=300, }, } function GuildTreasureView:OnEnter() FunctionSceneFilter.Me():StartFilter(UI_FLITER); GuildTreasureView.super.OnEnter(self) end function GuildTreasureView:OnExit() FunctionSceneFilter.Me():EndFilter(UI_FLITER); if(self.viewType~=GuildTreasureProxy.ViewType.TreasurePreview)then ServiceGuildCmdProxy.Instance:CallTreasureActionGuildCmd(nil,nil,nil,GuildTreasureProxy.ActionType.FRAME_OFF) end GuildTreasureProxy.Instance:ExitUI() GuildTreasureView.super.OnExit(self) self:CameraReset() end function GuildTreasureView:PlayCameraEff(flag) local npcModel = GuildTreasureProxy.Instance:GetNpcModel() local npcTrans = npcModel and npcModel.completeTransform if(npcTrans)then local viewPort = flag and CameraConfig.GuildTreasure_ViewPort or CameraConfig.GuildTreasureDetail_ViewPort local rotation = flag and CameraConfig.GuildTreasure_Rotation or CameraConfig.GuildTreasureDetail_Rotation self:CameraFocusAndRotateTo(npcTrans,viewPort,rotation) end end function GuildTreasureView:Init() self:FindObjs() self:AddEvts() self:AddViewEvts() self:InitShow() end function GuildTreasureView:FindObjs() self.openBtn = self:FindComponent("OpenBtn",UISprite) self.limitLab = self:FindComponent("LimitLab",UILabel) self.curBoxName=self:FindComponent("NameLab",UILabel) self.detailBtn = self:FindGO("DetailBtn") self.previewPos = self:FindGO("PreviewPos") self.mainViewTweenPos = self:FindComponent("MainViewRoot",TweenPosition) self.itemTweenPos = self:FindComponent("ItemRoot",TweenPosition) self.itemDesc = self:FindComponent("ItemDesc",UILabel) self.itemScrollView = self:FindComponent("ItemScrollView",UIScrollView) self.leftBtn = self:FindGO("LeftBtn") self.rightBtn = self:FindGO("RightBtn") self.grid = self:FindGO("Grid"):GetComponent(UIGrid) self.returnBtn = self:FindGO("CloseItemBtn") self.costIcon = self:FindComponent("CostIcon",UISprite) self.CostNum = self:FindComponent("CostNum",UILabel) local table = self:FindComponent("previewDescTable", UITable); self.descPreviewCtl = UIGridListCtrl.new(table, TipLabelCell, "TipLabelCell"); self.openLab = self:FindGO("OpenLab") self.scrollView=self:FindComponent("ItemScrollView",UIScrollView) self.pos=self:FindGO("pos") self.scoreLimit = self:FindComponent("ScoreLimit", UILabel); end function GuildTreasureView:AddEvts() self:AddClickEvent(self.openBtn.gameObject, function (go) self:OnClickOpenBtn() end) self:AddClickEvent(self.detailBtn,function (go) self:OnClickDetail() end) self:AddClickEvent(self.returnBtn,function (go) self:OnClickCloseItem() end) self:AddClickEvent(self.leftBtn,function (go) self:OnClickLeft() end) self:AddClickEvent(self.rightBtn,function (go) self:OnClickRight() end) end function GuildTreasureView:OnClickLeft() if(self.viewType==GuildTreasureProxy.ViewType.TreasurePreview)then self:_updateUIByDirection(true) else ServiceGuildCmdProxy.Instance:CallTreasureActionGuildCmd(nil,nil,nil,GuildTreasureProxy.ActionType.LEFT); end end function GuildTreasureView:_updateUIByDirection(turnLeft) self.curPreviewIndex=turnLeft and self.curPreviewIndex-1 or self.curPreviewIndex+1 self:UpdateUI() end function GuildTreasureView:OnClickRight() if(self.viewType==GuildTreasureProxy.ViewType.TreasurePreview)then self:_updateUIByDirection(false) else ServiceGuildCmdProxy.Instance:CallTreasureActionGuildCmd(nil,nil,nil,GuildTreasureProxy.ActionType.RIGHT); end end function GuildTreasureView:OnClickDetail() self:PlayTweenPos(true) self:CameraReset() self:PlayCameraEff(false) end function GuildTreasureView:OnClickCloseItem() self:PlayTweenPos(false) self:CameraReset() self:PlayCameraEff(true) end function GuildTreasureView:InitShow() self.limitCsv = GameConfig.GuildTreasure or GuildTreasureLimit self.tipData = {} self.tipData.funcConfig = {} self.itemDesc.text = ZhString.GuildTreasure_Tip self.itemCtl = UIGridListCtrl.new(self.grid, GuildTreasureItemCell, "GuildTreasureItemCell") self.itemCtl:AddEventListener(MouseEvent.MouseClick, self.onClickItem, self); self.contextDatas = {}; if(GuildTreasureProxy.Instance:GetViewType()==GuildTreasureProxy.ViewType.TreasurePreview)then self:UpdateUI() end end function GuildTreasureView:onClickItem(cellctl) if(cellctl and cellctl.data)then self.tipData.itemdata = cellctl.data self:ShowItemTip(self.tipData , cellctl.icon , NGUIUtil.AnchorSide.Left, {-220,-30}) end end function GuildTreasureView:OnClickOpenBtn() if(self.curTreasureID==0)then MsgManager.ShowMsgByID(4042) return end local action,totalLimit,curLimit local myGuildData = GuildProxy.Instance.myGuildData; if(self.viewType==GuildTreasureProxy.ViewType.HoldTreasure)then action=GuildTreasureProxy.ActionType.OPEN_GVG elseif(self.viewType==GuildTreasureProxy.ViewType.GuildTreasure)then action=GuildTreasureProxy.ActionType.OPEN_GUILD if(self.data:isLotteryType())then if(MyselfProxy.Instance:GetQuota() < self.quotaLimit)then MsgManager.ShowMsgByID(25010) return; end curLimit = self.data.bcoin_treasure_count totalLimit = #self.limitCsv.LotteryWeekLimit if(curLimit>=totalLimit)then MsgManager.ShowMsgByID(4030) return end local money = MyselfProxy.Instance:GetLottery(); if(money=totalLimit)then MsgManager.ShowMsgByID(4031) return end if(myGuildData.asset