Browse Source

搭配赛补充

zhangyuqian 1 year ago
parent
commit
37de953cf3
35 changed files with 1025 additions and 192 deletions
  1. 2 0
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  2. 40 6
      GameClient/Assets/Game/HotUpdate/Data/MatchingCompetitionDataManager.cs
  3. 17 1
      GameClient/Assets/Game/HotUpdate/Data/PoemPhotoDataManager.cs
  4. 2 2
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component14.cs
  5. 2 2
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component15.cs
  6. 2 2
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component5.cs
  7. 2 2
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component6.cs
  8. 6 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionDetailUI.cs
  9. 5 5
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRankUI.cs
  10. 2 2
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionUpLoadUI.cs
  11. 3 3
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorkListUI.cs
  12. 3 3
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorksUI.cs
  13. 23 11
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingTypeItem.cs
  14. 1 1
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingTypeItem.cs.meta
  15. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/poem/UI_PoemPhotoUI.cs
  16. 143 17
      GameClient/Assets/Game/HotUpdate/ServerProxy/MatchingCompetitionSproxy.cs
  17. 38 2
      GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs
  18. 121 64
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionDetailView.cs
  19. 23 5
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionGatheringView.cs
  20. 37 16
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRankView.cs
  21. 4 3
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRuleTipsView.cs
  22. 38 20
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionSelectView.cs
  23. 53 18
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionUpLoadView.cs
  24. 7 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorkListView.cs
  25. 6 2
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorksView.cs
  26. 195 5
      GameClient/Assets/Game/HotUpdate/Views/Poem/PoemPhotoView.cs
  27. BIN
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0!a.png
  28. BIN
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0.png
  29. BIN
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas1!a.png
  30. 120 0
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas1!a.png.meta
  31. BIN
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas1.png
  32. 120 0
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas1.png.meta
  33. BIN
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_fui.bytes
  34. 7 0
      GameClient/Assets/ResIn/UI/MiniGame/MiniGame_fui.bytes.meta
  35. BIN
      GameClient/Assets/ResIn/UI/Poem/Poem_fui.bytes

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -226,6 +226,7 @@ namespace GFGGame
             await ActivitySProxy.GetTipsStatus();
             await ActivitySProxy.GetOnceStatus(5006);
             await RoleInfoSProxy.GetThemeID();
+            await MatchingCompetitionSproxy.ReqMatchingCompetitionInfo();
 
             FieldDataManager.Instance.waitToShowFieldFightEndView = false;
             bool result = await FieldSProxy.ReqFieldInstanceInfos();
@@ -262,6 +263,7 @@ namespace GFGGame
             TimeTracingSProxy.ReqGetSuitRewardStatus().Coroutine();
             TimeTracingSProxy.ReqGetDataRecord().Coroutine();
             PoemPhotoSProxy.ReqAllPhotoInfos().Coroutine();
+            MatchingCompetitionSproxy.ReqMatchingPhotoData().Coroutine();
             TravelSProxy.ReqTravelInfo().Coroutine();
             TravelSProxy.ReqTravelGuideInfo().Coroutine();
             PoemGallerySProxy.ReqGalleryTheme().Coroutine();

+ 40 - 6
GameClient/Assets/Game/HotUpdate/Data/MatchingCompetitionDataManager.cs

@@ -50,6 +50,15 @@ namespace GFGGame
         public long WorksID = 0;
         public string TempPictureUrl = "";
         public int MatchingRemainingTimes = 1;
+        public MyWorksIdInfo myWorks;
+        /// <summary>
+        /// 搭配赛相册
+        /// </summary>
+        /// <typeparam name="PoemPhotoData"></typeparam>
+        /// <returns></returns>
+        public List<PoemPhotoData> MatchingPhotoInfos = new List<PoemPhotoData>();
+        //角色详情界面图片信息
+        public NTexture DetailNtexture;
         //本期排行榜数据
         public List<MatchingPhotoWorksData> _currentRankList = new List<MatchingPhotoWorksData>();
         //往期作品集
@@ -111,12 +120,22 @@ namespace GFGGame
             {
                 CollocationInfo itemInfo = new CollocationInfo();
                 itemInfo.ItemId = DressPropIdList[i];
-                string transStr = TransformDataList[i].position.x.ToString() + TransformDataList[i].position.y.ToString() + TransformDataList[i].position.z.ToString()
-                   + TransformDataList[i].rotationZ.ToString() 
-                   + TransformDataList[i].scale.x.ToString()+ TransformDataList[i].scale.y.ToString() + TransformDataList[i].scale.z.ToString();
+                string transStr = TransformDataList[i].position.x.ToString()+"_" + TransformDataList[i].position.y.ToString() + "_" 
+                    + TransformDataList[i].position.z.ToString()
+                   + "_" + TransformDataList[i].rotationZ.ToString()
+                   + "_" + TransformDataList[i].scale.x.ToString() + "_" + 
+                   TransformDataList[i].scale.y.ToString() + "_" + TransformDataList[i].scale.z.ToString();
                 itemInfo.ClientPosition = transStr;
                 AllDressIDInfoList.Add(itemInfo);
             }
+            CollocationInfo itemBgInfo = new CollocationInfo();
+            itemBgInfo.ItemId = MatchingCompetitionDataManager.Instance.DressUpBgID;
+            itemBgInfo.ClientPosition = "";
+            AllDressIDInfoList.Add(itemBgInfo);
+            CollocationInfo itemActionInfo = new CollocationInfo();
+            itemActionInfo.ItemId = MatchingCompetitionDataManager.Instance.MathingDressDate.actionId;
+            itemActionInfo.ClientPosition = "";
+            AllDressIDInfoList.Add(itemActionInfo);
         }
         //解析后台获取的信息
         public void AnalysisInfoToList()
@@ -124,34 +143,49 @@ namespace GFGGame
             List<int> dressitemIDList = new List<int>();
             List<int> propIDList = new List<int>();
             List<TransformData> transDataList = new List<TransformData>();
