From 97f9b8f671f41d49acd9a0b3b136a2ce7e9cd540 Mon Sep 17 00:00:00 2001 From: ZhangBiao Date: Fri, 25 Sep 2020 15:24:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=B4=E9=80=89=E4=B8=89=E7=95=8C=E9=99=A4?= =?UTF-8?q?=E9=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UI/DemonSlayer/DemonSlayerPanel.prefab | 48 ++++++-- .../~Lua/Common/GlobalDefine.lua | 2 +- .../Modules/DemonSlayer/DemonSlayerPanel.lua | 110 ++++++++++++++---- .../Ranking/RankingSingleListPanel.lua | 6 +- 4 files changed, 132 insertions(+), 34 deletions(-) diff --git a/Assets/ManagedResources/Prefabs/UI/DemonSlayer/DemonSlayerPanel.prefab b/Assets/ManagedResources/Prefabs/UI/DemonSlayer/DemonSlayerPanel.prefab index ef66801b2e..5ef2dfdaad 100644 --- a/Assets/ManagedResources/Prefabs/UI/DemonSlayer/DemonSlayerPanel.prefab +++ b/Assets/ManagedResources/Prefabs/UI/DemonSlayer/DemonSlayerPanel.prefab @@ -479,7 +479,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 177} + m_AnchoredPosition: {x: 4, y: 160} m_SizeDelta: {x: 234, y: 384} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3673423893004458656 @@ -553,7 +553,7 @@ RectTransform: m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 69.68, y: -3.2} - m_SizeDelta: {x: 752.56, y: 149.6} + m_SizeDelta: {x: 752.56, y: 180} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &5231672218216622282 MonoBehaviour: @@ -825,8 +825,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 147} - m_SizeDelta: {x: 259, y: 326} + m_AnchoredPosition: {x: 4, y: 160} + m_SizeDelta: {x: 234, y: 384} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &731834619246549618 CanvasRenderer: @@ -856,7 +856,7 @@ MonoBehaviour: m_Calls: [] m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Sprite: {fileID: 21300000, guid: 167c8b978d4f39b45b8e347d5de97e39, type: 3} + m_Sprite: {fileID: 21300000, guid: 55e398dcbb89e0440a21f67a06a293e1, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -1160,7 +1160,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 134.9, y: 0} + m_AnchoredPosition: {x: 133, y: 0} m_SizeDelta: {x: 59.05, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5207616627496183838 @@ -1198,13 +1198,13 @@ MonoBehaviour: m_BestFit: 0 m_MinSize: 3 m_MaxSize: 50 - m_Alignment: 4 + m_Alignment: 3 m_AlignByGeometry: 0 m_RichText: 1 m_HorizontalOverflow: 1 m_VerticalOverflow: 1 m_LineSpacing: 1 - m_Text: 4 + m_Text: "\u672A\u4E0A\u699C" LanguageIndex: 0 --- !u!1 &5010477071449866921 GameObject: @@ -1240,7 +1240,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 186} + m_AnchoredPosition: {x: 3, y: 162} m_SizeDelta: {x: 234, y: 384} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1863043904829440535 @@ -2106,6 +2106,7 @@ GameObject: m_Component: - component: {fileID: 2763190075109123432} - component: {fileID: 8629682879258600021} + - component: {fileID: 9216620161282783752} m_Layer: 5 m_Name: reward m_TagString: Untagged @@ -2142,6 +2143,35 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6973814931222460968} m_CullTransparentMesh: 0 +--- !u!114 &9216620161282783752 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6973814931222460968} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9f6415c5993d0154eba0d2d3bd1ffe93, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!1 &7506061684261343979 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua b/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua index 25540f67b8..b3653a8e38 100644 --- a/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua +++ b/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua @@ -2065,7 +2065,7 @@ rankKingList={ [1] = { bgImage = "r_zjm_paihangbang_banner04", name = Language[1 [8] = { bgImage = "r_zjm_paihangbang_banner01", name = Language[12387] ,rankType = RANK_TYPE.GUILDTRANSCRIPT,activiteId = 0,isRankingMainPanelShow = false}, [9] = { bgImage = "r_zjm_paihangbang_banner01", name = Language[12386] ,rankType = RANK_TYPE.GOLD_EXPER,activiteId = ActivityTypeDef.FindTreasureExper,isRankingMainPanelShow = false}, [10] = { bgImage = "r_zjm_paihangbang_banner01", name = Language[12386] ,rankType = RANK_TYPE.GOLD_EXPER,activiteId = ActivityTypeDef.ExpeditionExper,isRankingMainPanelShow = false}, - [11] = { bgImage = "r_zjm_paihangbang_banner01", name = Language[12167] ,rankType = RANK_TYPE.MONSTER_RANK,activiteId = ActivityTypeDef.DemonSlayer,isRankingMainPanelShow = false}, + [11] = { bgImage = "r_zjm_paihangbang_banner01", name = Language[12167] ,rankType = RANK_TYPE.GOLD_EXPER,activiteId = ActivityTypeDef.DemonSlayer,isRankingMainPanelShow = false}, } SoulPrintSpriteByQuantity={ diff --git a/Assets/ManagedResources/~Lua/Modules/DemonSlayer/DemonSlayerPanel.lua b/Assets/ManagedResources/~Lua/Modules/DemonSlayer/DemonSlayerPanel.lua index af24bcdb7d..2012059129 100644 --- a/Assets/ManagedResources/~Lua/Modules/DemonSlayer/DemonSlayerPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/DemonSlayer/DemonSlayerPanel.lua @@ -6,8 +6,14 @@ local allData={} local actRankConfig = ConfigManager.GetConfig(ConfigName.ActivityRankingReward) local itemsGrid = {}--item重复利用 local state = 0 + +local isPlayAnim = true local allRankData,myRankData +local mapNpc = "live2d_npc_map" +local mapNpc2 = "live2d_npc_map_nv" +local npcList={} + local rankImage={ [1] = "r_playerrumble_paiming_01", [2] = "r_playerrumble_paiming_02", @@ -46,7 +52,11 @@ function DemonSlayerPanel:BindEvent() UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.DemonSlayer, pos.x, pos.y) end) Util.AddClick(this.btnRank, function() - UIManager.OpenPanel(UIName.RankingSingleListPanel,rankKingList[11]) + if state == 0 then + UIManager.OpenPanel(UIName.RankingSingleListPanel,rankKingList[4]) + elseif state == 1 then + UIManager.OpenPanel(UIName.RankingSingleListPanel,rankKingList[11]) + end end) end @@ -73,6 +83,7 @@ end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function DemonSlayerPanel:OnShow() + isPlayAnim = true DemonSlayerPanel:Refresh() end @@ -114,7 +125,26 @@ function DemonSlayerPanel:SetRank(ActInfo) for i = 1, 3 do local item = Util.GetGameObject(this.pos,"pos"..i.."/name"):GetComponent("Text") - item.text = allRankData[i].userName + local image = Util.GetGameObject(this.pos,"pos"..i.."/ren"):GetComponent("Image") + local livePrefab = Util.GetGameObject(this.pos,"pos"..i.."/ren") + local npc,scale + + if allRankData[i] then + image.enabled = false + item.text = allRankData[i].userName + + --加载立绘 + npc = allRankData[i].sex == ROLE_SEX.BOY and mapNpc or mapNpc2 + local scale = allRankData[i].sex == ROLE_SEX.BOY and Vector3.one * 0.45 or Vector3.one * 0.35 + npcList[i] = poolManager:LoadLive(npc, livePrefab.transform, scale, Vector3.New(0,-158.31,0)) + local SkeletonGraphic = npcList[i]:GetComponent("SkeletonGraphic") + if SkeletonGraphic then + SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true) + end + else + image.enabled = true + item.text = "虚位以待" + end end end,ActInfo.activityId) @@ -125,11 +155,17 @@ end function DemonSlayerPanel:SetState(ActInfo) local extraTime = ConfigManager.GetConfigData(ConfigName.GlobalActivity,ActInfo.activityId).GapTime*86400 local time1 = ActInfo.endTime - GetTimeStamp() - if time1 - extraTime > 0 then - state = 0--7天内 - else - state = 1--2天内 - end + -- if time1 > 0 then + if time1 - extraTime > 0 then + state = 0--7天内 + else + state = 1--2天内 + end + -- else + -- self:ClosePanel() + -- PopupTipPanel.ShowTip(Language[10029]) + -- end + end function DemonSlayerPanel:OnShowData(ActInfo) @@ -142,7 +178,11 @@ function DemonSlayerPanel:OnShowData(ActInfo) DemonSlayerPanel:SingleDataShow(go, allData[index],index) end) end - -- SecTorPlayAnim(prefab) + if isPlayAnim then + SecTorPlayAnim(prefab) + isPlayAnim = false + end + end function DemonSlayerPanel:SingleDataShow(pre,data,index) @@ -161,7 +201,19 @@ function DemonSlayerPanel:SingleDataShow(pre,data,index) num:SetActive(true) rank2:SetActive(false) rank:SetActive(true) - num:GetComponent("Text").text = data.MinRank.."-"..data.MaxRank + if data.MaxRank > 200 then + num:GetComponent("Text").text = (data.MinRank-1).."+" + else + num:GetComponent("Text").text = data.MinRank.."-"..data.MaxRank + end + end + + + local activityRewardGo = pre + if isPlayAnim then + activityRewardGo:SetActive(false) + else + activityRewardGo:SetActive(true) end --滚动条复用重设itemview @@ -171,7 +223,7 @@ function DemonSlayerPanel:SingleDataShow(pre,data,index) end for i = 1, #shows do if itemsGrid[pre][i] then - itemsGrid[pre][i]:OnOpen(false, {shows[i][1],shows[i][2]}, 0.9,false,false,false,sortingOrder) + itemsGrid[pre][i]:OnOpen(false, {shows[i][1],shows[i][2]}, 0.9,false,false,false,self.sortingOrder) itemsGrid[pre][i].gameObject:SetActive(true) end end @@ -182,7 +234,7 @@ function DemonSlayerPanel:SingleDataShow(pre,data,index) itemsGrid[pre][i].gameObject:SetActive(false) end for i = 1, #shows do - itemsGrid[pre][i]:OnOpen(false, {shows[i][1],shows[i][2]}, 0.9,false,false,false,sortingOrder) + itemsGrid[pre][i]:OnOpen(false, {shows[i][1],shows[i][2]}, 0.9,false,false,false,self.sortingOrder) itemsGrid[pre][i].gameObject:SetActive(true) end end @@ -199,10 +251,14 @@ function DemonSlayerPanel:SetTime(ActInfo) else this.leftTime.text = TimeToHMS(time) end + + if self.timer then + self.timer:Stop() + self.timer = nil + end --计时器 - this.timer = Timer.New(function () + self.timer = Timer.New(function () if state == 0 then - this.time:SetActive(true) local time = ActInfo.endTime - GetTimeStamp() - extraTime if time > 86400 then this.leftTime.text = TimeToDH(time) @@ -214,30 +270,40 @@ function DemonSlayerPanel:SetTime(ActInfo) DemonSlayerPanel:Refresh() end elseif state == 1 then - -- body - this.time:SetActive(false) local time = ActInfo.endTime - GetTimeStamp() time = time -1 if time <= 0 then - self:ClosePanel() - PopupTipPanel.ShowTip(Language[10029]) + if self.timer then + self.timer:Stop() + self.timer = nil + end + -- DemonSlayerPanel:Refresh() end end - end,1,-1,true):Start() + end,1,-1,true) + self.timer:Start() end --界面关闭时调用(用于子类重写) function DemonSlayerPanel:OnClose() - sortingOrder = 0 - if this.timer then - this.timer:Stop() - this.timer = nil + if self.timer then + self.timer:Stop() + self.timer = nil end + for i = 1, #npcList do + poolManager:UnLoadLive(npcList[i].gameObject.name, npcList[i]) + npcList[i]=nil + end + sortingOrder = 0 end --界面销毁时调用(用于子类重写) function DemonSlayerPanel:OnDestroy() + if self.timer then + self.timer:Stop() + self.timer = nil + end sortingOrder = 0 end diff --git a/Assets/ManagedResources/~Lua/Modules/Ranking/RankingSingleListPanel.lua b/Assets/ManagedResources/~Lua/Modules/Ranking/RankingSingleListPanel.lua index 7fa0141a80..292b696a18 100644 --- a/Assets/ManagedResources/~Lua/Modules/Ranking/RankingSingleListPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Ranking/RankingSingleListPanel.lua @@ -362,9 +362,11 @@ function this.SetInfoShow(go,data,rankType,Value0) elseif sData.activiteId == ActivityTypeDef.FastExplore then goldExper:GetComponent("Text").text = Language[12382] elseif sData.activiteId == ActivityTypeDef.FindTreasureExper then - goldExper:GetComponent("Text").text = Language[12392] + goldExper:GetComponent("Text").text = "次数:" elseif sData.activiteId == ActivityTypeDef.ExpeditionExper then - goldExper:GetComponent("Text").text = Language[12393] + goldExper:GetComponent("Text").text = "积分:" + elseif sData.activiteId == ActivityTypeDef.DemonSlayer then + goldExper:GetComponent("Text").text = "试炼层数" end elseif rankType == RANK_TYPE.ARENA_RANK then arenaScore:SetActive(true)