+            DressUpBgID = 0;
+            MathingDressDate.actionId = 0;
             for (int i = 0; i < AllDressIDInfoList.Count; i++)
             {
                 if(AllDressIDInfoList[i].ItemId == roleID)
                 {
                     propIDList.Add(AllDressIDInfoList[i].ItemId);
+                    transDataList.Add(AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
                 }
                 else
                 {
                     ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(AllDressIDInfoList[i].ItemId);
                     if (itemCfg != null && itemCfg.itemType == ConstItemType.DRESS_UP)
                     {
-                        if(itemCfg.subType == 9 || itemCfg.subType == 10 || itemCfg.subType == 11|| itemCfg.subType == 12)
+                        if(itemCfg.subType == 19 || itemCfg.subType == 17 || itemCfg.subType == 21|| itemCfg.subType == 22)
                         {
                             //记录道具和位置信息
                             propIDList.Add(AllDressIDInfoList[i].ItemId);
                             transDataList.Add(AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
                         }
+                        else if (itemCfg != null && itemCfg.subType == ConstDressUpItemType.BEI_JING)
+                        {
+                            DressUpBgID = itemCfg.id;
+                        }
                         else
                         {
                             dressitemIDList.Add(AllDressIDInfoList[i].ItemId);
                         }    
                     }
-                    else if (itemCfg.itemType == ConstItemType.PHOTOGRAPH)
+                    else if (itemCfg != null && itemCfg.itemType == ConstItemType.PHOTOGRAPH)
                     {
                         //记录道具和位置信息
                         propIDList.Add(AllDressIDInfoList[i].ItemId);
                         transDataList.Add(AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
                     }
+                    else if(itemCfg == null)
+                    {
+                        SuitCfg actionId = SuitCfgArray.Instance.GetCfg(AllDressIDInfoList[i].ItemId);
+                        if(actionId !=null)
+                        {
+                            MathingDressDate.actionId = AllDressIDInfoList[i].ItemId;
+                        }   
+                    }
                 }
             }
             MathingDressDate.itemList = dressitemIDList;
@@ -436,7 +470,7 @@ namespace GFGGame
                             dressitemIDList.Add(OneRoleInfo.JudgingInfo.CollocationInfoList[i].ItemId);
                         }
                     }
-                    else if (itemCfg.itemType == ConstItemType.PHOTOGRAPH)
+                    else if (itemCfg != null && itemCfg.itemType == ConstItemType.PHOTOGRAPH)
                     {
                         //记录道具和位置信息
                         propIDList.Add(OneRoleInfo.JudgingInfo.CollocationInfoList[i].ItemId);

+ 17 - 1
GameClient/Assets/Game/HotUpdate/Data/PoemPhotoDataManager.cs

@@ -39,7 +39,11 @@ namespace GFGGame
             {
                 poemPhotoDatas = WsqsPhotoInfos;
             }
-            
+            else if (sourceType == 2)
+            {
+                poemPhotoDatas = MatchingCompetitionDataManager.Instance.MatchingPhotoInfos;
+            }
+
             poemPhotoDatas.Add(photoData);
             poemPhotoDatas.SortInfos();
         }
@@ -55,6 +59,10 @@ namespace GFGGame
             {
                 poemPhotoDatas = WsqsPhotoInfos;
             }
+            else if (sourceType == 2)
+            {
+                poemPhotoDatas = MatchingCompetitionDataManager.Instance.MatchingPhotoInfos;
+            }
 
             for (int i = 0; i < pictureIds.Count; i++)
             {
@@ -82,6 +90,10 @@ namespace GFGGame
             {
                 poemPhotoDatas = WsqsPhotoInfos;
             }
+            else if(sourceType == 2)
+            {
+                poemPhotoDatas = MatchingCompetitionDataManager.Instance.MatchingPhotoInfos;
+            }
             for (int i = 0; i < poemPhotoDatas.Count; i++)
             {
                 if (poemPhotoDatas[i].PictureId == pictureId)
@@ -106,6 +118,10 @@ namespace GFGGame
             {
                 poemPhotoDatas = WsqsPhotoInfos;
             }
+            else if (sourceType == 2)
+            {
+                poemPhotoDatas = MatchingCompetitionDataManager.Instance.MatchingPhotoInfos;
+            }
             for (int i = 0; i < poemPhotoDatas.Count; i++)
             {
                 if (poemPhotoDatas[i].PictureId == pictureId)

+ 2 - 2
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component14.cs

@@ -7,7 +7,7 @@ namespace UI.MatchingCompetition
     public partial class UI_Component14
     {
         public GComponent target;
-        public GImage m_playerImage;
+        public GLoader m_playerImage;
         public const string URL = "ui://ri3cveycp3ft22";
         public const string PACKAGE_NAME = "MatchingCompetition";
         public const string RES_NAME = "Component14";
@@ -55,7 +55,7 @@ namespace UI.MatchingCompetition
 
         private void Init(GComponent comp)
         {
-            m_playerImage = (GImage)comp.GetChild("playerImage");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
         }
         public void Dispose(bool disposeTarget = false)
         {

+ 2 - 2
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component15.cs

@@ -7,7 +7,7 @@ namespace UI.MatchingCompetition
     public partial class UI_Component15
     {
         public GComponent target;
-        public GImage m_playerImage;
+        public GLoader m_playerImage;
         public const string URL = "ui://ri3cveycp3ft23";
         public const string PACKAGE_NAME = "MatchingCompetition";
         public const string RES_NAME = "Component15";
@@ -55,7 +55,7 @@ namespace UI.MatchingCompetition
 
         private void Init(GComponent comp)
         {
-            m_playerImage = (GImage)comp.GetChild("playerImage");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
         }
         public void Dispose(bool disposeTarget = false)
         {

+ 2 - 2
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component5.cs

@@ -7,7 +7,7 @@ namespace UI.MatchingCompetition
     public partial class UI_Component5
     {
         public GComponent target;
-        public GImage m_playerImage;
+        public GLoader m_playerImage;
         public GTextField m_seasonText;
         public GTextField m_seasonName;
         public GTextField m_openTime;
@@ -58,7 +58,7 @@ namespace UI.MatchingCompetition
 
         private void Init(GComponent comp)
         {
-            m_playerImage = (GImage)comp.GetChild("playerImage");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
             m_seasonText = (GTextField)comp.GetChild("seasonText");
             m_seasonName = (GTextField)comp.GetChild("seasonName");
             m_openTime = (GTextField)comp.GetChild("openTime");

+ 2 - 2
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component6.cs

@@ -8,7 +8,7 @@ namespace UI.MatchingCompetition
     {
         public GComponent target;
         public Controller m_c1;
-        public GImage m_playerImage;
+        public GLoader m_playerImage;
         public GComponent m_head;
         public GTextField m_nameText;
         public GTextField m_countText;
@@ -60,7 +60,7 @@ namespace UI.MatchingCompetition
         private void Init(GComponent comp)
         {
             m_c1 = comp.GetController("c1");
-            m_playerImage = (GImage)comp.GetChild("playerImage");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
             m_head = (GComponent)comp.GetChild("head");
             m_nameText = (GTextField)comp.GetChild("nameText");
             m_countText = (GTextField)comp.GetChild("countText");

+ 6 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionDetailUI.cs

@@ -7,6 +7,8 @@ namespace UI.MatchingCompetition
     public partial class UI_MatchingCompetitionDetailUI
     {
         public GComponent target;
+        public GLoader m_defulatBg;
+        public GLoader m_playerImage;
         public GLoader m_btn;
         public GButton m_BtnBack;
         public GList m_nameList;
@@ -58,6 +60,8 @@ namespace UI.MatchingCompetition
 
         private void Init(GComponent comp)
         {
+            m_defulatBg = (GLoader)comp.GetChild("defulatBg");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
             m_btn = (GLoader)comp.GetChild("btn");
             m_BtnBack = (GButton)comp.GetChild("BtnBack");
             m_nameList = (GList)comp.GetChild("nameList");
@@ -65,6 +69,8 @@ namespace UI.MatchingCompetition
         }
         public void Dispose(bool disposeTarget = false)
         {
+            m_defulatBg = null;
+            m_playerImage = null;
             m_btn = null;
             m_BtnBack = null;
             m_nameList = null;

+ 5 - 5
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRankUI.cs

@@ -9,14 +9,14 @@ namespace UI.MatchingCompetition
         public GComponent target;
         public Controller m_c1;
         public GLoader m_bg;
-        public GButton m_BtnBack;
-        public GImage m_playerImage;
+        public GLoader m_playerImage;
         public GLoader m_ruleBtn;
         public GTextField m_titleText;
         public GButton m_btnBefore;
         public GList m_RankList;
         public UI_Component3 m_playerHead;
         public GButton m_btnLook;
+        public GButton m_BtnBack;
         public const string URL = "ui://ri3cveycp3ft1g";
         public const string PACKAGE_NAME = "MatchingCompetition";
         public const string RES_NAME = "MatchingCompetitionRankUI";
@@ -66,20 +66,19 @@ namespace UI.MatchingCompetition
         {
             m_c1 = comp.GetController("c1");
             m_bg = (GLoader)comp.GetChild("bg");
-            m_BtnBack = (GButton)comp.GetChild("BtnBack");
-            m_playerImage = (GImage)comp.GetChild("playerImage");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
             m_ruleBtn = (GLoader)comp.GetChild("ruleBtn");
             m_titleText = (GTextField)comp.GetChild("titleText");
             m_btnBefore = (GButton)comp.GetChild("btnBefore");
             m_RankList = (GList)comp.GetChild("RankList");
             m_playerHead = (UI_Component3)UI_Component3.Create(comp.GetChild("playerHead"));
             m_btnLook = (GButton)comp.GetChild("btnLook");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_c1 = null;
             m_bg = null;
-            m_BtnBack = null;
             m_playerImage = null;
             m_ruleBtn = null;
             m_titleText = null;
@@ -88,6 +87,7 @@ namespace UI.MatchingCompetition
             m_playerHead.Dispose();
             m_playerHead = null;
             m_btnLook = null;
+            m_BtnBack = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 2 - 2
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionUpLoadUI.cs

@@ -9,7 +9,7 @@ namespace UI.MatchingCompetition
         public GComponent target;
         public Controller m_c1;
         public GLoader m_bg;
-        public GImage m_playerImage;
+        public GLoader m_playerImage;
         public GButton m_BtnBack;
         public GButton m_btnLook;
         public GLoader m_ruleBtn;
@@ -71,7 +71,7 @@ namespace UI.MatchingCompetition
         {
             m_c1 = comp.GetController("c1");
             m_bg = (GLoader)comp.GetChild("bg");
-            m_playerImage = (GImage)comp.GetChild("playerImage");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
             m_BtnBack = (GButton)comp.GetChild("BtnBack");
             m_btnLook = (GButton)comp.GetChild("btnLook");
             m_ruleBtn = (GLoader)comp.GetChild("ruleBtn");

+ 3 - 3
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorkListUI.cs

@@ -9,9 +9,9 @@ namespace UI.MatchingCompetition
         public GComponent target;
         public GLoader m_bg;
         public GGraph m_suitShow;
-        public GButton m_BtnBack;
         public GTextField m_titleText;
         public GList m_workList;
+        public GButton m_BtnBack;
         public const string URL = "ui://ri3cveycp3ft1p";
         public const string PACKAGE_NAME = "MatchingCompetition";
         public const string RES_NAME = "MatchingCompetitionWorkListUI";
@@ -61,17 +61,17 @@ namespace UI.MatchingCompetition
         {
             m_bg = (GLoader)comp.GetChild("bg");
             m_suitShow = (GGraph)comp.GetChild("suitShow");
-            m_BtnBack = (GButton)comp.GetChild("BtnBack");
             m_titleText = (GTextField)comp.GetChild("titleText");
             m_workList = (GList)comp.GetChild("workList");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_bg = null;
             m_suitShow = null;
-            m_BtnBack = null;
             m_titleText = null;
             m_workList = null;
+            m_BtnBack = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 3 - 3
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorksUI.cs

@@ -8,9 +8,9 @@ namespace UI.MatchingCompetition
     {
         public GComponent target;
         public GLoader m_bg;
-        public GButton m_BtnBack;
         public GTextField m_titleText;
         public GList m_worksList;
+        public GButton m_BtnBack;
         public const string URL = "ui://ri3cveycp3ft1n";
         public const string PACKAGE_NAME = "MatchingCompetition";
         public const string RES_NAME = "MatchingCompetitionWorksUI";
@@ -59,16 +59,16 @@ namespace UI.MatchingCompetition
         private void Init(GComponent comp)
         {
             m_bg = (GLoader)comp.GetChild("bg");
-            m_BtnBack = (GButton)comp.GetChild("BtnBack");
             m_titleText = (GTextField)comp.GetChild("titleText");
             m_worksList = (GList)comp.GetChild("worksList");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_bg = null;
-            m_BtnBack = null;
             m_titleText = null;
             m_worksList = null;
+            m_BtnBack = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 23 - 11
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_ComponentName.cs → GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingTypeItem.cs

@@ -4,18 +4,22 @@ using FairyGUI;
 
 namespace UI.MatchingCompetition
 {
-    public partial class UI_ComponentName
+    public partial class UI_MatchingTypeItem
     {
         public GComponent target;
-        public GTextField m_name;
-        public const string URL = "ui://ri3cveycp3ft2c";
+        public Controller m_itemType;
+        public GLoader m_icon;
+        public GImage m_imgNeed;
+        public GImage m_imgNew;
+        public GTextField m_txtname;
+        public const string URL = "ui://ri3cveycn3um2w";
         public const string PACKAGE_NAME = "MatchingCompetition";
-        public const string RES_NAME = "ComponentName";
-        private static UI_ComponentName _proxy;
+        public const string RES_NAME = "MatchingTypeItem";
+        private static UI_MatchingTypeItem _proxy;
 
-        public static UI_ComponentName Create(GObject gObject = null)
+        public static UI_MatchingTypeItem Create(GObject gObject = null)
         {
-            var ui = new UI_ComponentName();
+            var ui = new UI_MatchingTypeItem();
             if(gObject == null)
             	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
             else
@@ -24,11 +28,11 @@ namespace UI.MatchingCompetition
             return ui;
         }
 
-        public static UI_ComponentName Proxy(GObject gObject = null)
+        public static UI_MatchingTypeItem Proxy(GObject gObject = null)
         {
             if(_proxy == null)
             {
-                _proxy = new UI_ComponentName();
+                _proxy = new UI_MatchingTypeItem();
             }
             var ui = _proxy;
             if(gObject == null)
@@ -55,11 +59,19 @@ namespace UI.MatchingCompetition
 
         private void Init(GComponent comp)
         {
-            m_name = (GTextField)comp.GetChild("name");
+            m_itemType = comp.GetController("itemType");
+            m_icon = (GLoader)comp.GetChild("icon");
+            m_imgNeed = (GImage)comp.GetChild("imgNeed");
+            m_imgNew = (GImage)comp.GetChild("imgNew");
+            m_txtname = (GTextField)comp.GetChild("txtname");
         }
         public void Dispose(bool disposeTarget = false)
         {
-            m_name = null;
+            m_itemType = null;
+            m_icon = null;
+            m_imgNeed = null;
+            m_imgNew = null;
+            m_txtname = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 1 - 1
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_ComponentName.cs.meta → GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingTypeItem.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e4646ced4bc92394ebdc0a905faadb18
+guid: 6abf72f0918c15e4dba4412e7ba420ae
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/poem/UI_PoemPhotoUI.cs

@@ -13,6 +13,7 @@ namespace UI.Poem
         public GButton m_btnback;
         public GList m_list;
         public GList m_listTravel;
+        public GList m_listCompetion;
         public GLoader m_icon;
         public GList m_typeList;
         public GButton m_btnConfirmDelete;
@@ -75,6 +76,7 @@ namespace UI.Poem
             m_btnback = (GButton)comp.GetChild("btnback");
             m_list = (GList)comp.GetChild("list");
             m_listTravel = (GList)comp.GetChild("listTravel");
+            m_listCompetion = (GList)comp.GetChild("listCompetion");
             m_icon = (GLoader)comp.GetChild("icon");
             m_typeList = (GList)comp.GetChild("typeList");
             m_btnConfirmDelete = (GButton)comp.GetChild("btnConfirmDelete");
@@ -93,6 +95,7 @@ namespace UI.Poem
             m_btnback = null;
             m_list = null;
             m_listTravel = null;
+            m_listCompetion = null;
             m_icon = null;
             m_typeList = null;
             m_btnConfirmDelete = null;

+ 143 - 17
GameClient/Assets/Game/HotUpdate/ServerProxy/MatchingCompetitionSproxy.cs

@@ -1,8 +1,21 @@
 using ET;
+using GFGGame;
 using FairyGUI;
 using UnityEngine;
 using UnityEngine.Networking;
+using System.Collections.Generic;
 
+namespace ET
+{
+    public class M2C_NoticeMatchingStateHandler : AMHandler<S2C_UpJudgingRoundWorksToppingStatus>
+    {
+        protected override async ETTask Run(Session session, S2C_UpJudgingRoundWorksToppingStatus message)
+        {
+
+            await ETTask.CompletedTask;
+        }
+    }
+}
 namespace GFGGame
 {
     public class MatchingCompetitionSproxy
@@ -13,30 +26,45 @@ namespace GFGGame
             S2C_GetJudgingRoundInfo response = (S2C_GetJudgingRoundInfo)await MessageHelper.SendToServer(new C2S_GetJudgingRoundInfo { });
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
             MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason = response.JudgingRoundOpenId;
-            MatchingCompetitionDataManager.Instance.MatchingState = response.PhaseType;
+            MatchingCompetitionDataManager.Instance.MatchingState = Mathf.Max(response.PhaseType - 1);
             MatchingCompetitionDataManager.Instance.MatchingEndTimes = response.PhaseEndTime;
+            MatchingCompetitionDataManager.Instance.myWorks = response.MyWorks;
+            if(response.MyWorks != null)
+            {
+                MatchingCompetitionDataManager.Instance.AllDressIDInfoList = response.MyWorks.CollocationInfoList;
+            }
+            else
+            {
+                MatchingCompetitionDataManager.Instance.AllDressIDInfoList = new List<CollocationInfo>();
+            }
+            MatchingCompetitionDataManager.Instance.AnalysisInfoToList();
             return true;
         }
         //获取搭配作品信息
-        public static async ETTask<bool> ReqMatchingCompetitionDressData()
-        {
-            var response = (S2C_RequestUpLoadJudgingRoundWorks)await MessageHelper.SendToServer(new C2S_RequestUpLoadJudgingRoundWorks {});
-            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
-            return true;
-        }
+        //public static async ETTask<bool> ReqMatchingCompetitionDressData()
+        //{
+        //    var response = (S2C_RequestUpLoadJudgingRoundWorks)await MessageHelper.SendToServer(new C2S_RequestUpLoadJudgingRoundWorks {});
+        //    if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+        //    return true;
+        //}
         //获取一个热门推荐的玩家
         public static async ETTask<bool> ReqGetOnePlayers()
         {
             var response = (S2C_GetOnePlayers)await MessageHelper.SendToServer(new C2S_GetOnePlayers { });
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
             MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo = response.JudgingRoundRole;
+            if (response.JudgingRoundRole == null)
+            {
+                return false;
+            }
             Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingOneDataManager.Instance.OneRoleInfo));
             MatchingOneDataManager.Instance.AnalysisInfoToList();
             return true;
         }
         //上传作品信息
-        public static async ETTask<bool> UpLoadMatchingCompetitionDressData()
+        public static async ETTask<object[]> UpLoadMatchingCompetitionDressData()
         {
+            MatchingCompetitionDataManager.Instance.ConvertInfoToList();
             var response = (S2C_RequestUpLoadJudgingRoundWorks)await MessageHelper.SendToServer(new C2S_RequestUpLoadJudgingRoundWorks
             {
                 PictureType = 1,
@@ -44,10 +72,10 @@ namespace GFGGame
                 ActionId = MatchingCompetitionDataManager.Instance.MathingDressDate.actionId,
                 CollocationInfoList = MatchingCompetitionDataManager.Instance.AllDressIDInfoList
             });
-            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            if (!(response is { Error: ErrorCode.ERR_Success })) return null;
             MatchingCompetitionDataManager.Instance.WorksID = response.WorksId;
             MatchingCompetitionDataManager.Instance.TempPictureUrl = response.TempPictureUrl;
-            return true;
+            return new object[] { response.TempPictureUrl, response.WorksId };
         }
         //通知服务端上传成功
         public static async ETTask<bool> UploadSuccess()
@@ -66,20 +94,47 @@ namespace GFGGame
         {
             var response = (S2C_GetTwoPlayers)await MessageHelper.SendToServer(new C2S_GetTwoPlayers { });
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
-            MatchingTwoDataManager.Instance.LeftRoleInfo.JudgingInfo = response.JudgingRoundRoleInfokList[0];
-            Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingTwoDataManager.Instance.LeftRoleInfo));
-            MatchingTwoDataManager.Instance.RightRoleInfo.JudgingInfo = response.JudgingRoundRoleInfokList[1];
-            Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingTwoDataManager.Instance.RightRoleInfo));
+            if(response.JudgingRoundRoleInfoList == null || response.JudgingRoundRoleInfoList.Count < 2)
+            {
+                return false;
+            }
+            MatchingTwoDataManager.Instance.LeftRoleInfo.JudgingInfo = response.JudgingRoundRoleInfoList[0];
+            if(response.JudgingRoundRoleInfoList[0] != null)
+            {
+                Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingTwoDataManager.Instance.LeftRoleInfo));
+            }
+            MatchingTwoDataManager.Instance.RightRoleInfo.JudgingInfo = response.JudgingRoundRoleInfoList[1];
+            if (response.JudgingRoundRoleInfoList[1] != null)
+            {
+                Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingTwoDataManager.Instance.RightRoleInfo));
+            }
+            return true;
+        }
+        //选择搭配作品
+        public static async ETTask<bool> ReqCheckMatchingCompetitionWork(long workID,long anotherWorkId )
+        {
+            var response = (S2C_SelFavoriteWorks)await MessageHelper.SendToServer(new C2S_SelFavoriteWorks
+            {
+                WorksId = workID,
+                AnotherWorksId = anotherWorkId
+            }) ;
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            if (response.JudgingRoundRoleInfoList == null || response.JudgingRoundRoleInfoList.Count < 2)
+            {
+                return false;
+            }
+            MatchingTwoDataManager.Instance.LeftRoleInfo.JudgingInfo = response.JudgingRoundRoleInfoList[0];
+            MatchingTwoDataManager.Instance.RightRoleInfo.JudgingInfo = response.JudgingRoundRoleInfoList[1];
+            BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.BonusList));
             return true;
         }
-
         //获取当前排行榜
         public static async ETTask<bool> ReqCurrentRank()
         {
             var response = (S2C_GetCurJudgingRoundRankList)await MessageHelper.SendToServer(new C2S_GetCurJudgingRoundRankList { });
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
             MatchingCompetitionDataManager.Instance._currentRankList.Clear();
-            foreach (var item in response.JudgingRoundRoleInfokList)
+            foreach (var item in response.JudgingRoundRoleInfoList)
             {
                 MatchingPhotoWorksData data = new MatchingPhotoWorksData();
                 data.JudgingInfo = item;
@@ -109,7 +164,7 @@ namespace GFGGame
             var response = (S2C_GetOldJudgingRoundRankList)await MessageHelper.SendToServer(new C2S_GetOldJudgingRoundRankList { JudgingRoundOpenId = id});
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
             MatchingCompetitionDataManager.Instance._BeforeRankList.Clear();
-            foreach (var item in response.JudgingRoundRoleInfokList)
+            foreach (var item in response.JudgingRoundRoleInfoList)
             {
                 MatchingPhotoWorksData data = new MatchingPhotoWorksData();
                 data.JudgingInfo = item;
@@ -118,5 +173,76 @@ namespace GFGGame
             Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingCompetitionDataManager.Instance._BeforeRankList));
             return true;
         }
+
+        //搭配赛相册系协议
+        public static async ETTask<bool> ReqMatchingPhotoData()
+        {
+            var response = (S2C_GetJudgingRoundWorksList)await MessageHelper.SendToServer(new C2S_GetJudgingRoundWorksList { });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            MatchingCompetitionDataManager.Instance.MatchingPhotoInfos.Clear();
+            foreach (var item in response.JudgingRoundRoleInfoList)
+            {
+                PoemPhotoData photoData = new PoemPhotoData();
+                photoData.PictureId = item.WorksId;
+                photoData.CreationTime = item.CreationTime;
+                photoData.ToppingStatus = item.ToppingStatus;
+                photoData.PictureTempUrl = item.PictureTempUrl;
+                MatchingCompetitionDataManager.Instance.MatchingPhotoInfos.Add(photoData);
+            }
+            Timers.inst.StartCoroutine(PictureStorageHelper.Download(MatchingCompetitionDataManager.Instance.MatchingPhotoInfos));
+            return true;
+        }
+        //修改图片锁定状态
+        public static async ETTask<bool> ReqChangeLockingState(long pictureId, bool state, int sourceType)
+        {
+            S2C_UpJudgingRoundWorksLockingStatus response = null;
+            response = (S2C_UpJudgingRoundWorksLockingStatus)await MessageHelper.SendToServer(new C2S_UpJudgingRoundWorksLockingStatus() { WorksId = pictureId, Status = state });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    PoemPhotoDataManager.Instance.ChangeLockingState(response.WorksId, response.Status, sourceType);
+                    EventAgent.DispatchEvent(ConstMessage.POEM_PHOTO_INFOS_CHANGE);
+
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        //修改图片置顶状态
+        public static async ETTask<bool> ReqChangeToppingState(long pictureId, bool state, int sourceType)
+        {
+            S2C_UpJudgingRoundWorksToppingStatus response = null;
+            response = (S2C_UpJudgingRoundWorksToppingStatus)await MessageHelper.SendToServer(new C2S_UpJudgingRoundWorksToppingStatus() { WorksId = pictureId, Status = state });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+
+                    PoemPhotoDataManager.Instance.ChangeToppingState(response.WorksId, response.Status, sourceType);
+                    EventAgent.DispatchEvent(ConstMessage.POEM_PHOTO_INFOS_CHANGE);
+                    return true;
+                }
+            }
+            return false;
+        }
+        //批量删除玩家相册
+        public static async ETTask<bool> ReqRemovedPhoto(List<long> pictureIds, int sourceType)
+        {
+            S2C_RemovedJudgingRoundWorks response = null;
+            response = (S2C_RemovedJudgingRoundWorks)await MessageHelper.SendToServer(new C2S_RemovedJudgingRoundWorks() { WorksIds = pictureIds });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    PoemPhotoDataManager.Instance.Remove(response.WorksIds, sourceType);
+                    EventAgent.DispatchEvent(ConstMessage.POEM_PHOTO_INFOS_CHANGE);
+
+                    return true;
+                }
+            }
+            return false;
+        }
     }
 }

+ 38 - 2
GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs

@@ -339,6 +339,14 @@ namespace GFGGame
         public async Task UpdateSceneTransform()
         {
             //int time = 5 * (MatchingCompetitionDataManager.Instance.TransformDataList.Count+1);
+            if (MatchingCompetitionDataManager.Instance.DressUpBgID == 0)
+            {
+                PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(180001));
+            }
+            else
+            {
+                PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.DressUpBgID));
+            }
             await Task.Delay(100);
             if (MatchingCompetitionDataManager.Instance.BorderID != 0)
             {
@@ -752,10 +760,38 @@ namespace GFGGame
                 }
                 MatchingCompetitionDataManager.Instance.MathingDressDate = MyDressUpHelper.dressUpObj.DressUpDataClone();
                 MatchingCompetitionDataManager.Instance.SetTransformData();
+
                 AlertUI.Show("作品已保存,是否确认上传此作品?")
                 .SetLeftButton(true, "否").SetRightButton(true, "是", async (object data) =>
-                {  
-                    
+                {
+                    ViewManager.Show<ModalStatusView>("上传中...");
+                    await MatchingCompetitionSproxy.ReqMatchingCompetitionInfo();
+                    object[] rsp = await MatchingCompetitionSproxy.UpLoadMatchingCompetitionDressData();
+                    if (rsp == null) return;
+                    byte[] bytes = tex.EncodeToJPG();
+                    if(rsp[0] == null)
+                    {
+                        ViewManager.Hide<ModalStatusView>();
+                        PromptController.Instance.ShowFloatTextPrompt("网络异常,上传失败!");
+                        return;
+                    }
+                    bool pushResult = await PictureStorageHelper.PushToHWCloud(rsp[0].ToString(), bytes);
+                    if (!pushResult)
+                    {
+                        ViewManager.Hide<ModalStatusView>();
+                        PromptController.Instance.ShowFloatTextPrompt("网络异常,上传失败!");
+                        return;
+                    }
+
+                    bool result = await MatchingCompetitionSproxy.UploadSuccess();
+                    if (result)
+                    {
+                        ViewManager.Hide<ModalStatusView>();
+                        PromptController.Instance.ShowFloatTextPrompt("上传成功!");
+                        OnClickBtnBack();
+                        ViewManager.GoBackFrom(typeof(DressUpView).FullName);
+                    }
+                    ViewManager.Hide<ModalStatusView>();
                 });
             }
         }

+ 121 - 64
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionDetailView.cs

@@ -4,6 +4,7 @@ using System.Threading.Tasks;
 using ET;
 using FairyGUI;
 using UI.MatchingCompetition;
+using UI.DressUp;
 using UnityEngine;
 
 namespace GFGGame
@@ -15,6 +16,7 @@ namespace GFGGame
         private int nameIndex = 0;
         private List<string> nameList = new List<string>() { "饰品","外套","鞋子","袜子","内搭","上衣","下装","手持物","妆容","道具","背景","拍照" };
         private List<int> IdList = new List<int>();
+        private List<int> AllIdList = new List<int>();
         public override void Dispose()
         {
             if (_sceneObject != null)
@@ -39,23 +41,21 @@ namespace GFGGame
             isReturnView = true;
             isfullScreen = true;
 
-            _ui.m_nameList.itemRenderer = ListItemType1Renderer;
+            _ui.m_nameList.itemRenderer = ListType1Item;
             _ui.m_dressList.itemRenderer = ListItemType2Render;
             _ui.m_BtnBack.onClick.Add(OnClickBtnBack);
             _ui.m_btn.onClick.Add(OnClickBtn);
         }
-        protected override void AddEventListener()
-        {
-            base.AddEventListener();
-        }
         protected override void OnShown()
         {
             base.OnShown();
-            if (_sceneObject == null)
-            {
-                _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
-                MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, false, false);
-            }
+            //if (_sceneObject == null)
+            //{
+            //    _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
+            //    MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, false, false);
+            //}
+            AllIdList = this.viewData as List<int>;
+            _ui.m_dressList.visible = false;
             UpdateDress();
             UpdateView();
         }
@@ -70,71 +70,107 @@ namespace GFGGame
             base.OnHide();
         }
 
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDress);
+        }
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDress);
         }
         private void UpdateView()
         {
+            _ui.m_nameList.numItems = DressUpMenuItemCfg1Array.Instance.dataArray.Length - 1;
         }
-        private async void UpdateDress()
+        private void UpdateDress()
         {
-            //这里要换成获取其他玩家数据
-                MatchingCompetitionDataManager.Instance.itemGameObjs.Clear();
-                PhotographDataManager.Instance.itemGameObjs.Clear();
-                if (_sceneObject == null)
-                {
-                    _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
-                }
-                PhotographSceneManager.Instance.sceneObject = _sceneObject;
-                if (MatchingCompetitionDataManager.Instance.DressUpBgID == 0)
-                {
-                    PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(180001));
-                }
-                else
-                {
-                    PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.DressUpBgID));
-                }
-                PhotographSceneManager.Instance.AddBodyItem();
-                GameObject bodyParent = _sceneObject.transform.Find("Scene/Role").gameObject;
-                PhotographDataManager.Instance.dressUpObj.setSceneObj(_sceneObject, false, true, bodyParent, false, null);
-                PhotographDataManager.Instance.dressUpObj.PutOnDressUpData(MatchingCompetitionDataManager.Instance.MathingDressDate);
+            _ui.m_playerImage.texture = MatchingCompetitionDataManager.Instance.DetailNtexture;
+            ////这里要换成获取其他玩家数据,改成用图片
+            //    MatchingCompetitionDataManager.Instance.itemGameObjs.Clear();
+            //    PhotographDataManager.Instance.itemGameObjs.Clear();
+            //    if (_sceneObject == null)
+            //    {
+            //        _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
+            //    }
+            //    PhotographSceneManager.Instance.sceneObject = _sceneObject;
+            //    if (MatchingCompetitionDataManager.Instance.DressUpBgID == 0)
+            //    {
+            //        PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(180001));
+            //    }
+            //    else
+            //    {
+            //        PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.DressUpBgID));
+            //    }
+            //    PhotographSceneManager.Instance.AddBodyItem();
+            //    GameObject bodyParent = _sceneObject.transform.Find("Scene/Role").gameObject;
+            //    PhotographDataManager.Instance.dressUpObj.setSceneObj(_sceneObject, false, true, bodyParent, false, null);
+            //    PhotographDataManager.Instance.dressUpObj.PutOnDressUpData(MatchingCompetitionDataManager.Instance.MathingDressDate);
 
-                //对搭配赛特殊处理
-                for (int i = 0; i < MatchingCompetitionDataManager.Instance.DressPropIdList.Count; i++)
-                {
-                    if (MatchingCompetitionDataManager.Instance.DressPropIdList[i] == MatchingCompetitionDataManager.Instance.roleID)
-                    {
-                        continue;
-                    }
-                    else
-                    {
-                        ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.DressPropIdList[i]);
-                        MatchingCompetitionDataManager.Instance.AddSceneItem(itemCfg, true);
-                    }
-                }
-                await Task.Delay(100);
-                MatchingCompetitionDataManager.Instance.InsertGameObjectList();
-                for (int i = 0; i < MatchingCompetitionDataManager.Instance.TransformDataList.Count; i++)
-                {
-                    TransformData itemdata = MatchingCompetitionDataManager.Instance.TransformDataList[i];
-                    GameObject itemGObj = MatchingCompetitionDataManager.Instance.itemGameObjs[i];
-                    MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.position = itemdata.position;
-                    MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.Rotate(itemGObj.transform.eulerAngles.x, itemGObj.transform.eulerAngles.y, itemdata.rotationZ);
-                    MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.localScale = itemdata.scale;
-                    PhotographUtil.Instance.ChangeLayer(MatchingCompetitionDataManager.Instance.itemGameObjs[i], i * PhotographDataManager.layerCount, "up");
-                }
+            //    //对搭配赛特殊处理
+            //    for (int i = 0; i < MatchingCompetitionDataManager.Instance.DressPropIdList.Count; i++)
+            //    {
+            //        if (MatchingCompetitionDataManager.Instance.DressPropIdList[i] == MatchingCompetitionDataManager.Instance.roleID)
+            //        {
+            //            continue;
+            //        }
+            //        else
+            //        {
+            //            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.DressPropIdList[i]);
+            //            MatchingCompetitionDataManager.Instance.AddSceneItem(itemCfg, true);
+            //        }
+            //    }
+            //    await Task.Delay(100);
+            //    MatchingCompetitionDataManager.Instance.InsertGameObjectList();
+            //    for (int i = 0; i < MatchingCompetitionDataManager.Instance.TransformDataList.Count; i++)
+            //    {
+            //        TransformData itemdata = MatchingCompetitionDataManager.Instance.TransformDataList[i];
+            //        GameObject itemGObj = MatchingCompetitionDataManager.Instance.itemGameObjs[i];
+            //        MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.position = itemdata.position;
+            //        MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.Rotate(itemGObj.transform.eulerAngles.x, itemGObj.transform.eulerAngles.y, itemdata.rotationZ);
+            //        MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.localScale = itemdata.scale;
+            //        PhotographUtil.Instance.ChangeLayer(MatchingCompetitionDataManager.Instance.itemGameObjs[i], i * PhotographDataManager.layerCount, "up");
+            //    }
         }
-        private void ListItemType1Renderer(int index, GObject obj)
+        //private void ListItemType1Renderer(int index, GObject obj)
+        //{
+        //    UI_ComponentName item = UI_ComponentName.Proxy(obj);
+        //    if(index == DressUpMenuItemCfg1Array.Instance.dataArray.Length - 1)
+        //    {
+        //        item.m_name.text = "拍照";
+        //    }
+        //    else
+        //    {
+        //        item.m_name.text = DressUpMenuItemCfg1Array.Instance.dataArray[index].name;
+        //    }
+            
+        //    if (item.target.data == null)
+        //    {
+        //        item.target.onClick.Add(OnClickListType1Item);
+        //    }
+        //    item.target.data = index;
+        //    UI_ComponentName.ProxyEnd();
+        //}
+        private void ListType1Item(int index, GObject item)
         {
-            UI_ComponentName item = UI_ComponentName.Proxy(obj);
-            item.m_name.text = nameList[index];
-            if (item.target.data == null)
+            UI_MatchingTypeItem typeItem = UI_MatchingTypeItem.Proxy(item);
+            DressUpMenuItemCfg1 item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index];
+            if(item1.id >= 12)
             {
-                item.target.onClick.Add(OnClickListType1Item);
+                item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index + 1];
             }
-            item.target.data = index;
-            UI_ComponentName.ProxyEnd();
+            typeItem.m_icon.url = "ui://MatchingCompetition/hz_fenleitu_" + item1.id;
+            typeItem.m_txtname.text = item1.name;
+            //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconzi_" + item1.id;
+            typeItem.m_imgNeed.visible = false;
+            typeItem.m_imgNew.visible = false;
+            if (item.data == null)
+            {
+                item.onClick.Add(OnClickListType1Item);
+            }
+            item.data = item1;
+            UI_MatchingTypeItem.ProxyEnd();
         }
         private void ListItemType2Render(int index, GObject obj)
         {
@@ -147,8 +183,29 @@ namespace GFGGame
         private void OnClickListType1Item(EventContext context)
         {
             GObject item = context.sender as GObject;
-            int index = (int)item.data;
-            nameIndex = index;
+            DressUpMenuItemCfg1 index = (DressUpMenuItemCfg1)item.data;
+            IdList.Clear();
+            foreach (var idItem in AllIdList)
+            {
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(idItem);
+                    if (index.type != 0)
+                    {
+                        if (itemCfg.subType == index.type)
+                        {
+                            IdList.Add(idItem);
+                        }
+                    }
+                    else
+                    {
+                        foreach(var itemSubMenus in index.subMenusArr)
+                        {
+                            if(DressUpMenuItemCfg2Array.Instance.dataArray[(itemSubMenus -1)].type == itemCfg.subType)
+                            {
+                                IdList.Add(idItem);
+                            }
+                        }
+                    }
+            }
             _ui.m_dressList.numItems = IdList.Count;
             _ui.m_dressList.visible = true;
             _ui.m_nameList.visible = false;

+ 23 - 5
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionGatheringView.cs

@@ -57,8 +57,10 @@ namespace GFGGame
             _ui.m_bg.url = ResPathUtil.GetBgImgPath("gzs_fb_bj");
             _ui.m_c1.selectedIndex = 0;
             SuitID = 201030;
+            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(SuitID);
+            _ui.m_suitName.text = suitCfg.name;
             UpdateView();
-            //Timers.inst.AddUpdate(UpdateTime);
+            Timers.inst.AddUpdate(UpdateTime);
         }
 
         protected override void OnHide()
@@ -104,7 +106,7 @@ namespace GFGGame
                 return;
             }
             TimeUtil.FormattingTime(curTime, endTime, out int num, out string str);
-            _ui.m_timeText.text = "评选剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
+            _ui.m_timeText.text = "投稿剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
         }
         private void OnClickBtnBack()
         {
@@ -112,11 +114,27 @@ namespace GFGGame
         }
         private void OnClickBtnUpload()
         {
-            ViewManager.Show<DressUpView>(2, false);
+            //ViewManager.Show<DressUpView>(2, false);
+
+            List<int> AllIdList = new List<int>() { 180004, 30486 , 30458 ,30416 };
+            //foreach (var info in MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.CollocationInfoList)
+            //{
+            //    AllIdList.Add(info.ItemId);
+            //}
+            MatchingCompetitionDataManager.Instance.DetailNtexture = MatchingOneDataManager.Instance.OneRoleInfo.Ntexture;
+            ViewManager.Show<MatchingCompetitionDetailView>(AllIdList);
         }
-        private void OnClickBtnShop()
+        private async void OnClickBtnShop()
         {
-            ViewManager.Show<MatchingCompetitionUpLoadView>();
+            bool result = await MatchingCompetitionSproxy.ReqGetOnePlayers();
+            if(result)
+            {
+                ViewManager.Show<MatchingCompetitionUpLoadView>();
+            }
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("暂无玩家数据!");
+            }
             //ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_GIFT_BAG, ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY });
         }
 

+ 37 - 16
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRankView.cs

@@ -36,10 +36,6 @@ namespace GFGGame
             _ui.m_btnLook.onClick.Add(OnClickBtnLook);
             _ui.m_ruleBtn.onClick.Add(MatchingCompetitionDataManager.Instance.OnClickBtnRule);
         }
-        protected override void AddEventListener()
-        {
-            base.AddEventListener();
-        }
         protected override void OnShown()
         {
             base.OnShown();
@@ -52,32 +48,43 @@ namespace GFGGame
         {
             base.OnHide();
         }
-
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+        }
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
         }
         private void UpdateView()
         {
-            MatchingPhotoWorksData otherInfo = MatchingCompetitionDataManager.Instance._currentRankList[0];
-            _ui.m_playerImage.texture = otherInfo.Ntexture;
+            if(MatchingCompetitionDataManager.Instance._currentRankList.Count > 0)
+            {
+                MatchingPhotoWorksData otherInfo = MatchingCompetitionDataManager.Instance._currentRankList[0];
+                _ui.m_playerImage.texture = otherInfo.Ntexture;
+            }
+            else
+            {
+                _ui.m_playerImage.texture = null;
+            }
             _currentIndex = 0;
             _ui.m_RankList.numItems = MatchingCompetitionDataManager.Instance._currentRankList.Count;
         }
         private void UpdateHead()
         {
-            MatchingPlayerData otherInfo = new MatchingPlayerData();
-            RoleInfoManager.Instance.UpdateHead(_ui.m_playerHead.m_head, otherInfo.HeadId, otherInfo.HeadBorderId);
-            _ui.m_playerHead.m_nameText.text = otherInfo.OtherPlayerName.ToString();
-            _ui.m_playerHead.m_countText.text = otherInfo.OtherPlayerPopularity.ToString();
-            MatchingCompetitionDataManager.Instance.SetNumToRank(otherInfo.Rank,_ui.m_playerHead.m_RankIndex);
+            RoleInfoManager.Instance.UpdateHead(_ui.m_playerHead.m_head, RoleDataManager.headId, RoleDataManager.headBorderId);
+            _ui.m_playerHead.m_nameText.text = RoleDataManager.roleName.ToString();
+            _ui.m_playerHead.m_countText.text = MatchingCompetitionDataManager.Instance.myWorks.Score.ToString();
+            MatchingCompetitionDataManager.Instance.SetNumToRank(MatchingCompetitionDataManager.Instance.myWorks.Rank,_ui.m_playerHead.m_RankIndex);
         }
         private void RenderRankList(int index, GObject obj)
         {
             UI_Component3 item = UI_Component3.Proxy(obj);
             MatchingPhotoWorksData otherdata = MatchingCompetitionDataManager.Instance._currentRankList[index];
             JudgingRoundRoleInfo otherInfo = otherdata.JudgingInfo;
-            otherInfo.Rank = index;
+            otherInfo.Rank = index + 1;
             RoleInfoManager.Instance.UpdateHead(item.m_head, otherInfo.HeadItemId, otherInfo.HeadBorderItemId);
             item.m_nameText.text = otherInfo.RoleName.ToString();
             item.m_countText.text = otherInfo.Score.ToString();
@@ -101,13 +108,27 @@ namespace GFGGame
         {
             ViewManager.GoBackFrom(typeof(MatchingCompetitionRankView).FullName);
         }
-        private void OnClickBtnBefore()
+        private async void OnClickBtnBefore()
         {
-            ViewManager.Show<MatchingCompetitionWorksView>();
+            bool result = await MatchingCompetitionSproxy.ReqBeforeWorks();
+            if(result)
+            {
+                ViewManager.Show<MatchingCompetitionWorksView>();
+            }
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("暂无往期数据!");
+            }
         }
         private void OnClickBtnLook()
         {
-
+            List<int> AllIdList = new List<int>();
+            foreach (var info in MatchingCompetitionDataManager.Instance._currentRankList[_currentIndex].JudgingInfo.CollocationInfoList)
+            {
+                AllIdList.Add(info.ItemId);
+            }
+            MatchingCompetitionDataManager.Instance.DetailNtexture = MatchingCompetitionDataManager.Instance._currentRankList[_currentIndex].Ntexture;
+            ViewManager.Show<MatchingCompetitionDetailView>(AllIdList);
         }
     }
 }

+ 4 - 3
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRuleTipsView.cs

@@ -41,6 +41,7 @@ namespace GFGGame
         {
             base.OnShown();
             Season = MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason;
+            _ui.m_rewardList.numItems = JudgingRoundRewardCfgArray.Instance.dataArray.Length;
         }
 
         protected override void OnHide()
@@ -55,14 +56,14 @@ namespace GFGGame
         private void RewardItemRender(int index, GObject obj)
         {
             UI_MatchingCompetitionRewardItem item = UI_MatchingCompetitionRewardItem.Proxy(obj);
-
+            JudgingRoundRewardCfg judginRewardCfg = JudgingRoundRewardCfgArray.Instance.dataArray[index];
             item.m_rankIndex.text = (index + 1).ToString();
             if (item.m_rewardList.data == null)
             {
                 item.m_rewardList.itemRenderer = SpecialRewardRender;
             }
-            //item.m_rewardList.data = 
-            //item.m_rewardList.numItems = 
+            item.m_rewardList.data = index;
+            item.m_rewardList.numItems = judginRewardCfg.RewardArr.Length;
             UI_MatchingCompetitionRewardItem.ProxyEnd();
         }
         private static void SpecialRewardRender(int index, GObject obj)

+ 38 - 20
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionSelectView.cs

@@ -36,16 +36,12 @@ namespace GFGGame
             _ui.m_select2.target.onClick.Add(OnClickBtnSelect2);
             _ui.m_ruleBtn.onClick.Add(MatchingCompetitionDataManager.Instance.OnClickBtnRule);
         }
-        protected override void AddEventListener()
-        {
-            base.AddEventListener();
-        }
         protected override void OnShown()
         {
             base.OnShown();
             _ui.m_bg.url = ResPathUtil.GetBgImgPath("gzs_fb_bj");
             _ui.m_BtnBack.touchable = true;
-            isRefresh = (bool)this.viewData;
+            //isRefresh = (bool)this.viewData;
             UpdateView();
             UpdatePlayer();
         }
@@ -54,23 +50,30 @@ namespace GFGGame
         {
             base.OnHide();
         }
-
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdatePlayer);
+        }
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdatePlayer);
         }
         private void UpdatePlayer()
         {
             _ui.m_playerShow1.m_playerImage.m_playerImage.texture = MatchingTwoDataManager.Instance.LeftRoleInfo.Ntexture;
             _ui.m_playerShow2.m_playerImage.m_playerImage.texture = MatchingTwoDataManager.Instance.RightRoleInfo.Ntexture;
             MatchingPhotoWorksData otherLeftdata = MatchingTwoDataManager.Instance.LeftRoleInfo;
-            JudgingRoundRoleInfo otherInfo = otherLeftdata.JudgingInfo;
-            RoleInfoManager.Instance.UpdateHead(_ui.m_player1.m_head, otherInfo.HeadItemId, otherInfo.HeadBorderItemId);
-            _ui.m_player1.m_nameText.text = otherInfo.RoleName.ToString();
+            JudgingRoundRoleInfo otherLeftInfo = otherLeftdata.JudgingInfo;
+            RoleInfoManager.Instance.UpdateHead(_ui.m_player1.m_head, otherLeftInfo.HeadItemId, otherLeftInfo.HeadBorderItemId);
+            _ui.m_player1.m_nameText.text = otherLeftInfo.RoleName.ToString();
+            _ui.m_select1.m_numText.text = otherLeftInfo.Score.ToString();
             MatchingPhotoWorksData otherRightdata = MatchingTwoDataManager.Instance.RightRoleInfo;
             JudgingRoundRoleInfo otherRightInfo = otherRightdata.JudgingInfo;
             RoleInfoManager.Instance.UpdateHead(_ui.m_player2.m_head, otherRightInfo.HeadItemId, otherRightInfo.HeadBorderItemId);
-            _ui.m_player2.m_nameText.text = otherInfo.RoleName.ToString();
+            _ui.m_player2.m_nameText.text = otherRightInfo.RoleName.ToString();
+            _ui.m_select2.m_numText.text = otherRightInfo.Score.ToString();
         }
         private void UpdateView()
         {
@@ -83,29 +86,44 @@ namespace GFGGame
             _ui.m_BtnBack.touchable = true;
             ViewManager.GoBackFrom(typeof(MatchingCompetitionSelectView).FullName);
         }
-        private void OnClickBtnSelect1()
+        private async void OnClickBtnSelect1()
         {
             if(MatchingCompetitionDataManager.Instance.MatchingRemainingTimes<=0)
             {
                 PromptController.Instance.ShowFloatTextPrompt("评选次数不足");
                 return;
             }
-            _ui.m_select1.m_c1.selectedIndex = 1;
-            _ui.m_select1.m_numText.text = string.Format("心动值{0}", 0);
-            _ui.m_BtnBack.touchable = false;
-            _ui.m_t0.Play(()=>OnClickBtnBack());
+            bool result = await MatchingCompetitionSproxy.ReqCheckMatchingCompetitionWork(
+                MatchingTwoDataManager.Instance.LeftRoleInfo.JudgingInfo.WorksId,MatchingTwoDataManager.Instance.RightRoleInfo.JudgingInfo.WorksId
+                ) ;
+            if(result)
+            {
+                _ui.m_select1.m_c1.selectedIndex = 1;
+                _ui.m_select1.m_numText.text = string.Format("心动值{0}", MatchingTwoDataManager.Instance.LeftRoleInfo.JudgingInfo.Score.ToString());
+                _ui.m_timeText.text = string.Format("剩余次数:{0}", MatchingCompetitionDataManager.Instance.MatchingRemainingTimes);
+                _ui.m_BtnBack.touchable = false;
+                _ui.m_t0.Play(() => OnClickBtnBack());
+            }
+
         }
-        private void OnClickBtnSelect2()
+        private async void OnClickBtnSelect2()
         {
             if (MatchingCompetitionDataManager.Instance.MatchingRemainingTimes <= 0)
             {
                 PromptController.Instance.ShowFloatTextPrompt("评选次数不足");
                 return;
             }
-            _ui.m_select2.m_c1.selectedIndex = 1;
-            _ui.m_select2.m_numText.text = string.Format("心动值{0}", 0);
-            _ui.m_BtnBack.touchable = false;
-            _ui.m_t1.Play(() => OnClickBtnBack());
+            bool result = await MatchingCompetitionSproxy.ReqCheckMatchingCompetitionWork(
+                            MatchingTwoDataManager.Instance.RightRoleInfo.JudgingInfo.WorksId, MatchingTwoDataManager.Instance.LeftRoleInfo.JudgingInfo.WorksId
+                            );
+            if (result)
+            {
+                _ui.m_select2.m_c1.selectedIndex = 1;
+                _ui.m_select2.m_numText.text = string.Format("心动值{0}", MatchingTwoDataManager.Instance.RightRoleInfo.JudgingInfo.Score.ToString());
+                _ui.m_timeText.text = string.Format("剩余次数:{0}", MatchingCompetitionDataManager.Instance.MatchingRemainingTimes);
+                _ui.m_BtnBack.touchable = false;
+                _ui.m_t1.Play(() => OnClickBtnBack());
+            }
         }
     }
 }

+ 53 - 18
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionUpLoadView.cs

@@ -13,7 +13,7 @@ namespace GFGGame
     {
         private UI_MatchingCompetitionUpLoadUI _ui;
         private GameObject _sceneObject;
-        private float countTimeSpeed = 0.0015f;
+        private float countTimeSpeed = 0.001f;
         private bool isCountTime = false;
         public override void Dispose()
         {
@@ -48,20 +48,16 @@ namespace GFGGame
             _ui.m_btnExchage.onClick.Add(OnClickBtnExchange);
             _ui.m_ruleBtn.onClick.Add(MatchingCompetitionDataManager.Instance.OnClickBtnRule);
         }
-        protected override void AddEventListener()
-        {
-            base.AddEventListener();
-        }
         protected override void OnShown()
         {
             base.OnShown();
             _ui.m_bg.url = ResPathUtil.GetBgImgPath("gzs_fb_bj");
-            _ui.m_c1.selectedIndex = 1;
+            _ui.m_c1.selectedIndex = MatchingCompetitionDataManager.Instance.MatchingState;
             isCountTime = false;
             UpdateView();
             UpdateHead();
             UpdateDress();
-            //Timers.inst.AddUpdate(UpdateTime);
+            Timers.inst.AddUpdate(UpdateTime);
         }
 
         protected override void OnHide()
@@ -75,20 +71,26 @@ namespace GFGGame
             Timers.inst.Remove(UpdateCountTime);
             base.OnHide();     
         }
-
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH,UpdateDress);
+        }
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDress);
         }
         private async void UpdateDress()
         {
-            //这里要换成获取其他玩家数据
             if (MatchingOneDataManager.Instance.MathingDressDate.actionId != 0)
             {
                 _ui.m_bg.visible = false;
                 _ui.m_playerImage.visible = false;
                 MatchingOneDataManager.Instance.itemGameObjs.Clear();
                 PhotographDataManager.Instance.itemGameObjs.Clear();
+                PhotographDataManager.Instance.dressUpObj?.Dispose();
+                PhotographDataManager.Instance.dressUpObj = new DressUpObj();
                 if (_sceneObject == null)
                 {
                     _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
@@ -136,7 +138,7 @@ namespace GFGGame
             {
                 _ui.m_bg.visible = true;
                 _ui.m_playerImage.visible = true;
-                _ui.m_playerImage.texture = null;
+                _ui.m_playerImage.texture = MatchingOneDataManager.Instance.OneRoleInfo.Ntexture;
             }
         }
         private void UpdateView()
@@ -177,10 +179,19 @@ namespace GFGGame
         {
             ViewManager.GoBackFrom(typeof(MatchingCompetitionUpLoadView).FullName);
         }
-        private void OnClickBtnUpload()
+        private async void OnClickBtnUpload()
         {
+            if(MatchingCompetitionDataManager.Instance.MatchingState == 3)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("结算期间无法选择!");
+                return;
+            }
             //先获取两个玩家信息
-            ViewManager.Show<MatchingCompetitionSelectView>();
+            bool resulst =  await MatchingCompetitionSproxy.ReqGetTwoPlayers();
+            if(resulst)
+            {
+                ViewManager.Show<MatchingCompetitionSelectView>();
+            }
         }
         private void OnClickBtnShop()
         {
@@ -188,15 +199,23 @@ namespace GFGGame
         }
         private void OnClickBtnMyWorks()
         {
-            ViewManager.Show<PoemPhotoView>(1);
+            ViewManager.Show<PoemPhotoView>(2);
         }
-        private void OnClickBtnRank()
+        private async void OnClickBtnRank()
         {
-            ViewManager.Show<MatchingCompetitionRankView>();
+            bool result = await MatchingCompetitionSproxy.ReqCurrentRank();
+            if(result)
+            {
+                ViewManager.Show<MatchingCompetitionRankView>();
+            }   
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("暂无玩家上榜!");
+            }
         }
-        private void OnClickBtnExchange()
+        private async void OnClickBtnExchange()
         {
-            if(isCountTime)
+            if (isCountTime)
             {
                 PromptController.Instance.ShowFloatTextPrompt("刷新冷却中,请耐心等待!");
                 return;
@@ -205,10 +224,26 @@ namespace GFGGame
             _ui.m_countTime.visible = true;
             _ui.m_countTime.fillAmount = 1.0f;
             Timers.inst.AddUpdate(UpdateCountTime);
+            ViewManager.Show<ModalStatusView>("刷新中...");
+            bool result = await MatchingCompetitionSproxy.ReqGetOnePlayers();
+            if (result)
+            {
+                //UpdateView();
+                UpdateHead();
+                UpdateDress();
+                ViewManager.Hide<ModalStatusView>();
+            }
+            ViewManager.Hide<ModalStatusView>();
         }
         private void OnClickBtnLook()
         {
-
+            List<int> AllIdList = new List<int>();
+            foreach (var info in MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.CollocationInfoList)
+            {
+                AllIdList.Add(info.ItemId);
+            }
+            MatchingCompetitionDataManager.Instance.DetailNtexture = MatchingOneDataManager.Instance.OneRoleInfo.Ntexture;
+            ViewManager.Show<MatchingCompetitionDetailView>(AllIdList);
         }
     }
 }

+ 7 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorkListView.cs

@@ -87,6 +87,13 @@ namespace GFGGame
             GObject item = context.sender as GObject;
             int index = (int)item.data;
             MatchingPhotoWorksData otherInfo = MatchingCompetitionDataManager.Instance._BeforeRankList[index];
+            List<int> AllIdList = new List<int>();
+            foreach(var info in otherInfo.JudgingInfo.CollocationInfoList)
+            {
+                AllIdList.Add(info.ItemId);
+            }
+            MatchingCompetitionDataManager.Instance.DetailNtexture = otherInfo.Ntexture;
+            ViewManager.Show<MatchingCompetitionDetailView>(AllIdList);
         }
         private void OnClickBtnBack()
         {

+ 6 - 2
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorksView.cs

@@ -67,11 +67,15 @@ namespace GFGGame
             item.target.data = index;
             UI_Component5.ProxyEnd();
         }
-        private void OnClickBtnItem(EventContext context)
+        private async void OnClickBtnItem(EventContext context)
         {
             GObject item = context.sender as GObject;
             int index = (int)item.data +1;
-            ViewManager.Show<MatchingCompetitionWorksListView>(index);
+            bool result = await MatchingCompetitionSproxy.ReqBeforeRank(index);
+            if(result)
+            {
+                ViewManager.Show<MatchingCompetitionWorksListView>(index);
+            } 
         }
         private void OnClickBtnBack()
         {

+ 195 - 5
GameClient/Assets/Game/HotUpdate/Views/Poem/PoemPhotoView.cs

@@ -47,6 +47,9 @@ namespace GFGGame
             _ui.m_list.itemRenderer = RenderListItem;
             _ui.m_listTravel.SetVirtual();
             _ui.m_listTravel.itemRenderer = RenderListTravelItem;
+
+            _ui.m_listCompetion.itemRenderer = RenderMatchingListItem;
+
             _ui.m_btnRule.onClick.Add(RuleController.ShowRuleView);
             _ui.m_btnRule.data = 300018;
 
@@ -120,6 +123,11 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("暂无明信片可删除");
                 return;
             }
+            if (_ui.m_c1.selectedIndex == 2 && GetEnablePhotoNum(true) == 0)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("暂无图片可删除");
+                return;
+            }
             _ui.m_c2.selectedIndex = 1;
             _ui.m_btnChooseAll.selected = false;
         }
@@ -136,6 +144,11 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("暂无明信片可保存");
                 return;
             }
+            if (_ui.m_c1.selectedIndex == 2 && _photoInfos.Count == 0)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("暂无图片可保存");
+                return;
+            }
             _ui.m_c2.selectedIndex = 2;
             _ui.m_btnChooseAll.selected = false;
         }
@@ -158,7 +171,7 @@ namespace GFGGame
                 _ui.m_list.numItems = _photoInfos.Count;
                 _ui.m_txtCount.text = string.Format("{0}/{1}", _photoInfos.Count, GlobalCfgArray.globalCfg.maxPhotoCount);
             }
-            else
+            else if(_ui.m_c1.selectedIndex == 1)
             {
                 _ui.m_list.numItems = 0;
 
@@ -167,6 +180,18 @@ namespace GFGGame
                 _ui.m_listTravel.numItems = _photoInfos.Count;
                 _ui.m_txtCount.text = string.Format("{0}/{1}", _photoInfos.Count, RoleDataManager.WanShuiQianShanMaxStorageCount);
             }
+            else if(_ui.m_c1.selectedIndex == 2)
+            {
+                _ui.m_list.numItems = 0;
+                _ui.m_listTravel.numItems = 0;
+
+                _photoInfos = MatchingCompetitionDataManager.Instance.MatchingPhotoInfos;
+                _sourceType = 2;
+                _ui.m_listCompetion.numItems = _photoInfos.Count;
+                _ui.m_txtCount.text = "";
+
+                _ui.m_btnDelete.visible = false;
+            }
 
 
             _ui.m_btnConfirmDelete.title = string.Format("删除 {0}/{1}", _listChoose.Count, _photoInfos.Count);
@@ -257,7 +282,50 @@ namespace GFGGame
             item.m_comTravel.target.data = index;
             UI_ComPhotoPostcard.ProxyEnd();
         }
+        private void RenderMatchingListItem(int index, GObject obj)
+        {
+            UI_ListPhotoItem item = UI_ListPhotoItem.Proxy(obj);
+            if (_ui.m_c2.selectedIndex != 0 && _listChoose.IndexOf(_photoInfos[index].PictureId) >= 0)
+            {
+                item.m_c1.SetSelectedIndex(1);
+            }
+            else
+            {
+                item.m_c1.SetSelectedIndex(0);
+            }
+            GLoader loaIcon = item.m_comIcon.m_loaIcon;
+            loaIcon.visible = true;
+            if (_photoInfos[index].Ntexture == null)
+            {
+                loaIcon.visible = false;
+            }
+            loaIcon.texture = _photoInfos[index].Ntexture;
+
+            string[] timeStr = TimeUtil.FormattingTime1(_photoInfos[index].CreationTime, '/').Split(' ');
+            item.m_txtTime.text = timeStr[0];
+
+            //item.m_txtTime.visible = false;
+            item.m_btnLock.m_c1.selectedIndex = _photoInfos[index].LockingStatus ? 1 : 0;
+            item.m_btnUp.m_c1.selectedIndex = _photoInfos[index].ToppingStatus ? 1 : 0;
+            if (item.m_btnLock.target.data == null)
+            {
+                item.m_btnLock.target.onClick.Add(OnBtnMatchingLockClick);
+            }
+            item.m_btnLock.target.data = index;
 
+            if (item.m_btnUp.target.data == null)
+            {
+                item.m_btnUp.target.onClick.Add(OnBtnMatchingUpClick);
+            }
+            item.m_btnUp.target.data = index;
+
+            if (item.m_comIcon.target.data == null)
+            {
+                item.m_comIcon.target.onClick.Add(OnMatchingLoaIconClick);
+            }
+            item.m_comIcon.target.data = index;
+            UI_ListPhotoItem.ProxyEnd();
+        }
         private void OnLoaIconClick(EventContext context)
         {
             GObject obj = context.sender as GObject;
@@ -309,6 +377,57 @@ namespace GFGGame
 
             }
         }
+        private void OnMatchingLoaIconClick(EventContext context)
+        {
+            GObject obj = context.sender as GObject;
+            int index = (int)obj.data;
+            PoemPhotoData photoData = _photoInfos[index];
+            if (_ui.m_c2.selectedIndex == 0)
+            {
+                ViewManager.Show<PoemPhotoPreView>(new object[] { index, _photoInfos, _sourceType });
+            }
+            else
+            {
+                if (_ui.m_c2.selectedIndex == 1)
+                {
+                    if (photoData.LockingStatus)
+                    {
+                        PromptController.Instance.ShowFloatTextPrompt("锁定的照片无法删除");
+                        return;
+                    }
+                    if (photoData.ToppingStatus)
+                    {
+                        PromptController.Instance.ShowFloatTextPrompt("置顶的照片无法删除");
+                        return;
+                    }
+                }
+
+                UI_ListPhotoItem item = UI_ListPhotoItem.Proxy(obj.parent);
+
+                item.m_c1.selectedIndex ^= 1;
+                if (item.m_c1.selectedIndex == 1)
+                {
+                    _listChoose.Add(photoData.PictureId);
+                }
+                else
+                {
+                    _listChoose.Remove(photoData.PictureId);
+                }
+                UI_ListPhotoItem.ProxyEnd();
+
+                if (_ui.m_c2.selectedIndex == 1)
+                {
+                    _ui.m_btnConfirmDelete.title = string.Format("删除({0}/{1})", _listChoose.Count, _photoInfos.Count);
+                    _ui.m_btnChooseAll.selected = (GetEnablePhotoNum(true) == _listChoose.Count);
+                }
+                else if (_ui.m_c2.selectedIndex == 2)
+                {
+                    _ui.m_btnConfirmSave.title = string.Format("保存({0}/{1})", _listChoose.Count, _photoInfos.Count);
+                    _ui.m_btnChooseAll.selected = (GetEnablePhotoNum(false) == _listChoose.Count);
+                }
+
+            }
+        }
         private void OnBtnConfirmDeleteClick()
         {
             if (_listChoose.Count == 0)
@@ -319,11 +438,24 @@ namespace GFGGame
             AlertUI.Show("删除后的照片无法恢复,是否确认删除?")
             .SetLeftButton(true, "否").SetRightButton(true, "是", async (object data) =>
             {
-                bool result = await PoemPhotoSProxy.ReqRemovedPhoto(_listChoose, _sourceType);
-                if (result)
+
+                if (_ui.m_c2.selectedIndex != 2)
+                {
+                    bool result = await PoemPhotoSProxy.ReqRemovedPhoto(_listChoose, _sourceType);
+                    if (result)
+                    {
+                        _listChoose.Clear();
+                        OnBtnTabChange();
+                    }
+                }
+                else
                 {
-                    _listChoose.Clear();
-                    OnBtnTabChange();
+                    bool result = await MatchingCompetitionSproxy.ReqRemovedPhoto(_listChoose, _sourceType);
+                    if (result)
+                    {
+                        _listChoose.Clear();
+                        OnBtnTabChange();
+                    }
                 }
             });
         }
@@ -358,7 +490,36 @@ namespace GFGGame
             }
 
         }
+        private void OnBtnMatchingLockClick(EventContext context)
+        {
+            if (_ui.m_c2.selectedIndex != 0)
+            {
+                //PromptController.Instance.ShowFloatTextPrompt("删除状态无法操作");
+                return;
+            }
+            GObject item = context.sender as GObject;
+            int index = (int)item.data;
+            PoemPhotoData photoData = _photoInfos[index];
+            if (photoData.LockingStatus == false)
+            {
+                AlertUI.Show("是否确认锁定此照片?", "(锁定的照片无法被删除)")
+               .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) =>
+               {
+                   MatchingCompetitionSproxy.ReqChangeLockingState(photoData.PictureId, true, _sourceType).Coroutine();
+
+               });
+            }
+            else
+            {
+                AlertUI.Show("是否确认解锁此照片?", "(解锁后的照片可随意删除)")
+               .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) =>
+               {
+                   MatchingCompetitionSproxy.ReqChangeLockingState(photoData.PictureId, false, _sourceType).Coroutine();
 
+               });
+            }
+
+        }
         private void OnBtnUpClick(EventContext context)
         {
             if (_ui.m_c2.selectedIndex != 0)
@@ -388,6 +549,35 @@ namespace GFGGame
                });
             }
         }
+        private void OnBtnMatchingUpClick(EventContext context)
+        {
+            if (_ui.m_c2.selectedIndex != 0)
+            {
+                //PromptController.Instance.ShowFloatTextPrompt("删除状态无法操作");
+                return;
+            }
+            GObject item = context.sender as GObject;
+            int index = (int)item.data;
+            PoemPhotoData photoData = _photoInfos[index];
+            if (photoData.ToppingStatus == false)
+            {
+                AlertUI.Show("是否确认置顶此照片?")
+               .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) =>
+               {
+                   MatchingCompetitionSproxy.ReqChangeToppingState(photoData.PictureId, true, _sourceType).Coroutine();
+
+               });
+            }
+            else
+            {
+                AlertUI.Show("是否确认取消置顶此照片?")
+               .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) =>
+               {
+                   MatchingCompetitionSproxy.ReqChangeToppingState(photoData.PictureId, false, _sourceType).Coroutine();
+
+               });
+            }
+        }
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.POEM) <= 0)

BIN
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0.png


BIN
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas1!a.png


+ 120 - 0
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas1!a.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: d4bc86924f17c0b4c89fbe1faf00a742
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas1.png


+ 120 - 0
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas1.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 0c29d4f2c50e2734baa44d469f46597b
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_fui.bytes


+ 7 - 0
GameClient/Assets/ResIn/UI/MiniGame/MiniGame_fui.bytes.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f11182c92a1bb754fb752569bc0ce12f
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/Poem/Poem_fui.bytes