zhangyuqian 11 сар өмнө
parent
commit
460cda8f8e
100 өөрчлөгдсөн 5503 нэмэгдсэн , 91 устгасан
  1. 1 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstFightRoleType.cs
  2. 2 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs
  3. 1 0
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  4. 38 2
      GameClient/Assets/Game/HotUpdate/Data/ArenaDataManager.cs
  5. 347 0
      GameClient/Assets/Game/HotUpdate/Data/FieldWorkDataManager.cs
  6. 11 0
      GameClient/Assets/Game/HotUpdate/Data/FieldWorkDataManager.cs.meta
  7. 3 3
      GameClient/Assets/Game/HotUpdate/Data/FightDataManager.cs
  8. 4 0
      GameClient/Assets/Game/HotUpdate/Data/ItemDataManager.cs
  9. 3 3
      GameClient/Assets/Game/HotUpdate/Data/ScoreSystemData.cs
  10. 7 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Arena/UI_ArenaDressInfoUI.cs
  11. 105 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Arena/UI_ComFIeldValueInfo.cs
  12. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Arena/UI_ComFIeldValueInfo.cs.meta
  13. 80 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Arena/UI_ComFieldFightScore.cs
  14. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Arena/UI_ComFieldFightScore.cs.meta
  15. 6 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_ArenaDressUpFightUI.cs
  16. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_DressUpFightUI.cs
  17. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_PartsListItem.cs
  18. 8 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork.meta
  19. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_Button1.cs
  20. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_Button1.cs.meta
  21. 74 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComAllScore.cs
  22. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComAllScore.cs.meta
  23. 72 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComAllScoreResult.cs
  24. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComAllScoreResult.cs.meta
  25. 87 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCard.cs
  26. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCard.cs.meta
  27. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCardMask.cs
  28. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCardMask.cs.meta
  29. 72 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCardRecord.cs
  30. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCardRecord.cs.meta
  31. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComResultCardMask.cs
  32. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComResultCardMask.cs.meta
  33. 72 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompChapter.cs
  34. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompChapter.cs.meta
  35. 116 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompChapterScroll.cs
  36. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompChapterScroll.cs.meta
  37. 92 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompStoryLevelItem.cs
  38. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompStoryLevelItem.cs.meta
  39. 99 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkLevelInfoUI.cs
  40. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkLevelInfoUI.cs.meta
  41. 99 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkLevelUI.cs
  42. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkLevelUI.cs.meta
  43. 78 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkRoundResultUI.cs
  44. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkRoundResultUI.cs.meta
  45. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkRoundTips.cs
  46. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkRoundTips.cs.meta
  47. 84 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ListResultItem.cs
  48. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ListResultItem.cs.meta
  49. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ListRewardItem.cs
  50. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ListRewardItem.cs.meta
  51. 102 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/InstanceZones/UI_InstanceSamllUI.cs
  52. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/InstanceZones/UI_InstanceSamllUI.cs.meta
  53. 4 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/InstanceZones/UI_InstanceZonesUI.cs
  54. 6 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_ListCardFightItem.cs
  55. 1 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/CommonSProxy.cs
  56. 242 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/FieldWorkSproxy.cs
  57. 11 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/FieldWorkSproxy.cs.meta
  58. 93 26
      GameClient/Assets/Game/HotUpdate/Views/Arena/ArenaDressInfoView.cs
  59. 1 0
      GameClient/Assets/Game/HotUpdate/Views/DressUp/ArenaDressUpFightView.cs
  60. 2 1
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs
  61. 2 0
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs
  62. 8 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork.meta
  63. 1074 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkDressFIghtView.cs
  64. 11 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkDressFIghtView.cs.meta
  65. 142 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkFightResultView.cs
  66. 11 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkFightResultView.cs.meta
  67. 225 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelInfoView.cs
  68. 11 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelInfoView.cs.meta
  69. 207 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelView.cs
  70. 11 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelView.cs.meta
  71. 150 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundResultView.cs
  72. 11 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundResultView.cs.meta
  73. 50 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundTipsView.cs
  74. 11 0
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundTipsView.cs.meta
  75. 45 27
      GameClient/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesView.cs
  76. 24 5
      GameClient/Assets/Game/HotUpdate/Views/MainStory/ArenaFightResultView.cs
  77. 67 2
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs
  78. 77 17
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs
  79. 26 5
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleView.cs
  80. BIN
      GameClient/Assets/ResIn/UI/Arena/Arena_fui.bytes
  81. BIN
      GameClient/Assets/ResIn/UI/DressUp/DressUp_atlas0!a.png
  82. BIN
      GameClient/Assets/ResIn/UI/DressUp/DressUp_atlas0.png
  83. BIN
      GameClient/Assets/ResIn/UI/DressUp/DressUp_fui.bytes
  84. 8 0
      GameClient/Assets/ResIn/UI/FieldWork.meta
  85. BIN
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0!a.png
  86. 120 0
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0!a.png.meta
  87. BIN
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0.png
  88. 120 0
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0.png.meta
  89. BIN
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_1!a.png
  90. 120 0
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_1!a.png.meta
  91. BIN
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_1.png
  92. 120 0
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_1.png.meta
  93. BIN
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_2!a.png
  94. 120 0
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_2!a.png.meta
  95. BIN
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_2.png
  96. 120 0
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_2.png.meta
  97. BIN
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_fui.bytes
  98. 7 0
      GameClient/Assets/ResIn/UI/FieldWork/FieldWork_fui.bytes.meta
  99. BIN
      GameClient/Assets/ResIn/UI/InstanceZones/InstanceZones_fui.bytes
  100. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0!a.png

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstFightRoleType.cs

@@ -3,4 +3,5 @@ public class FightRoleType
 
     public const int MINE = 0;//自己
     public const int TAEGET = 1;//对手
+    public const int FieldWork = 2;//田野调查
 }

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -264,5 +264,7 @@ namespace GFGGame
         public const string REWARDVIEW_CLOTHER = "REWARDVIEW_CLOTHER";
         //关卡排行榜数据加载完毕
         public const string REQ_CURRENT_RANK = "REQ_CURRENT_RANK";
+        //爬塔状态改变
+        public const string FieldWork_StateCHANGE = "FieldWork_StateCHANGE";
     }
 }

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

@@ -268,6 +268,7 @@ namespace GFGGame
             TravelSProxy.ReqTravelGuideInfo().Coroutine();
             PoemGallerySProxy.ReqGalleryTheme().Coroutine();
             ArenaDataManager.Instance.ReqArenaInfo();
+            FieldWorkSproxy.ReqFieldWorkInfos().Coroutine();
             SkillSProxy.ReqGetSkillList(SkillType.LeagueSkill).Coroutine();
             EnduringGiftBoxSProxy.ReqGetAllGiftBagRebateStatus().Coroutine();
             ChatSProxy.ReqQueryChatMsg(ChatType.League).Coroutine();

+ 38 - 2
GameClient/Assets/Game/HotUpdate/Data/ArenaDataManager.cs

@@ -162,8 +162,32 @@ namespace GFGGame
         public int GetRecommentCardId(int scoreType, List<int> itemList, List<int> wearCardIds)
         {
             float dressListAllAcore = FightDataManager.Instance.GetDressListAllScore(itemList, scoreType);
-            List<CardData> cardDatas = FightDataManager.Instance.SortCardList(CardDataManager.GetCardListByRoleType(0),
+            List<CardData> cardDatas = new List<CardData>();// = FightDataManager.Instance.SortCardList(CardDataManager.GetCardListByRoleType(0),dressListAllAcore, scoreType);
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                cardDatas = CardDataManager.GetCardListByRoleType(0).ToList();
+                int limitTims = CimbingTowerCfgArray.Instance.dataArray[0].UseLimit;
+                foreach (var item in FieldWorkDataManager.Instance.CardAbrasionInfoList)
+                {
+                    if (item.UseNum >= limitTims)
+                    {
+                        for(int i = 0;i< cardDatas.Count;i++)
+                        {
+                            if(cardDatas[i].id == item.Card)
+                            {
+                                cardDatas.RemoveAt(i);
+                                break;
+                            }
+                        }
+                    }
+                }
+                cardDatas = FightDataManager.Instance.SortCardList(cardDatas,dressListAllAcore, scoreType).ToList();
+            }
+            else
+            {
+                cardDatas = FightDataManager.Instance.SortCardList(CardDataManager.GetCardListByRoleType(0),
                 dressListAllAcore, scoreType);
+            }
             cardDatas = cardDatas.Where(a => !wearCardIds.Contains(a.id)).ToList();
             if (cardDatas.Count == 0) return 0;
             wearCardIds.Add(cardDatas[0].itemCfg.id);
@@ -187,7 +211,19 @@ namespace GFGGame
                 int key = subType;
                 if (itemDatasDic.Count == 0) continue;
                 if (DressUpMenuItemCfg1Array.Instance.CheckIsSceneTypeBySubType(subType)) continue;
-                List<int> dressList = SortDressList(itemDatasDic[subType], scoreType, tags);
+                List<int> dressList = new List<int>();//= SortDressList(itemDatasDic[subType], scoreType, tags);
+                if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+                {
+                    dressList = SortDressList(itemDatasDic[subType], scoreType, tags).ToList();
+                    foreach(var item in FieldWorkDataManager.Instance.HistoryDressupList)
+                    {
+                        dressList.Remove(item);
+                    }
+                }
+                else
+                {
+                    dressList = SortDressList(itemDatasDic[subType], scoreType, tags).ToList();
+                }
                 int max = subType == (int)ConstDressUpItemType.TE_SHU ? 3 : 1;
                 max = Math.Min(max, dressList.Count);
                 if (DressUpMenuItemCfg1Array.Instance.CheckIsOrnamentsTypeBySubType(subType))

+ 347 - 0
GameClient/Assets/Game/HotUpdate/Data/FieldWorkDataManager.cs

@@ -0,0 +1,347 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using ET;
+using UnityEngine;
+using UI.FieldWork;
+using FairyGUI;
+
+namespace GFGGame
+{
+    class FieldWorkDataManager : SingletonBase<FieldWorkDataManager>
+    {
+        public long LastFightTime = 0; //上次战斗时间,时间为0,说明未战斗过,则没有段位奖励
+        public List<int> ThemeList = new List<int>() { 1, 2, 3 };
+        public List<string> Tag = new List<string> { "艳丽", "志怪" }; //本周标签
+        public int SeasonId = 1; // 赛季id
+        public List<FightData> DressupList = new List<FightData>(); //我的搭配列表
+        public List<int> HistoryDressupList = new List<int>();//本周通过关的服装列表
+        public List<CardAbrasionInfo> CardAbrasionInfoList = new List<CardAbrasionInfo>();
+        public Dictionary<int,CimbingTowerLevelInfoProto> CimbingTowerLevelInfoList = new Dictionary<int, CimbingTowerLevelInfoProto>();
+
+        public List<int> roundTime = new List<int>();
+        public OtherRoleInfoData roleInfo = new OtherRoleInfoData() { 
+            roleName = RoleDataManager.roleName,
+            roleLv = RoleDataManager.lvl,
+            headId = RoleDataManager.headId};
+        //Dictionary<回合下标, Dictionary<partId, Dictionary<战斗节点, List<PassivitySkillLvlCfg>>>>
+        public Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>> vaildSkills =
+            new Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>>();
+
+        public Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>> targetVaildSkills =
+            new Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>>();
+
+        public int SelectThemeIndex = 0; //当前选中换装主题(ThemeList)的下标
+        public int SelectTargetIndex = -1; //当前选中挑战对象的下标
+        public int CurFightIndex = 0; //当前挑战场次下标
+        public List<long> myScore = new List<long>(); //对战数据,三轮分数
+
+        public List<ItemInfoProto> BonusList = new List<ItemInfoProto>(); //战斗结算奖励
+
+        public int targetWinScore = 10000;
+
+        //战斗关卡
+        public int currentLevelID = 0;
+        public List<string> nameList = new List<string>() 
+        {"壹","贰","叄","肆","伍","陆","柒","捌","玖","拾","拾壹","终"};
+        /// <summary>
+        /// 更新战斗结算总分,含胜负
+        /// </summary>
+        /// <param name="obj"></param>
+        /// <param name="myScores"></param>
+        /// <param name="targetScore"></param>
+        public void UpdateAllScoreResult(GObject obj, List<long> myScores,int targetScore)
+        {
+            UI_ComAllScoreResult com = UI_ComAllScoreResult.Proxy(obj);
+            bool isWin = UpdateAllScore(com.m_comResult.target, myScores, targetScore);
+            //_ui.m_loaResule.url = isWin ? "ui://FieldWork/kstzjj_slsl" : "ui://FieldWork/kstzjj_shib";
+            UI_ComAllScoreResult.ProxyEnd();
+        }
+
+        public bool UpdateAllScore(GObject obj, List<long> myScores, int targetScore)
+        {
+            long myAllScore = 0;
+            long targetAllScore = 0;
+            for (int i = 0; i < myScores.Count; i++)
+            {
+                myAllScore += myScores[i];
+            }
+            UI_ComAllScore com = UI_ComAllScore.Proxy(obj);
+            com.m_txtMyFightScore.text = myAllScore.ToString();
+            UI_ComAllScore.ProxyEnd();
+            bool isWin = myAllScore > targetAllScore;
+            return isWin;
+        }
+
+        /// <summary>
+        /// 更新标签、战力、属性分数值
+        /// </summary>
+        public void UpdateValue(GObject obj, int index, List<FightData> roleDatas)
+        {
+            UI.Arena.UI_ComFIeldValueInfo com = UI.Arena.UI_ComFIeldValueInfo.Proxy(obj);
+            com.m_scoreType.url = ResPathUtil.GetScorePath(FieldWorkDataManager.Instance.ThemeList[index]);
+            com.m_txtScore.text = FightDataManager.Instance.GetScore(roleDatas[index]).ToString();
+            long fightScore = ArenaDataManager.Instance.GetAllFightScore(roleDatas);
+            com.m_txtFightScore.SetVar("value", fightScore.ToString()).FlushVars(); ;
+            com.m_txtTagScore.text = FightDataManager.Instance.GetTagsScore(roleDatas[index].itemList, roleDatas[index].tags).ToString();
+            int count = ArenaDataManager.Instance.GetTagsCount(roleDatas[index].itemList, roleDatas[index].tags);
+            com.m_c1.selectedIndex = Math.Min(count, ArenaTagCfgArray.Instance.dataArray.Length);
+            com.m_c3.selectedIndex = roleDatas[index].tags.Length > 0 ? 1 : 0;
+            UpdateFightScore(com.m_comFightScore.target, roleDatas);
+
+                ItemUtil.UpdateTag(com.m_comTag, roleDatas[index].tags[0]);
+                ItemUtil.UpdateTag(com.m_comTag1, roleDatas[index].tags[1]);
+            
+            if (com.m_btnTagRule.data == null)
+            {
+                com.m_btnTagRule.onClick.Add(RuleController.ShowRuleView);
+                com.m_btnTagRule.data = 300034;
+            }
+            UI.Arena.UI_ComFIeldValueInfo.ProxyEnd();
+        }
+        /// <summary>
+        /// 更新战力值
+        /// </summary>
+        public void UpdateFightScore(GObject obj, List<FightData> roleDatas)
+        {
+            List<long> fightScore = ArenaDataManager.Instance.GetFightScoreList(roleDatas);
+            UI.Arena.UI_ComFieldFightScore com = UI.Arena.UI_ComFieldFightScore.Proxy(obj);
+            com.m_txtSuitScore.SetVar("value", fightScore[0].ToString()).FlushVars(); ;
+            com.m_txtClickScore.SetVar("value", fightScore[1].ToString()).FlushVars(); ;
+            com.m_txtCardScore.SetVar("value", fightScore[2].ToString()).FlushVars(); ;
+            UI.Arena.UI_ComFieldFightScore.ProxyEnd();
+        }
+        public void GetFightResult()
+        {
+            myScore.Clear();
+            long allScore = 0;
+            for (int i = 0; i < DressupList.Count; i++)
+            {
+                FieldWorkDataManager.Instance.GetQuickFightResult(i, DressupList[i], out long score);
+                allScore += score;
+                myScore.Add(score);
+            }
+        }
+        public int GetTargetWinScore(int levelID)
+        {
+            targetWinScore = 10000;
+            return targetWinScore;
+        }
+        public string GetHeihtScore(int levelID)
+        {
+            if(CimbingTowerLevelInfoList.ContainsKey(levelID))
+            {
+                long score = CimbingTowerLevelInfoList[levelID].WeekMaxScore;
+                return score.ToString();
+            }
+            else
+            {
+                return "";
+            }    
+        }
+        public List<List<int>> GetDressAndCard()
+        {
+            List<List<int>> dress = new List<List<int>>();
+            for (int i=0;i< FieldWorkDataManager.Instance.DressupList.Count;i++)
+            {
+                List<int> dressA = new List<int>();
+                dressA = FieldWorkDataManager.Instance.DressupList[i].itemList.ToList();
+                if (FieldWorkDataManager.Instance.DressupList[i].cardId > 0)
+                {
+                    dressA.Add(FieldWorkDataManager.Instance.DressupList[i].cardId);
+                }
+                dress.Add(dressA);
+            }
+            return dress;
+        }
+        public float GetCardAbrasion(int cardID)
+        {
+            float abrasion = 0;
+            float UseNum = 0;
+            float cardTimes = CimbingTowerCfgArray.Instance.dataArray[0].UseLimit;
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cardID);
+            if(itemCfg == null)
+            {
+                return 100;
+            }
+            foreach (var item in CardAbrasionInfoList)
+            {
+                if(item.Card == cardID)
+                {
+                    UseNum = item.UseNum;
+                    abrasion = UseNum / cardTimes;
+                    if(abrasion >= 1)
+                    {
+                        abrasion = 1;
+                    }
+                    break;
+                }
+            }
+            return abrasion * 100;
+        }
+        //输入属性类型,获取联盟技能该属性加成总值
+        public int GetAllSkillScore(int scoreType)
+        {
+            int score = 0;
+            if(scoreType == 0)
+            {
+                return score;
+            }
+            foreach (int key in SkillDataManager.Instance.LeagueSkillScoreDatas.Keys)
+            {
+                score += SkillDataManager.Instance.LeagueSkillScoreDatas[key][scoreType];
+            }
+            return score;
+        }
+        public void SetDataScoreType()
+        {
+            for(int i = 0;i<DressupList.Count;i++)
+            {
+                DressupList[i].scoreType = ThemeList[i];
+            }
+        }
+        public bool SetCanStart()
+        {
+            int i = 0;
+            foreach(var item in DressupList)
+            {
+                if(item.cardId > 0)
+                {
+                    i++;    
+                }
+            }
+            if(i>=1)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+        public bool CheckLevelPass(int LevelID)
+        {
+            CimbingTowerLevelCfg levelCfg = CimbingTowerLevelCfgArray.Instance.dataArray[0];
+            if(LevelID == levelCfg.id)
+            {
+                return true;
+            }
+            int levelBefore = LevelID - 1;
+            if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(levelBefore))
+            {
+               if( FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[levelBefore].IsPass)
+                {
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+            else
+            {
+                return false;
+            }
+        }
+        /// <summary>
+        /// 词牌如果磨损达到上限就放到最后
+        /// </summary>
+        /// <param name="arrayList"></param>
+        /// <returns></returns>
+        public List<CardData> SortCardList(List<CardData> cardList)
+        {
+            List<CardData> card = new List<CardData>();
+            int limitNum = CimbingTowerCfgArray.Instance.dataArray[0].UseLimit;
+            card = cardList.ToList();
+            for(int i = 0;i<card.Count;i++)
+            {
+                foreach(var item in CardAbrasionInfoList)
+                {
+                    if(item.Card == card[i].id)
+                    {
+                        if(item.UseNum >= limitNum)
+                        {
+                            // 添加到列表末尾
+                            card.Add(card[i]);
+                            // 移除元素
+                            card.RemoveAt(i);
+                        }
+                        break;
+                    }
+                }
+            }
+            return card;
+        }
+
+
+        /// <summary>
+        /// 获取快速挑战结果
+        /// </summary>
+        /// <param name="myRoleData"></param>
+        /// <param name="_score"></param>
+
+        public void GetQuickFightResult(int roundIndex, FightData myRoleData, out long _score)
+        {
+            double score = 0;
+
+            int cardId = myRoleData.cardId;
+            double mainScore = ScoreSystemData.Instance.GetMainScore(myRoleData);
+            List<int> skillLvs = myRoleData.skillLvs;
+
+            List<int> roundTime = ScoreSystemData.Instance.GetRoundTime(myRoleData.cardId, myRoleData.skillLvs);
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena || InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                FieldWorkDataManager.Instance.roundTime = roundTime;
+                if (!FieldWorkDataManager.Instance.vaildSkills.ContainsKey(roundIndex)) FieldWorkDataManager.Instance.vaildSkills[roundIndex] = new Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>();
+            }
+
+            int roundId = 0;
+            int currentTime = SkillBeginTime.FIGHT_BEGIN;
+            GetSkillScore(FightRoleType.MINE, roundIndex, currentTime, roundId, mainScore, cardId, skillLvs, roundTime, ref score);
+            for (int i = 0; i < FightScoreCfgArray.Instance.dataArray.Length; i++)
+            {
+                roundId++;
+                currentTime = SkillBeginTime.ERVERY_ROUND_BEGIN;
+                GetSkillScore(FightRoleType.MINE, roundIndex, currentTime, roundId, mainScore, cardId, skillLvs, roundTime, ref score);            
+                score += ScoreSystemData.Instance.GetRoundScore(myRoleData, roundId, ClickType.PERFECT_CLICK, 0);
+                currentTime = SkillBeginTime.PERFECT_CLICK;
+                GetSkillScore(FightRoleType.MINE, roundIndex, currentTime, roundId, mainScore, cardId, skillLvs, roundTime, ref score);
+                currentTime = SkillBeginTime.ERVERY_ROUND_END;
+                GetSkillScore(FightRoleType.MINE, roundIndex, currentTime, roundId, mainScore, cardId, skillLvs, roundTime, ref score);
+                // Debug.Log(" targetScore444:" + targetScore);
+            }
+            roundId++;
+            currentTime = SkillBeginTime.ALL_PERFECT_START;
+            GetSkillScore(FightRoleType.MINE, roundIndex, currentTime, roundId, mainScore, cardId, skillLvs, roundTime, ref score);
+            score += ScoreSystemData.Instance.GetAllCircleAddScore(myRoleData);
+            _score = Mathf.CeilToInt((float)score);
+        }
+
+        private void GetSkillScore(int roleType, int roundIndex, int currentTime, int partId, double mainScore, int cardId, List<int> skillLvs, List<int> roundTime, ref double score)
+        {
+            List<int> targetSkillLvs = new List<int>();
+            List<int> targetRoundTime = new List<int>();
+            List<PassivitySkillLvlCfg> vaildSkills = ScoreSystemData.Instance.GetValidSkills(currentTime, partId, cardId, skillLvs, 0, targetSkillLvs, roundTime, targetRoundTime);
+            ScoreSystemData.Instance.GetRoundItemSkillScore(vaildSkills, mainScore, 0, out int skillScore, out int targetSkillScore, out Dictionary<int, int> skillScoreDic);
+
+            score += skillScore;
+
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena || InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                FieldWorkDataManager dataManager = FieldWorkDataManager.Instance;
+                if (roleType == FightRoleType.MINE)
+                {
+                    if (!dataManager.vaildSkills[roundIndex].ContainsKey(partId)) dataManager.vaildSkills[roundIndex][partId] = new Dictionary<int, List<PassivitySkillLvlCfg>>();
+                    dataManager.vaildSkills[roundIndex][partId][currentTime] = vaildSkills;
+
+                }
+                else
+                {
+                    if (!dataManager.targetVaildSkills[roundIndex].ContainsKey(partId)) dataManager.targetVaildSkills[roundIndex][partId] = new Dictionary<int, List<PassivitySkillLvlCfg>>();
+                    dataManager.targetVaildSkills[roundIndex][partId][currentTime] = vaildSkills;
+                }
+            }
+
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Data/FieldWorkDataManager.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bd855039bf3f13743b31f2700247da8d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 3
GameClient/Assets/Game/HotUpdate/Data/FightDataManager.cs

@@ -43,7 +43,7 @@ namespace GFGGame
             {
                 score += ItemDataManager.GetArenaScore(roleData.itemList[i], roleData.scoreType, roleData.tags);
             }
-            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena)
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena || InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
             {
                 int tagCount = ArenaDataManager.Instance.GetTagsCount(roleData.itemList, roleData.tags); ;
                 tagCount = Math.Min(ArenaTagCfgArray.Instance.dataArray.Length, tagCount);
@@ -331,7 +331,7 @@ namespace GFGGame
             {
                 targetMainScore = ScoreSystemData.Instance.GetRobotMainScore(targetRoleData);
             }
-            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena)
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena || InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
             {
                 ArenaDataManager.Instance.roundTime = roundTime;
                 ArenaDataManager.Instance.targetRoundTime = targetRoundTime;
@@ -386,7 +386,7 @@ namespace GFGGame
             score += skillScore;
             targetScore += targetSkillScore;
 
-            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena)
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena || InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
             {
                 ArenaDataManager dataManager = ArenaDataManager.Instance;
                 if (roleType == FightRoleType.MINE)

+ 4 - 0
GameClient/Assets/Game/HotUpdate/Data/ItemDataManager.cs

@@ -393,6 +393,10 @@ namespace GFGGame
         public static bool CheckItemTagsRight(int itemId, string[] tags)
         {
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+            if(itemCfg == null)
+            {
+                return false;
+            }
             for (int i = 0; i < itemCfg.tagsArr.Length; i++)
             {
                 for (int j = 0; j < tags.Length; j++)

+ 3 - 3
GameClient/Assets/Game/HotUpdate/Data/ScoreSystemData.cs

@@ -61,7 +61,7 @@ namespace GFGGame
                     for (int k = 0; k < cfg.subTypesArr.Length; k++)
                     {
                         ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(roleData.itemList[i]);
-                        if (itemCfg.subType == cfg.subTypesArr[k])
+                        if (itemCfg !=null && itemCfg.subType == cfg.subTypesArr[k])
                         {
                             roleData.partListDic[cfg.id].Add(roleData.itemList[i]);
                             roleData.partScoreListDic[cfg.id].Add(roleData.itemScoreList[i]);
@@ -217,7 +217,7 @@ namespace GFGGame
                 tagScore += ItemDataManager.GetItemTagScore(partList[i], roleData.tags);
                 // if (ItemDataManager.CheckItemTagsRight(partList[i], roleData.tags)) tagCount++;
             }
-            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena)
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena || InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
             {
                 tagCount = ArenaDataManager.Instance.GetTagsCount(roleData.itemList, roleData.tags);
                 tagCount = Math.Min(ArenaTagCfgArray.Instance.dataArray.Length, tagCount);
@@ -253,7 +253,7 @@ namespace GFGGame
         private double GetRobotRoundBaseScore(FightData robotData, int roundId)
         {
             double partBaseScore = robotData.itemScoreList[roundId - 1];
-            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena)
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena || InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
             {
                 partBaseScore = partBaseScore * (1 + robotData.tagAddition / 10000f);
             }

+ 7 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Arena/UI_ArenaDressInfoUI.cs

@@ -10,10 +10,12 @@ namespace UI.Arena
         public Controller m_c1;
         public Controller m_c2;
         public Controller m_c3;
+        public Controller m_c4;
         public GLoader m_loaBg;
         public GButton m_btnBack;
         public GGraph m_grhCloseComFightScore;
         public UI_ComValueInfo m_comValueInfo;
+        public UI_ComFIeldValueInfo m_comFieldValueInfo;
         public GComponent m_comListBg;
         public GList m_list;
         public UI_ComCard m_comCard;
@@ -72,10 +74,12 @@ namespace UI.Arena
             m_c1 = comp.GetController("c1");
             m_c2 = comp.GetController("c2");
             m_c3 = comp.GetController("c3");
+            m_c4 = comp.GetController("c4");
             m_loaBg = (GLoader)comp.GetChild("loaBg");
             m_btnBack = (GButton)comp.GetChild("btnBack");
             m_grhCloseComFightScore = (GGraph)comp.GetChild("grhCloseComFightScore");
             m_comValueInfo = (UI_ComValueInfo)UI_ComValueInfo.Create(comp.GetChild("comValueInfo"));
+            m_comFieldValueInfo = (UI_ComFIeldValueInfo)UI_ComFIeldValueInfo.Create(comp.GetChild("comFieldValueInfo"));
             m_comListBg = (GComponent)comp.GetChild("comListBg");
             m_list = (GList)comp.GetChild("list");
             m_comCard = (UI_ComCard)UI_ComCard.Create(comp.GetChild("comCard"));
@@ -90,11 +94,14 @@ namespace UI.Arena
             m_c1 = null;
             m_c2 = null;
             m_c3 = null;
+            m_c4 = null;
             m_loaBg = null;
             m_btnBack = null;
             m_grhCloseComFightScore = null;
             m_comValueInfo.Dispose();
             m_comValueInfo = null;
+            m_comFieldValueInfo.Dispose();
+            m_comFieldValueInfo = null;
             m_comListBg = null;
             m_list = null;
             m_comCard.Dispose();

+ 105 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Arena/UI_ComFIeldValueInfo.cs

@@ -0,0 +1,105 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.Arena
+{
+    public partial class UI_ComFIeldValueInfo
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public Controller m_c2;
+        public Controller m_c3;
+        public GTextField m_txtFightScore;
+        public GButton m_btnFightScoreRule;
+        public GLoader m_scoreType;
+        public GTextField m_txtScore;
+        public GButton m_btnTagRule;
+        public GComponent m_comTag;
+        public GComponent m_comTag1;
+        public GTextField m_txtTagScore;
+        public UI_ComFieldFightScore m_comFightScore;
+        public const string URL = "ui://4lc5fhlbo8tw6w";
+        public const string PACKAGE_NAME = "Arena";
+        public const string RES_NAME = "ComFIeldValueInfo";
+        private static UI_ComFIeldValueInfo _proxy;
+
+        public static UI_ComFIeldValueInfo Create(GObject gObject = null)
+        {
+            var ui = new UI_ComFIeldValueInfo();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ComFIeldValueInfo Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComFIeldValueInfo();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_c2 = comp.GetController("c2");
+            m_c3 = comp.GetController("c3");
+            m_txtFightScore = (GTextField)comp.GetChild("txtFightScore");
+            m_btnFightScoreRule = (GButton)comp.GetChild("btnFightScoreRule");
+            m_scoreType = (GLoader)comp.GetChild("scoreType");
+            m_txtScore = (GTextField)comp.GetChild("txtScore");
+            m_btnTagRule = (GButton)comp.GetChild("btnTagRule");
+            m_comTag = (GComponent)comp.GetChild("comTag");
+            m_comTag1 = (GComponent)comp.GetChild("comTag1");
+            m_txtTagScore = (GTextField)comp.GetChild("txtTagScore");
+            m_comFightScore = (UI_ComFieldFightScore)UI_ComFieldFightScore.Create(comp.GetChild("comFightScore"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_c2 = null;
+            m_c3 = null;
+            m_txtFightScore = null;
+            m_btnFightScoreRule = null;
+            m_scoreType = null;
+            m_txtScore = null;
+            m_btnTagRule = null;
+            m_comTag = null;
+            m_comTag1 = null;
+            m_txtTagScore = null;
+            m_comFightScore.Dispose();
+            m_comFightScore = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Arena/UI_ComFIeldValueInfo.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 08f872863e7ecd342b89f4a9e06f7df6
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 80 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Arena/UI_ComFieldFightScore.cs

@@ -0,0 +1,80 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.Arena
+{
+    public partial class UI_ComFieldFightScore
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GTextField m_txtSuitScore;
+        public GTextField m_txtClickScore;
+        public GTextField m_txtCardScore;
+        public const string URL = "ui://4lc5fhlbo8tw6x";
+        public const string PACKAGE_NAME = "Arena";
+        public const string RES_NAME = "ComFieldFightScore";
+        private static UI_ComFieldFightScore _proxy;
+
+        public static UI_ComFieldFightScore Create(GObject gObject = null)
+        {
+            var ui = new UI_ComFieldFightScore();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ComFieldFightScore Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComFieldFightScore();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_txtSuitScore = (GTextField)comp.GetChild("txtSuitScore");
+            m_txtClickScore = (GTextField)comp.GetChild("txtClickScore");
+            m_txtCardScore = (GTextField)comp.GetChild("txtCardScore");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_txtSuitScore = null;
+            m_txtClickScore = null;
+            m_txtCardScore = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Arena/UI_ComFieldFightScore.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ad55ec5c3c1a0614fac473967d04a972
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 6 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_ArenaDressUpFightUI.cs

@@ -7,12 +7,14 @@ namespace UI.DressUp
     public partial class UI_ArenaDressUpFightUI
     {
         public GComponent target;
+        public Controller m_c1;
         public GLoader m_loaBg;
         public GGraph m_touchPad;
         public GButton m_btnBack;
         public GTextField m_txtDressLimit;
         public GGraph m_grhCloseComFightScore;
         public GComponent m_comValueInfo;
+        public GComponent m_comFieldValueInfo;
         public UI_comListType m_comListType1;
         public UI_comListType m_comListType2;
         public UI_PartsList m_partsList;
@@ -71,12 +73,14 @@ namespace UI.DressUp
 
         private void Init(GComponent comp)
         {
+            m_c1 = comp.GetController("c1");
             m_loaBg = (GLoader)comp.GetChild("loaBg");
             m_touchPad = (GGraph)comp.GetChild("touchPad");
             m_btnBack = (GButton)comp.GetChild("btnBack");
             m_txtDressLimit = (GTextField)comp.GetChild("txtDressLimit");
             m_grhCloseComFightScore = (GGraph)comp.GetChild("grhCloseComFightScore");
             m_comValueInfo = (GComponent)comp.GetChild("comValueInfo");
+            m_comFieldValueInfo = (GComponent)comp.GetChild("comFieldValueInfo");
             m_comListType1 = (UI_comListType)UI_comListType.Create(comp.GetChild("comListType1"));
             m_comListType2 = (UI_comListType)UI_comListType.Create(comp.GetChild("comListType2"));
             m_partsList = (UI_PartsList)UI_PartsList.Create(comp.GetChild("partsList"));
@@ -91,12 +95,14 @@ namespace UI.DressUp
         }
         public void Dispose(bool disposeTarget = false)
         {
+            m_c1 = null;
             m_loaBg = null;
             m_touchPad = null;
             m_btnBack = null;
             m_txtDressLimit = null;
             m_grhCloseComFightScore = null;
             m_comValueInfo = null;
+            m_comFieldValueInfo = null;
             m_comListType1.Dispose();
             m_comListType1 = null;
             m_comListType2.Dispose();

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_DressUpFightUI.cs

@@ -40,6 +40,7 @@ namespace UI.DressUp
         public GGroup m_graContent;
         public GLoader m_loaGuide;
         public GButton m_btnSubmission;
+        public GButton m_btnNextCompetition;
         public GTextField m_txtMatch;
         public GTextField m_txtTeaPartyName;
         public const string URL = "ui://mbo439wbqsvd2m";
@@ -122,6 +123,7 @@ namespace UI.DressUp
             m_graContent = (GGroup)comp.GetChild("graContent");
             m_loaGuide = (GLoader)comp.GetChild("loaGuide");
             m_btnSubmission = (GButton)comp.GetChild("btnSubmission");
+            m_btnNextCompetition = (GButton)comp.GetChild("btnNextCompetition");
             m_txtMatch = (GTextField)comp.GetChild("txtMatch");
             m_txtTeaPartyName = (GTextField)comp.GetChild("txtTeaPartyName");
         }
@@ -166,6 +168,7 @@ namespace UI.DressUp
             m_graContent = null;
             m_loaGuide = null;
             m_btnSubmission = null;
+            m_btnNextCompetition = null;
             m_txtMatch = null;
             m_txtTeaPartyName = null;
             if(disposeTarget && target != null)

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_PartsListItem.cs

@@ -20,6 +20,7 @@ namespace UI.DressUp
         public GTextField m_txtTitle;
         public GButton m_btnAni;
         public GList m_ListTag;
+        public GImage m_lock;
         public const string URL = "ui://mbo439wbk6he26";
         public const string PACKAGE_NAME = "DressUp";
         public const string RES_NAME = "PartsListItem";
@@ -80,6 +81,7 @@ namespace UI.DressUp
             m_txtTitle = (GTextField)comp.GetChild("txtTitle");
             m_btnAni = (GButton)comp.GetChild("btnAni");
             m_ListTag = (GList)comp.GetChild("ListTag");
+            m_lock = (GImage)comp.GetChild("lock");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -96,6 +98,7 @@ namespace UI.DressUp
             m_txtTitle = null;
             m_btnAni = null;
             m_ListTag = null;
+            m_lock = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 8 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6c6013f628b5b2a4384163f7bebce39b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_Button1.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_Button1
+    {
+        public GButton target;
+        public GTextField m_name;
+        public const string URL = "ui://efym480mrjjsh";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "Button1";
+        private static UI_Button1 _proxy;
+
+        public static UI_Button1 Create(GObject gObject = null)
+        {
+            var ui = new UI_Button1();
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Button1 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Button1();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_name = (GTextField)comp.GetChild("name");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_name = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_Button1.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f2eeff12db5587140acd1aceca5382f9
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 74 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComAllScore.cs

@@ -0,0 +1,74 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_ComAllScore
+    {
+        public GComponent target;
+        public GTextField m_txtTargetFightScore;
+        public GTextField m_txtMyFightScore;
+        public const string URL = "ui://efym480mo8tw15";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "ComAllScore";
+        private static UI_ComAllScore _proxy;
+
+        public static UI_ComAllScore Create(GObject gObject = null)
+        {
+            var ui = new UI_ComAllScore();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ComAllScore Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComAllScore();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_txtTargetFightScore = (GTextField)comp.GetChild("txtTargetFightScore");
+            m_txtMyFightScore = (GTextField)comp.GetChild("txtMyFightScore");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_txtTargetFightScore = null;
+            m_txtMyFightScore = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComAllScore.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a0343d86582da8d4eb7208810e8adfc2
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 72 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComAllScoreResult.cs

@@ -0,0 +1,72 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_ComAllScoreResult
+    {
+        public GComponent target;
+        public UI_ComAllScore m_comResult;
+        public const string URL = "ui://efym480mo8tw14";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "ComAllScoreResult";
+        private static UI_ComAllScoreResult _proxy;
+
+        public static UI_ComAllScoreResult Create(GObject gObject = null)
+        {
+            var ui = new UI_ComAllScoreResult();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ComAllScoreResult Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComAllScoreResult();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_comResult = (UI_ComAllScore)UI_ComAllScore.Create(comp.GetChild("comResult"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_comResult.Dispose();
+            m_comResult = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComAllScoreResult.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ac82915c0d4658a4c812bd4422ca954d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 87 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCard.cs

@@ -0,0 +1,87 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_ComCard
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public UI_ComCardMask m_comCard;
+        public GLoader m_loaScore;
+        public GLoader m_loaRarity;
+        public GTextField m_wearRateText;
+        public GTextField m_txtCardName;
+        public const string URL = "ui://efym480mo8tw18";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "ComCard";
+        private static UI_ComCard _proxy;
+
+        public static UI_ComCard Create(GObject gObject = null)
+        {
+            var ui = new UI_ComCard();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ComCard Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComCard();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_comCard = (UI_ComCardMask)UI_ComCardMask.Create(comp.GetChild("comCard"));
+            m_loaScore = (GLoader)comp.GetChild("loaScore");
+            m_loaRarity = (GLoader)comp.GetChild("loaRarity");
+            m_wearRateText = (GTextField)comp.GetChild("wearRateText");
+            m_txtCardName = (GTextField)comp.GetChild("txtCardName");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_comCard.Dispose();
+            m_comCard = null;
+            m_loaScore = null;
+            m_loaRarity = null;
+            m_wearRateText = null;
+            m_txtCardName = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCard.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bd2927ac4edf92742864b71079704557
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCardMask.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_ComCardMask
+    {
+        public GComponent target;
+        public GLoader m_loaCard;
+        public const string URL = "ui://efym480mo8tw1a";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "ComCardMask";
+        private static UI_ComCardMask _proxy;
+
+        public static UI_ComCardMask Create(GObject gObject = null)
+        {
+            var ui = new UI_ComCardMask();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ComCardMask Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComCardMask();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_loaCard = (GLoader)comp.GetChild("loaCard");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_loaCard = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCardMask.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d74664789e0c3b846b0d338fd0e287a5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 72 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCardRecord.cs

@@ -0,0 +1,72 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_ComCardRecord
+    {
+        public GComponent target;
+        public UI_ComResultCardMask m_comCardmask;
+        public const string URL = "ui://efym480mo8tw10";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "ComCardRecord";
+        private static UI_ComCardRecord _proxy;
+
+        public static UI_ComCardRecord Create(GObject gObject = null)
+        {
+            var ui = new UI_ComCardRecord();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ComCardRecord Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComCardRecord();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_comCardmask = (UI_ComResultCardMask)UI_ComResultCardMask.Create(comp.GetChild("comCardmask"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_comCardmask.Dispose();
+            m_comCardmask = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComCardRecord.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1612cd35d4c1d334580a91621d6be1a9
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComResultCardMask.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_ComResultCardMask
+    {
+        public GComponent target;
+        public GLoader m_loaCard;
+        public const string URL = "ui://efym480mo8tw11";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "ComResultCardMask";
+        private static UI_ComResultCardMask _proxy;
+
+        public static UI_ComResultCardMask Create(GObject gObject = null)
+        {
+            var ui = new UI_ComResultCardMask();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ComResultCardMask Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComResultCardMask();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_loaCard = (GLoader)comp.GetChild("loaCard");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_loaCard = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ComResultCardMask.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c882db5f5a1dfca4b9502451e51fe192
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 72 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompChapter.cs

@@ -0,0 +1,72 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_CompChapter
+    {
+        public GComponent target;
+        public UI_CompChapterScroll m_compChapterScroll;
+        public const string URL = "ui://efym480mrjjs1";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "CompChapter";
+        private static UI_CompChapter _proxy;
+
+        public static UI_CompChapter Create(GObject gObject = null)
+        {
+            var ui = new UI_CompChapter();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_CompChapter Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_CompChapter();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_compChapterScroll = (UI_CompChapterScroll)UI_CompChapterScroll.Create(comp.GetChild("compChapterScroll"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_compChapterScroll.Dispose();
+            m_compChapterScroll = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompChapter.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 97df0f7699811484487718785762887a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 116 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompChapterScroll.cs

@@ -0,0 +1,116 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_CompChapterScroll
+    {
+        public GComponent target;
+        public UI_CompStoryLevelItem m_g11;
+        public UI_CompStoryLevelItem m_g10;
+        public UI_CompStoryLevelItem m_g9;
+        public UI_CompStoryLevelItem m_g8;
+        public UI_CompStoryLevelItem m_g7;
+        public UI_CompStoryLevelItem m_g6;
+        public UI_CompStoryLevelItem m_g5;
+        public UI_CompStoryLevelItem m_g4;
+        public UI_CompStoryLevelItem m_g3;
+        public UI_CompStoryLevelItem m_g2;
+        public UI_CompStoryLevelItem m_g1;
+        public UI_CompStoryLevelItem m_g0;
+        public const string URL = "ui://efym480mrjjs2";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "CompChapterScroll";
+        private static UI_CompChapterScroll _proxy;
+
+        public static UI_CompChapterScroll Create(GObject gObject = null)
+        {
+            var ui = new UI_CompChapterScroll();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_CompChapterScroll Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_CompChapterScroll();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_g11 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g11"));
+            m_g10 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g10"));
+            m_g9 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g9"));
+            m_g8 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g8"));
+            m_g7 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g7"));
+            m_g6 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g6"));
+            m_g5 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g5"));
+            m_g4 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g4"));
+            m_g3 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g3"));
+            m_g2 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g2"));
+            m_g1 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g1"));
+            m_g0 = (UI_CompStoryLevelItem)UI_CompStoryLevelItem.Create(comp.GetChild("g0"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_g11.Dispose();
+            m_g11 = null;
+            m_g10.Dispose();
+            m_g10 = null;
+            m_g9.Dispose();
+            m_g9 = null;
+            m_g8.Dispose();
+            m_g8 = null;
+            m_g7.Dispose();
+            m_g7 = null;
+            m_g6.Dispose();
+            m_g6 = null;
+            m_g5.Dispose();
+            m_g5 = null;
+            m_g4.Dispose();
+            m_g4 = null;
+            m_g3.Dispose();
+            m_g3 = null;
+            m_g2.Dispose();
+            m_g2 = null;
+            m_g1.Dispose();
+            m_g1 = null;
+            m_g0.Dispose();
+            m_g0 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompChapterScroll.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: be9125c0cd911844e9d708dcc8338039
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 92 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompStoryLevelItem.cs

@@ -0,0 +1,92 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_CompStoryLevelItem
+    {
+        public GButton target;
+        public Controller m_c1;
+        public GLoader m_fightBg;
+        public GTextField m_levelIcon;
+        public GTextField m_txtFightOrder;
+        public GGraph m_holder;
+        public GImage m_lock;
+        public Transition m_t0;
+        public Transition m_t1;
+        public const string URL = "ui://efym480mrjjs5";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "CompStoryLevelItem";
+        private static UI_CompStoryLevelItem _proxy;
+
+        public static UI_CompStoryLevelItem Create(GObject gObject = null)
+        {
+            var ui = new UI_CompStoryLevelItem();
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_CompStoryLevelItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_CompStoryLevelItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_fightBg = (GLoader)comp.GetChild("fightBg");
+            m_levelIcon = (GTextField)comp.GetChild("levelIcon");
+            m_txtFightOrder = (GTextField)comp.GetChild("txtFightOrder");
+            m_holder = (GGraph)comp.GetChild("holder");
+            m_lock = (GImage)comp.GetChild("lock");
+            m_t0 = comp.GetTransition("t0");
+            m_t1 = comp.GetTransition("t1");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_fightBg = null;
+            m_levelIcon = null;
+            m_txtFightOrder = null;
+            m_holder = null;
+            m_lock = null;
+            m_t0 = null;
+            m_t1 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_CompStoryLevelItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 31e7bc83aeb4c2542b84dfb52db7a351
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 99 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkLevelInfoUI.cs

@@ -0,0 +1,99 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_FieldWorkLevelInfoUI
+    {
+        public GComponent target;
+        public GLoader m_btnBg;
+        public GLoader m_loaderHead;
+        public GTextField m_txtTargetName;
+        public GTextField m_txtTitle;
+        public GTextField m_txtHighestScore;
+        public GLoader m_scoreType;
+        public GList m_listBonus;
+        public GButton m_btnStart;
+        public UI_Button1 m_btnSkip;
+        public GList m_cardList;
+        public const string URL = "ui://efym480mo8twl";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "FieldWorkLevelInfoUI";
+        private static UI_FieldWorkLevelInfoUI _proxy;
+
+        public static UI_FieldWorkLevelInfoUI Create(GObject gObject = null)
+        {
+            var ui = new UI_FieldWorkLevelInfoUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_FieldWorkLevelInfoUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_FieldWorkLevelInfoUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_btnBg = (GLoader)comp.GetChild("btnBg");
+            m_loaderHead = (GLoader)comp.GetChild("loaderHead");
+            m_txtTargetName = (GTextField)comp.GetChild("txtTargetName");
+            m_txtTitle = (GTextField)comp.GetChild("txtTitle");
+            m_txtHighestScore = (GTextField)comp.GetChild("txtHighestScore");
+            m_scoreType = (GLoader)comp.GetChild("scoreType");
+            m_listBonus = (GList)comp.GetChild("listBonus");
+            m_btnStart = (GButton)comp.GetChild("btnStart");
+            m_btnSkip = (UI_Button1)UI_Button1.Create(comp.GetChild("btnSkip"));
+            m_cardList = (GList)comp.GetChild("cardList");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_btnBg = null;
+            m_loaderHead = null;
+            m_txtTargetName = null;
+            m_txtTitle = null;
+            m_txtHighestScore = null;
+            m_scoreType = null;
+            m_listBonus = null;
+            m_btnStart = null;
+            m_btnSkip.Dispose();
+            m_btnSkip = null;
+            m_cardList = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkLevelInfoUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: dc082e4d993d8b646ae3eb711574f735
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 99 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkLevelUI.cs

@@ -0,0 +1,99 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_FieldWorkLevelUI
+    {
+        public GComponent target;
+        public GLoader m_Bg;
+        public UI_CompChapter m_chapter;
+        public GLoader m_ruleBtn;
+        public UI_Button1 m_shopBtn;
+        public GList m_listTag;
+        public GButton m_BtnBack;
+        public UI_Button1 m_resetBtn;
+        public UI_Button1 m_passBtn;
+        public GGraph m_bgEffect;
+        public const string URL = "ui://efym480mrjjs0";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "FieldWorkLevelUI";
+        private static UI_FieldWorkLevelUI _proxy;
+
+        public static UI_FieldWorkLevelUI Create(GObject gObject = null)
+        {
+            var ui = new UI_FieldWorkLevelUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_FieldWorkLevelUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_FieldWorkLevelUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_Bg = (GLoader)comp.GetChild("Bg");
+            m_chapter = (UI_CompChapter)UI_CompChapter.Create(comp.GetChild("chapter"));
+            m_ruleBtn = (GLoader)comp.GetChild("ruleBtn");
+            m_shopBtn = (UI_Button1)UI_Button1.Create(comp.GetChild("shopBtn"));
+            m_listTag = (GList)comp.GetChild("listTag");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
+            m_resetBtn = (UI_Button1)UI_Button1.Create(comp.GetChild("resetBtn"));
+            m_passBtn = (UI_Button1)UI_Button1.Create(comp.GetChild("passBtn"));
+            m_bgEffect = (GGraph)comp.GetChild("bgEffect");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_Bg = null;
+            m_chapter.Dispose();
+            m_chapter = null;
+            m_ruleBtn = null;
+            m_shopBtn.Dispose();
+            m_shopBtn = null;
+            m_listTag = null;
+            m_BtnBack = null;
+            m_resetBtn.Dispose();
+            m_resetBtn = null;
+            m_passBtn.Dispose();
+            m_passBtn = null;
+            m_bgEffect = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkLevelUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 11ff5dbd589c6754aa06becaa814d34c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 78 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkRoundResultUI.cs

@@ -0,0 +1,78 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_FieldWorkRoundResultUI
+    {
+        public GComponent target;
+        public UI_ComAllScoreResult m_ComResult;
+        public GList m_list;
+        public GLoader m_loaResule;
+        public const string URL = "ui://efym480mo8tww";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "FieldWorkRoundResultUI";
+        private static UI_FieldWorkRoundResultUI _proxy;
+
+        public static UI_FieldWorkRoundResultUI Create(GObject gObject = null)
+        {
+            var ui = new UI_FieldWorkRoundResultUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_FieldWorkRoundResultUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_FieldWorkRoundResultUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_ComResult = (UI_ComAllScoreResult)UI_ComAllScoreResult.Create(comp.GetChild("ComResult"));
+            m_list = (GList)comp.GetChild("list");
+            m_loaResule = (GLoader)comp.GetChild("loaResule");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_ComResult.Dispose();
+            m_ComResult = null;
+            m_list = null;
+            m_loaResule = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkRoundResultUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f8a4b134a4a27d94fae7b5103a9c72a7
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkRoundTips.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_FieldWorkRoundTips
+    {
+        public GComponent target;
+        public GLoader m_icon;
+        public GGraph m_effect;
+        public Transition m_t0;
+        public const string URL = "ui://efym480mjw0925";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "FieldWorkRoundTips";
+        private static UI_FieldWorkRoundTips _proxy;
+
+        public static UI_FieldWorkRoundTips Create(GObject gObject = null)
+        {
+            var ui = new UI_FieldWorkRoundTips();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_FieldWorkRoundTips Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_FieldWorkRoundTips();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_icon = (GLoader)comp.GetChild("icon");
+            m_effect = (GGraph)comp.GetChild("effect");
+            m_t0 = comp.GetTransition("t0");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_icon = null;
+            m_effect = null;
+            m_t0 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_FieldWorkRoundTips.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e2a636882a8e1064db78393609cb04ca
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 84 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ListResultItem.cs

@@ -0,0 +1,84 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_ListResultItem
+    {
+        public GComponent target;
+        public GLoader m_loaScore;
+        public GTextField m_txtMyScore;
+        public GComponent m_comMyHead;
+        public UI_ComCardRecord m_loaMyCard;
+        public GTextField m_txtRound;
+        public const string URL = "ui://efym480mo8twy";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "ListResultItem";
+        private static UI_ListResultItem _proxy;
+
+        public static UI_ListResultItem Create(GObject gObject = null)
+        {
+            var ui = new UI_ListResultItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ListResultItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ListResultItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_loaScore = (GLoader)comp.GetChild("loaScore");
+            m_txtMyScore = (GTextField)comp.GetChild("txtMyScore");
+            m_comMyHead = (GComponent)comp.GetChild("comMyHead");
+            m_loaMyCard = (UI_ComCardRecord)UI_ComCardRecord.Create(comp.GetChild("loaMyCard"));
+            m_txtRound = (GTextField)comp.GetChild("txtRound");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_loaScore = null;
+            m_txtMyScore = null;
+            m_comMyHead = null;
+            m_loaMyCard.Dispose();
+            m_loaMyCard = null;
+            m_txtRound = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ListResultItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1a8a83bc40d7d154b9fd8699431a53c3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ListRewardItem.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.FieldWork
+{
+    public partial class UI_ListRewardItem
+    {
+        public GComponent target;
+        public GComponent m_comItem;
+        public GTextField m_txtName;
+        public GTextField m_txtOwner;
+        public const string URL = "ui://efym480mo8twv";
+        public const string PACKAGE_NAME = "FieldWork";
+        public const string RES_NAME = "ListRewardItem";
+        private static UI_ListRewardItem _proxy;
+
+        public static UI_ListRewardItem Create(GObject gObject = null)
+        {
+            var ui = new UI_ListRewardItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ListRewardItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ListRewardItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_comItem = (GComponent)comp.GetChild("comItem");
+            m_txtName = (GTextField)comp.GetChild("txtName");
+            m_txtOwner = (GTextField)comp.GetChild("txtOwner");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_comItem = null;
+            m_txtName = null;
+            m_txtOwner = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/FieldWork/UI_ListRewardItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d35b6f8b98e8b9940878349a8cfe47ee
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 102 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/InstanceZones/UI_InstanceSamllUI.cs

@@ -0,0 +1,102 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.InstanceZones
+{
+    public partial class UI_InstanceSamllUI
+    {
+        public GComponent target;
+        public UI_ButtonModle7 m_btn1;
+        public UI_ButtonModle9 m_btnStudio;
+        public UI_ButtonModle9 m_btnTravel;
+        public UI_ButtonModle9 m_btnPoem;
+        public GButton m_btnPoemGudie;
+        public UI_ButtonModle9 m_btnField;
+        public UI_ButtonModle9 m_btnArena;
+        public UI_ButtonModle9 m_btnFieldWork;
+        public Transition m_t0;
+        public const string URL = "ui://ez8qotvcvnmh9fzm";
+        public const string PACKAGE_NAME = "InstanceZones";
+        public const string RES_NAME = "InstanceSamllUI";
+        private static UI_InstanceSamllUI _proxy;
+
+        public static UI_InstanceSamllUI Create(GObject gObject = null)
+        {
+            var ui = new UI_InstanceSamllUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_InstanceSamllUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_InstanceSamllUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_btn1 = (UI_ButtonModle7)UI_ButtonModle7.Create(comp.GetChild("btn1"));
+            m_btnStudio = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnStudio"));
+            m_btnTravel = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnTravel"));
+            m_btnPoem = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnPoem"));
+            m_btnPoemGudie = (GButton)comp.GetChild("btnPoemGudie");
+            m_btnField = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnField"));
+            m_btnArena = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnArena"));
+            m_btnFieldWork = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnFieldWork"));
+            m_t0 = comp.GetTransition("t0");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_btn1.Dispose();
+            m_btn1 = null;
+            m_btnStudio.Dispose();
+            m_btnStudio = null;
+            m_btnTravel.Dispose();
+            m_btnTravel = null;
+            m_btnPoem.Dispose();
+            m_btnPoem = null;
+            m_btnPoemGudie = null;
+            m_btnField.Dispose();
+            m_btnField = null;
+            m_btnArena.Dispose();
+            m_btnArena = null;
+            m_btnFieldWork.Dispose();
+            m_btnFieldWork = null;
+            m_t0 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/InstanceZones/UI_InstanceSamllUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 124446bb46ff4d04aa7744abed24746d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 4 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/InstanceZones/UI_InstanceZonesUI.cs

@@ -17,6 +17,7 @@ namespace UI.InstanceZones
         public GButton m_btnPoemGudie;
         public UI_ButtonModle9 m_btnField;
         public UI_ButtonModle9 m_btnArena;
+        public UI_InstanceSamllUI m_instance;
         public GGraph m_eff;
         public GButton m_btnBack;
         public GComponent m_valueBar;
@@ -78,6 +79,7 @@ namespace UI.InstanceZones
             m_btnPoemGudie = (GButton)comp.GetChild("btnPoemGudie");
             m_btnField = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnField"));
             m_btnArena = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnArena"));
+            m_instance = (UI_InstanceSamllUI)UI_InstanceSamllUI.Create(comp.GetChild("instance"));
             m_eff = (GGraph)comp.GetChild("eff");
             m_btnBack = (GButton)comp.GetChild("btnBack");
             m_valueBar = (GComponent)comp.GetChild("valueBar");
@@ -101,6 +103,8 @@ namespace UI.InstanceZones
             m_btnField = null;
             m_btnArena.Dispose();
             m_btnArena = null;
+            m_instance.Dispose();
+            m_instance = null;
             m_eff = null;
             m_btnBack = null;
             m_valueBar = null;

+ 6 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_ListCardFightItem.cs

@@ -20,6 +20,8 @@ namespace UI.Main
         public UI_ComDodgeFightStar m_dodgeStar3;
         public GImage m_useIcon;
         public GGraph m_effect;
+        public GTextField m_wearRateText;
+        public GGroup m_fieldwork;
         public Transition m_t0;
         public const string URL = "ui://mfvz4q8kr1a99f";
         public const string PACKAGE_NAME = "Main";
@@ -81,6 +83,8 @@ namespace UI.Main
             m_dodgeStar3 = (UI_ComDodgeFightStar)UI_ComDodgeFightStar.Create(comp.GetChild("dodgeStar3"));
             m_useIcon = (GImage)comp.GetChild("useIcon");
             m_effect = (GGraph)comp.GetChild("effect");
+            m_wearRateText = (GTextField)comp.GetChild("wearRateText");
+            m_fieldwork = (GGroup)comp.GetChild("fieldwork");
             m_t0 = comp.GetTransition("t0");
         }
         public void Dispose(bool disposeTarget = false)
@@ -103,6 +107,8 @@ namespace UI.Main
             m_dodgeStar3 = null;
             m_useIcon = null;
             m_effect = null;
+            m_wearRateText = null;
+            m_fieldwork = null;
             m_t0 = null;
             if(disposeTarget && target != null)
             {

+ 1 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/CommonSProxy.cs

@@ -59,6 +59,7 @@ namespace GFGGame
                     SuitFosterProxy.SendGetSuitInfos().Coroutine();
                     FieldSProxy.ReqFieldInstanceInfos().Coroutine();
                     ArenaSproxy.ReqArenaInfos().Coroutine();
+                    FieldWorkSproxy.ReqFieldWorkInfos().Coroutine();
                     EnduringGiftBoxSProxy.ReqGetAllGiftBagRebateStatus().Coroutine();
                     LuckyBoxSProxy.ReqGetLuckyBoxRotatingInfo().Coroutine();
                     RoleLimitSProxy.ReqUnitLimitInfos().Coroutine();

+ 242 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/FieldWorkSproxy.cs

@@ -0,0 +1,242 @@
+using System;
+using System.Collections.Generic;
+using ET;
+
+namespace GFGGame
+{
+    public class NoticeFieldWorkChange : AMHandler<SC_RankChange>
+    {
+        protected override async ETTask Run(Session session, SC_RankChange message)
+        {
+            await ETTask.CompletedTask;
+        }
+    }
+    public static class FieldWorkSproxy
+    {
+        //获取爬塔信息
+        public static async ETTask ReqFieldWorkInfos()
+        {
+            S2C_GetGetCimbingTowerInfo response = null;
+            response = (S2C_GetGetCimbingTowerInfo)await MessageHelper.SendToServer(new C2S_GetCimbingTowerInfo());
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    FieldWorkDataManager.Instance.Tag = response.WeekTags ;
+                    FieldWorkDataManager.Instance.DressupList.Clear();
+                    FieldWorkDataManager.Instance.HistoryDressupList = response.WeekUserItems;
+                    FieldWorkDataManager.Instance.CardAbrasionInfoList = response.CardAbrasionInfoList;
+                    FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Clear();
+                    foreach (var item in response.CimbingTowerLevelInfoList)
+                    {
+                        FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Add(item.LevelId,item);
+                    }
+                    AddDressup(response.EquipAIds, 0, 0);
+                    AddDressup(response.EquipBIds, 0, 1);
+                    AddDressup(response.EquipCIds, 0, 2);
+                }
+            }
+        }
+        public static void AddDressup(List<int> itemList,int scoreType,int i)
+        {
+            FightData roleData = GetFightRoleData(itemList, FieldWorkDataManager.Instance.roleInfo, scoreType);
+            roleData.leagueSkillScore = FieldWorkDataManager.Instance.GetAllSkillScore(scoreType);
+            FightDataManager.Instance.SetItemScoreList(roleData);
+            ArenaDataManager.Instance.SetMineFightAttr(roleData, scoreType);
+            ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData);
+            FieldWorkDataManager.Instance.DressupList.Add(roleData);
+        }
+        //更换搭配
+        public static async ETTask<bool> ReqChangeFieldWorkDressup()
+        {
+            List<List<int>> dress = new List<List<int>>();
+            dress = FieldWorkDataManager.Instance.GetDressAndCard();
+            S2C_CimbingTowerSaveCollocation response = null;
+            response = (S2C_CimbingTowerSaveCollocation)await MessageHelper.SendToServer(new C2S_CimbingTowerSaveCollocation()
+            {
+                EquipAIds = dress[0],
+                EquipBIds = dress[1],
+                EquipCIds = dress[2],
+            }) ;
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
+        //更换单个搭配
+        public static async ETTask<bool> ReqChangeFieldWorkDressupOne(int index,int cardId ,List<int> dressList)
+        {
+            List<int> dress = new List<int>();
+            dress = dressList;
+            dress.Add(cardId);
+            List<List<int>> dressAll = new List<List<int>>();
+            dressAll = FieldWorkDataManager.Instance.GetDressAndCard();
+            dressAll[index] = dress;
+            S2C_CimbingTowerSaveCollocation response = null;
+            response = (S2C_CimbingTowerSaveCollocation)await MessageHelper.SendToServer(new C2S_CimbingTowerSaveCollocation()
+            {
+                EquipAIds = dressAll[0],
+                EquipBIds = dressAll[1],
+                EquipCIds = dressAll[2],
+            });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
+        //关卡挑战
+        public static async ETTask<bool> ReqFieldWorkFight(int levelId)
+        {
+            List<List<int>> dress = new List<List<int>>();
+            dress = FieldWorkDataManager.Instance.GetDressAndCard();
+            S2C_CimbingTowerFightLevel response = null;
+            response = (S2C_CimbingTowerFightLevel)await MessageHelper.SendToServer(new C2S_CimbingTowerFightLevel()
+            {
+                LevelId = levelId,
+                FightScoreList = FieldWorkDataManager.Instance.myScore,
+                EquipAIds = dress[0],
+                EquipBIds = dress[1],
+                EquipCIds = dress[2],
+            }) ;
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    FieldWorkDataManager.Instance.HistoryDressupList = response.WeekUserItems;
+                    FieldWorkDataManager.Instance.CardAbrasionInfoList = response.CardAbrasionInfoList;
+                    if(response.CimbingTowerLevelInfo.IsPass)
+                    {
+                        if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(response.CimbingTowerLevelInfo.LevelId))
+                        {
+                            FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[response.CimbingTowerLevelInfo.LevelId] = response.CimbingTowerLevelInfo;
+                        }
+                        else
+                        {
+                            PromptController.Instance.ShowFloatTextPrompt("已通过,自动清除服装,保留卡牌!");
+                            FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Add(response.CimbingTowerLevelInfo.LevelId, response.CimbingTowerLevelInfo);
+                        }
+
+                       int limit = CimbingTowerCfgArray.Instance.dataArray[0].UseLimit;
+                       bool isDelete = false;
+                       for(int i=0;i<FieldWorkDataManager.Instance.DressupList.Count;i++)
+                       {
+                            FieldWorkDataManager.Instance.DressupList[i].itemList.Clear();
+                            foreach(var item in FieldWorkDataManager.Instance.CardAbrasionInfoList)
+                            {
+                                if(item.Card == FieldWorkDataManager.Instance.DressupList[i].cardId)
+                                {
+                                    if(item.UseNum >= limit)
+                                    {
+                                        FieldWorkDataManager.Instance.DressupList[i].cardId = 0;
+                                        isDelete = true;
+                                    }
+                                }
+                            }                          
+                       }
+                       if(isDelete)
+                       {
+                            PromptController.Instance.ShowFloatTextPrompt("词牌磨损率过高已自动解除佩戴!");
+                       }
+                        FieldWorkDataManager.Instance.BonusList = response.BonusList;
+                        EventAgent.DispatchEvent(ConstMessage.FieldWork_StateCHANGE);
+                        return true;
+                    }
+                    else
+                    {
+                        return false;
+                    }
+                }
+            }
+            return false;
+        }
+        //一键跳过
+        public static async ETTask<bool> ReqFieldWorkOneClickPass()
+        {
+            S2C_CimbingTowerOneClickPass response = null;
+            response = (S2C_CimbingTowerOneClickPass)await MessageHelper.SendToServer(new C2S_CimbingTowerOneClickPass(){ });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Clear();
+                    foreach (var item in response.CimbingTowerLevelInfoList)
+                    {
+                        if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(item.LevelId))
+                        {
+                            FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[item.LevelId] = item;
+                        }
+                        else
+                        {
+                            FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Add(item.LevelId, item);
+                        }
+                    }
+                    BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.BonusList));
+                    EventAgent.DispatchEvent(ConstMessage.FieldWork_StateCHANGE);
+                    return true;
+                }
+            }
+            return false;
+        }
+        //重置
+        public static async ETTask<bool> ReqFieldWorkReset()
+        {
+            S2C_CimbingTowerResetLevel response = null;
+            response = (S2C_CimbingTowerResetLevel)await MessageHelper.SendToServer(new C2S_CimbingTowerResetLevel(){});
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    FieldWorkDataManager.Instance.HistoryDressupList.Clear();
+                    FieldWorkDataManager.Instance.CardAbrasionInfoList = response.CardAbrasionInfoList;
+                    foreach (var item in response.CimbingTowerLevelInfoList)
+                    {
+                        if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(item.LevelId))
+                        {
+                            FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[item.LevelId] = item;
+                        }
+                        else
+                        {
+                            FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Add(item.LevelId, item);
+                        }
+                    }
+                    EventAgent.DispatchEvent(ConstMessage.FieldWork_StateCHANGE);
+                    return true;
+                }
+            }
+            return false;
+        }
+        private static FightData GetFightRoleData(List<int> dressupProto, OtherRoleInfoData roleInfo, int scoreType)
+        {
+            FightData fightData = new FightData();
+            fightData.name = roleInfo.roleName;
+            fightData.scoreType = scoreType;
+            fightData.baseScore = RoleLevelCfgArray.Instance.GetCfg(roleInfo.roleLv).baseScore;
+            fightData.tags = FieldWorkDataManager.Instance.Tag.ToArray();
+            fightData.type = FightTargetType.PLAYER;
+            fightData.headId = roleInfo.headId;
+            List<int> dressList = new List<int>();
+            foreach(var item in dressupProto)
+            {
+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(item);
+                if(itemCfg != null && itemCfg.itemType == ConstItemType.DRESS_UP)
+                {
+                    dressList.Add(item);
+                }
+                else if(itemCfg != null && itemCfg.itemType == ConstItemType.CARD)
+                {
+                    fightData.cardId = item;
+                }
+            }
+            fightData.itemList = dressList;
+            return fightData;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/FieldWorkSproxy.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 74b9ab43d4f097e4db32164174836637
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 93 - 26
GameClient/Assets/Game/HotUpdate/Views/Arena/ArenaDressInfoView.cs

@@ -76,16 +76,17 @@ namespace GFGGame
             _roleDatas = (this.viewData as object[])[2] as List<FightData>;
             _openViewName = (this.viewData as object[])[3].ToString();
 
-            _ui.m_grhCloseComFightScore.visible = false;
-            _ui.m_c1.selectedIndex = _roleType;
-            _ui.m_c2.selectedIndex = _themeIndex;
             if (_sceneObject == null)
             {
                 _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("SceneArenaDressUp"));
                 MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, false, false);
             }
+            _ui.m_grhCloseComFightScore.visible = false;
+            _ui.m_c1.selectedIndex = _roleType;
+            _ui.m_c2.selectedIndex = _themeIndex;
 
-            UpdateView();
+            UpdateView();  
+            
             Timers.inst.AddUpdate(CheckGuide);
         }
 
@@ -127,7 +128,10 @@ namespace GFGGame
             {
                 ArenaDataManager.Instance.SelectThemeIndex = _themeIndex;
             }
-
+            else if(_roleType == FightRoleType.FieldWork)
+            {
+                FieldWorkDataManager.Instance.SelectThemeIndex = _themeIndex;
+            }
             UpdateView();
         }
 
@@ -144,35 +148,66 @@ namespace GFGGame
 
         private void OnBtnDressClick()
         {
-            ViewManager.Show<ArenaDressUpFightView>();
+            if(_roleType != 2)
+            {
+                ViewManager.Show<ArenaDressUpFightView>();
+            }
+            else
+            {
+                ViewManager.Show<FieldWorkDressFightView>();
+            }
         }
 
         private async void OnBtnRecommendClick()
         {
             //标记,本次推荐已经穿戴过的词牌,防止重复。
             var wearCardIds = new List<int>();
-            for (int i = 0; i < ArenaDataManager.Instance.ThemeList.Count; i++)
+            if (_roleType == FightRoleType.MINE)
             {
-                int scoreType = ArenaDataManager.Instance.ThemeList[i];
-                FightData roleData = ArenaDataManager.Instance.DressupList[i];
-                roleData.scoreType = scoreType;
-                roleData.itemList = ArenaDataManager.Instance.GetRecommentItemList(scoreType, roleData.tags);
-                roleData.cardId =
-                    ArenaDataManager.Instance.GetRecommentCardId(scoreType, roleData.itemList, wearCardIds);
-                ArenaDataManager.Instance.SetMineFightAttr(roleData, scoreType);
-                ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData);
-                _roleDatas = ArenaDataManager.Instance.DressupList;
-                List<long> fightScoreDatas = ArenaDataManager.Instance.GetFightScoreList(_roleDatas);
-                bool result = await ArenaSproxy.ReqChangeArenaDressup(i, roleData.cardId, roleData.itemList , fightScoreDatas);
-                if (!result)
+                for (int i = 0; i < ArenaDataManager.Instance.ThemeList.Count; i++)
                 {
-                    PromptController.Instance.ShowFloatTextPrompt("保存失败");
-                    return;
+                    int scoreType = ArenaDataManager.Instance.ThemeList[i];
+                    FightData roleData = ArenaDataManager.Instance.DressupList[i];
+                    roleData.scoreType = scoreType;
+                    roleData.itemList = ArenaDataManager.Instance.GetRecommentItemList(scoreType, roleData.tags);
+                    roleData.cardId =
+                        ArenaDataManager.Instance.GetRecommentCardId(scoreType, roleData.itemList, wearCardIds);
+                    ArenaDataManager.Instance.SetMineFightAttr(roleData, scoreType);
+                    ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData);
+                    _roleDatas = ArenaDataManager.Instance.DressupList;
+                    List<long> fightScoreDatas = ArenaDataManager.Instance.GetFightScoreList(_roleDatas);
+                    bool result = await ArenaSproxy.ReqChangeArenaDressup(i, roleData.cardId, roleData.itemList, fightScoreDatas);
+                    if (!result)
+                    {
+                        PromptController.Instance.ShowFloatTextPrompt("保存失败");
+                        return;
+                    }
+                }         
+            }
+            else if (_roleType == FightRoleType.FieldWork)
+            {
+                for (int i = 0; i < FieldWorkDataManager.Instance.ThemeList.Count; i++)
+                {
+                    int scoreType = FieldWorkDataManager.Instance.ThemeList[i];
+                    FightData roleData = FieldWorkDataManager.Instance.DressupList[i];
+                    roleData.scoreType = scoreType;
+                    roleData.itemList = ArenaDataManager.Instance.GetRecommentItemList(scoreType, roleData.tags);
+                    roleData.cardId =
+                        ArenaDataManager.Instance.GetRecommentCardId(scoreType, roleData.itemList, wearCardIds);
+                    ArenaDataManager.Instance.SetMineFightAttr(roleData, scoreType);
+                    ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData);
+                    _roleDatas = FieldWorkDataManager.Instance.DressupList;
+                    List<long> fightScoreDatas = ArenaDataManager.Instance.GetFightScoreList(_roleDatas);
+                    bool result = await FieldWorkSproxy.ReqChangeFieldWorkDressup();
+                    if (!result)
+                    {
+                        PromptController.Instance.ShowFloatTextPrompt("保存失败");
+                        return;
+                    }
                 }
             }
 
             wearCardIds.Clear();
-
             PromptController.Instance.ShowFloatTextPrompt("保存成功");
 
             UpdateView();
@@ -183,8 +218,24 @@ namespace GFGGame
             // _itemList = _roleDatas[_themeIndex].itemList;
             _tags = _roleDatas[_themeIndex].tags;
             UpdateCardInfo(_roleDatas[_themeIndex].cardId);
-            ArenaViewManager.Instance.UpdateValue(_ui.m_comValueInfo.target, _themeIndex, _roleDatas);
-
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena)
+            {
+                _ui.m_c4.selectedIndex = 0;
+                ArenaViewManager.Instance.UpdateValue(_ui.m_comValueInfo.target, _themeIndex, _roleDatas);
+            }
+            else
+            {
+                _ui.m_c4.selectedIndex = 1;
+                FieldWorkDataManager.Instance.UpdateValue(_ui.m_comFieldValueInfo.target, _themeIndex, _roleDatas);
+                for (int i = 0; i < FieldWorkDataManager.Instance.ThemeList.Count; i++)
+                {
+                    int scoreType = FieldWorkDataManager.Instance.ThemeList[i];
+                    FightData roleData = FieldWorkDataManager.Instance.DressupList[i];
+                    ArenaDataManager.Instance.SetMineFightAttr(roleData, scoreType);
+                    ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData);
+                }
+            }
+                
             MyDressUpHelper.dressUpObj.PutOnItemList(_roleDatas[_themeIndex].itemList);
             _itemList.Clear();
             for (int i = 0; i < _roleDatas[_themeIndex].itemList.Count; i++)
@@ -212,7 +263,15 @@ namespace GFGGame
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cardId);
             _ui.m_comCard.m_txtCardName.text = itemCfg.name;
             _ui.m_comCard.m_comCard.m_loaCard.url = ResPathUtil.GetCardIconPath(itemCfg.res);
-            _ui.m_comCard.m_loaScore.url = ResPathUtil.GetScorePath(ArenaDataManager.Instance.ThemeList[_themeIndex]);
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena)
+            {
+                _ui.m_comCard.m_loaScore.url = ResPathUtil.GetScorePath(ArenaDataManager.Instance.ThemeList[_themeIndex]);
+            }
+            else
+            {
+                _ui.m_comCard.m_loaScore.url = ResPathUtil.GetScorePath(FieldWorkDataManager.Instance.ThemeList[_themeIndex]);
+            }
+
             RarityIconController.UpdateRarityIcon(_ui.m_comCard.m_loaRarity, cardId, false);
         }
 
@@ -222,7 +281,15 @@ namespace GFGGame
             item.m_iconSelected.visible = true;
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemList[index]);
             item.m_txtTitle.text = itemCfg.name;
-            item.m_ScoreType.url = ResPathUtil.GetScorePath(ArenaDataManager.Instance.ThemeList[_themeIndex]);
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena)
+            {
+                item.m_ScoreType.url = ResPathUtil.GetScorePath(ArenaDataManager.Instance.ThemeList[_themeIndex]);
+            }
+            else
+            {
+                item.m_ScoreType.url = ResPathUtil.GetScorePath(FieldWorkDataManager.Instance.ThemeList[_themeIndex]);
+            }
+            
             item.m_icon.url = ResPathUtil.GetIconPath(itemCfg.res, "png");
             item.m_txtScore.text = _roleDatas[_themeIndex].itemScoreDic[_itemList[index]].ToString();
             RarityIconController.UpdateRarityIcon(item.m_rarity, _itemList[index], false);

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/DressUp/ArenaDressUpFightView.cs

@@ -154,6 +154,7 @@ namespace GFGGame
             }
             MyDressUpHelper.dressUpObj.PutOnItemList(_roleData.itemList);
             _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
+            _ui.m_c1.selectedIndex = 0;
             UpdateStepBtn(true);
             UpdateValueInfo();
             SendLog();

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs

@@ -1164,6 +1164,7 @@ namespace GFGGame
                 _listLongPress.Add(longPressGesture);
             }
 
+            listItem.m_lock.visible = false;
             listItem.m_btnAni.visible = false;
             listItem.m_icon.url = ResPathUtil.GetIconPath(iconRes, ext);
             listItem.m_ScoreType.url = "ui://CommonGame/kp_sx_" + scoreType;
@@ -1231,7 +1232,7 @@ namespace GFGGame
                 listItem.m_ListTag.numItems = itemCfg.tagsArr.Length;
                 listItem.m_itemType.selectedIndex = 1;
             }
-
+            listItem.m_lock.visible = false;
             listItem.m_icon.url = ResPathUtil.GetIconPath(iconRes, ext);
             listItem.m_txtTitle.text = partName;
             listItem.target.data = id;

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs

@@ -855,6 +855,7 @@ namespace GFGGame
             listItem.m_grpScore.visible = false;
             //listItem.m_ScoreType.visible = true;
             listItem.m_imgNeed.visible = false;
+            listItem.m_lock.visible = false;
 
             UI_PartsListItem.ProxyEnd();
 
@@ -903,6 +904,7 @@ namespace GFGGame
             listItem.m_imgNeed.visible = false;
             bool isNew = DressUpMenuItemDataManager.CheckIsDressUpItemNew(id);
             listItem.m_imgNew.visible = isNew;
+            listItem.m_lock.visible = false;
             if (isNew)
             {
                 ItemProxy.ReqSetItemRead(id).Coroutine();

+ 8 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a43f295d58cabc841b9e3808c458d951
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1074 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkDressFIghtView.cs

@@ -0,0 +1,1074 @@
+using UI.DressUp;
+using FairyGUI;
+using UnityEngine;
+using System.Collections.Generic;
+
+namespace GFGGame
+{
+    public class FieldWorkDressFightView : BaseWindow
+    {
+        private UI_ArenaDressUpFightUI _ui;
+        // private DressUpObj _dressUpData = new DressUpObj();
+        private FieldWorkDataManager _dataManager;
+        private FightData _roleData;
+        public List<int> _itemList;//记录打开界面时的穿戴数据(保存后会更新)
+        private float listType1X = 0;
+        private float partsListX = 0;
+        private float partsListScrollingPosY = 0;
+        private DressUpListType currentListType;
+        private int[] _currentList2;
+        private GameObject _sceneObject;
+        private List<int> _currentList3 = new List<int>();
+        private List<int> _currentList4 = new List<int>();
+        private int _currentMenuType;
+        private int _currentSuitId;
+
+        //暂存cardid
+        private int cardId;
+        // private StoryLevelCfg _levelCfg;
+        // private StoryFightCfg _fightCfg;
+
+        private const int SORT_BY_HIGH_SCORE = 0;
+        private const int SORT_BY_LOW_SCORE = 1;
+        private int _scoreIndex = SORT_BY_HIGH_SCORE;
+        private List<LongPressGesture> _listLongPress = new List<LongPressGesture>();
+
+
+        public override void Dispose()
+        {
+            if (_sceneObject != null)
+            {
+                PrefabManager.Instance.Restore(_sceneObject);
+                _sceneObject = null;
+            }
+            for (int i = 0; i < _listLongPress.Count; i++)
+            {
+                _listLongPress[i].Dispose();
+            }
+            // _dressUpData.Dispose();
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            base.Dispose();
+        }
+
+        protected override void Init()
+        {
+            base.Init();
+            packageName = UI_ArenaDressUpFightUI.PACKAGE_NAME;
+            _ui = UI_ArenaDressUpFightUI.Create();
+            viewCom = _ui.target;
+            isfullScreen = true;
+            isReturnView = true;
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            _ui.m_btnLastStep.visible = true;
+            _ui.m_btnNextStep.visible = true;
+            _ui.m_btnSearch.visible = true;
+            _ui.m_partsList.m_comboBoxRarity.items = new string[] { "高分优先", "低分优先" };
+            _ui.m_partsListSearch.m_comboBoxRarity.items = new string[] { "高分优先", "低分优先" };
+            InitLists();
+            _ui.m_partsList.m_comboBoxRarity.onChanged.Add(OnComboBoxRarityChanged);
+            _ui.m_partsListSearch.m_comboBoxRarity.onChanged.Add(OnSearchComboBoxRarityChanged);
+            _ui.m_btnBack.onClick.Add(OnClickBtnBack);
+
+            _ui.m_comListType1.m_listType.onClickItem.Add(OnClickListType1Item);
+            _ui.m_comListType2.m_listType.onClickItem.Add(OnClickListType2Item);
+            _ui.m_partsList.m_list.onClickItem.Add(OnClickPartsListItem);
+            _ui.m_partsList2.m_list.onClickItem.Add(OnClickSuitPartsListItem);
+            _ui.m_partsListSearch.m_list.onClickItem.Add(OnClickSearchPartsListItem);
+
+            _ui.m_touchPad.onClick.Add(OnTouchPad);
+            _ui.m_btnDelete.onClick.Add(OnClickBtnDelete);
+            _ui.m_btnNext.onClick.Add(OnClickBtnNext);
+            _ui.m_btnSearch.onClick.Add(OnClickBtnSearch);
+            _ui.m_btnLastStep.onClick.Add(OnClickBtnLastStep);
+            _ui.m_btnNextStep.onClick.Add(OnClickBtnNextStep);
+            // _ui.m_comValueInfo.m_btnFightScoreRule.onClick.Add(OnBtnFightScoreRule);
+            _ui.m_comValueInfo.GetChild("btnFightScoreRule").onClick.Add(OnBtnFightScoreRule);
+            _ui.m_grhCloseComFightScore.onClick.Add(OnCloseComFightScore);
+
+            _ui.m_partsList2.m_comboBoxRarity.visible = false;
+            _ui.m_partsList2.m_imgTop.visible = true;
+            _ui.m_partsList.m_imgTop.visible = false;
+
+        }
+
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, UpdateSerch);
+            EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, UpdateSerch);
+            EventAgent.AddEventListener(ConstMessage.CARD_SELECTED, UpdateValueInfo);
+            EventAgent.AddEventListener(ConstMessage.DRESS_FILTER_RESET, DressResetSerch);
+        }
+
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, UpdateSerch);
+            EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, UpdateSerch);
+            EventAgent.RemoveEventListener(ConstMessage.CARD_SELECTED, UpdateValueInfo);
+            EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER_RESET, DressResetSerch);
+        }
+
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _dataManager = FieldWorkDataManager.Instance;
+            _roleData = _dataManager.DressupList[_dataManager.SelectThemeIndex];
+            _itemList = new List<int>(_roleData.itemList);
+            InstanceZonesDataManager.currentScoreType = _dataManager.ThemeList[_dataManager.SelectThemeIndex];
+            InstanceZonesDataManager.currentFightTags = _dataManager.DressupList[_dataManager.SelectThemeIndex].tags;
+
+
+            _scoreIndex = _ui.m_partsList.m_comboBoxRarity.selectedIndex;
+
+            _ui.m_grhCloseComFightScore.visible = false;
+            //一级菜单
+            _ui.m_comListType1.m_listType.RemoveChildrenToPool();
+            _ui.m_comListType1.m_listType.numItems = DressUpMenuItemCfg1Array.Instance.dataArray.Length - 3;
+            float maxHeight = _ui.target.height - _ui.m_comListType1.m_listType.y - DressUpView.BOTTOM_BLANK;
+            if (_ui.m_comListType1.m_listType.height > maxHeight)
+            {
+                _ui.m_comListType1.m_listType.height = maxHeight;
+            }
+            _ui.m_comListType1.target.x = _ui.target.width;
+            _ui.m_comListType2.target.x = _ui.target.width;
+            _ui.m_partsList.target.x = _ui.target.width;
+            _ui.m_partsList2.target.x = _ui.target.width;
+            _ui.m_partsListSearch.target.x = _ui.target.width;
+            this.showListType1();
+            if (_sceneObject == null)
+            {
+                _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("SceneArenaDressUpFight"));
+                MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, false, false, null, true);
+                MyDressUpHelper.dressUpObj.AddOrRemove(180001, false);
+                // GameObject copyObj = _sceneObject.transform.Find("CopyRole").gameObject;
+                // _dressUpData.setSceneObj(copyObj);
+            }
+            MyDressUpHelper.dressUpObj.PutOnItemList(_roleData.itemList);
+            _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
+            _ui.m_c1.selectedIndex = 1;
+            UpdateStepBtn(true);
+            UpdateValueInfo();
+            SendLog();
+
+            cardId = _roleData.cardId;
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+
+            if (_sceneObject != null)
+            {
+                PrefabManager.Instance.Restore(_sceneObject);
+                _sceneObject = null;
+            }
+
+            DressUpMenuItemDataManager.Clear();
+            MyDressUpHelper.ResetMemory();
+
+            _ui.m_grhCloseComFightScore.visible = false;
+            _ui.m_comValueInfo.GetController("c2").selectedIndex = 0;
+
+        }
+
+        private void OnClickBtnBack()
+        {
+            bool isSave = _itemList.Count == MyDressUpHelper.dressUpObj.itemList.Count;
+            if (isSave)
+            {
+                for (int i = 0; i < _itemList.Count; i++)
+                {
+                    int itemId = MyDressUpHelper.dressUpObj.itemList[i];
+                    if (_itemList.IndexOf(itemId) < 0)
+                    {
+                        isSave = false;
+                        break;
+                    }
+                }
+            }
+            if (!isSave)
+            {
+                AlertUI.Show("当前穿搭尚未保存,是否确定退出?")
+                  .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) =>
+                  {
+                      _roleData.cardId = cardId;
+                      GoBackToView();
+                  });
+            }
+            else
+            {
+                GoBackToView();
+            }
+        }
+        private void GoBackToView()
+        {
+            _roleData.itemList = _itemList;
+            FightDataManager.Instance.SetItemScoreList(_roleData);
+            ScoreSystemData.Instance.SetEquipScoresWithPartId(_roleData);
+            //ViewManager.GoBackFrom(typeof(ArenaDressUpFightView).FullName);
+            //ViewManager.Show<ArenaDressInfoView>(new object[] { FightRoleType.MINE, 0, ArenaDataManager.Instance.DressupList, "" });
+            this.Hide();
+        }
+        private void OnBtnFightScoreRule()
+        {
+            _ui.m_grhCloseComFightScore.visible = true;
+        }
+        private void OnCloseComFightScore()
+        {
+            _ui.m_comValueInfo.GetController("c2").selectedIndex = 0;
+            _ui.m_grhCloseComFightScore.visible = false;
+        }
+        private void OnClickBtnHome()
+        {
+            AlertUI.Show("是否返回?")
+           .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) =>
+           {
+               GameController.GoBackToMainView();
+           });
+        }
+
+        private void UpdateValueInfo()
+        {
+            _roleData.itemList = MyDressUpHelper.dressUpObj.itemList;
+            FightDataManager.Instance.SetItemScoreList(_roleData);
+            ScoreSystemData.Instance.SetEquipScoresWithPartId(_roleData);
+            FieldWorkDataManager.Instance.UpdateValue(_ui.m_comFieldValueInfo, _dataManager.SelectThemeIndex, _dataManager.DressupList);
+
+        }
+
+        private void OnClickListType1Item(EventContext context)
+        {
+
+            // GuideController.HideGuide();
+            GObject typeItem = context.data as GObject;
+            int order = (int)typeItem.data;
+            DressUpMenuItemCfg1 item1 = DressUpMenuItemCfg1Array.Instance.dataArray[order - 1];
+            if (item1.subMenusArr.Length > 0)
+            {
+                this.showListType2(item1.subMenusArr);
+            }
+            else
+            {
+                if (this.showListParts(item1.type) == false)
+                {
+                    PromptController.Instance.ShowFloatTextPrompt("未获得此类部件");
+                    return;
+                }
+                this.showListParts(item1.type);
+
+            }
+            this.hideListType1();
+            UpdateListPartsSelected();
+        }
+
+        private void OnClickListType2Item(EventContext context)
+        {
+
+            GObject typeItem = context.data as GObject;
+            int order = (int)typeItem.data;
+            DressUpMenuItemCfg2 item2 = DressUpMenuItemCfg2Array.Instance.dataArray[order - 1];
+
+            if (this.showListParts(item2.type) == false)
+            {
+
+                PromptController.Instance.ShowFloatTextPrompt("未获得此类部件");
+                return;
+
+            }
+            this.hideListType2();
+        }
+
+        private void OnClickSearchPartsListItem(EventContext context)
+        {
+            if (ViewManager.isViewOpen(typeof(DressUpItemTipsView).FullName))
+            {
+                return;
+            }
+            GObject listItem = context.data as GObject;
+            int id = (int)listItem.data;
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG)
+                {
+                    int[] suitParts = SuitCfgArray.Instance.GetCfg(id).partsArr;
+                    foreach (var suitpart in suitParts)
+                    {
+                        foreach (var itemDressID in FieldWorkDataManager.Instance.HistoryDressupList)
+                        {
+                            if (suitpart == itemDressID)
+                            {
+                                PromptController.Instance.ShowFloatTextPrompt("该套装包含已使用服装,无法使用!");
+                                return;
+                            }
+                        }
+                    }
+                }
+                else
+                {
+                    foreach (var itemDressID in FieldWorkDataManager.Instance.HistoryDressupList)
+                    {
+                        if (itemDressID == id)
+                        {
+                            PromptController.Instance.ShowFloatTextPrompt("该服装本周使用次数已达上限!");
+                            return;
+                        }
+                    }
+                }
+            }
+            bool isOrnament = DressUpMenuItemCfg1Array.Instance.CheckIsOrnamentsType(id);
+            bool isDress = MyDressUpHelper.dressUpObj.CheckDressUpItemIsOn(id);
+            bool isHasSame = MyDressUpHelper.dressUpObj.CheckSameTypeIsOn(id);
+            bool isMaxCount = MyDressUpHelper.GetCurrentOrnamentCount() >= GlobalCfgArray.globalCfg.dressLimitCount;
+            if (isOrnament && !isDress && !isHasSame && isMaxCount)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("饰品穿戴数量已达上限");
+                return;
+            }
+            MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
+
+            _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
+            UpdateStepBtn(true);
+            // UpdateSearchListPartsSelected();
+            UpdateValueInfo();
+
+        }
+        private void OnClickPartsListItem(EventContext context)
+        {
+            if (ViewManager.isViewOpen(typeof(DressUpItemTipsView).FullName))
+            {
+                return;
+            }
+            GObject listItem = context.data as GObject;
+            int id = (int)listItem.data;
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG)
+                {
+                    int[] suitParts = SuitCfgArray.Instance.GetCfg(id).partsArr;
+                    foreach(var suitpart in suitParts)
+                    {
+                        foreach (var itemDressID in FieldWorkDataManager.Instance.HistoryDressupList)
+                        {
+                            if (suitpart == itemDressID)
+                            {
+                                PromptController.Instance.ShowFloatTextPrompt("该套装包含已使用服装,无法使用!");
+                                return;
+                            }
+                        }
+                    }
+                }
+                else
+                {
+                    foreach (var itemDressID in FieldWorkDataManager.Instance.HistoryDressupList)
+                    {
+                        if (itemDressID == id)
+                        {
+                            PromptController.Instance.ShowFloatTextPrompt("该服装本周使用次数已达上限");
+                            return;
+                        }
+                    }
+                }
+            }
+            if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG)
+            {
+                partsListScrollingPosY = _ui.m_partsList.m_list.scrollPane.scrollingPosY;
+                this.showListParts2(id);
+                this.hideListParts();
+                MyDressUpHelper.dressUpObj.PutOnItemList(MyDressUpHelper.GetSuitFightItems(id));
+            }
+            else
+            {
+                bool isOrnament = DressUpMenuItemCfg1Array.Instance.CheckIsOrnamentsType(id);
+                bool isDress = MyDressUpHelper.dressUpObj.CheckDressUpItemIsOn(id);
+                bool isHasSame = MyDressUpHelper.dressUpObj.CheckSameTypeIsOn(id);
+                bool isMaxCount = MyDressUpHelper.GetCurrentOrnamentCount() >= GlobalCfgArray.globalCfg.dressLimitCount;
+                if (isOrnament && !isDress && !isHasSame && isMaxCount)
+                {
+                    PromptController.Instance.ShowFloatTextPrompt("饰品穿戴数量已达上限");
+                    return;
+                }
+                MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
+            }
+            _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
+            UpdateStepBtn(true);
+            // UpdateListPartsSelected();
+            // UpdateListSuitPartsSelected();
+            UpdateValueInfo();
+
+        }
+        private void OnClickSuitPartsListItem(EventContext context)
+        {
+            if (ViewManager.isViewOpen(typeof(DressUpItemTipsView).FullName))
+            {
+                return;
+            }
+            GObject listItem = (GObject)context.data as GObject;
+            int id = (int)listItem.data;
+
+            bool isOrnament = DressUpMenuItemCfg1Array.Instance.CheckIsOrnamentsType(id);
+            bool isDress = MyDressUpHelper.dressUpObj.CheckDressUpItemIsOn(id);
+            bool isHasSame = MyDressUpHelper.dressUpObj.CheckSameTypeIsOn(id);
+            bool isMaxCount = MyDressUpHelper.GetCurrentOrnamentCount() >= GlobalCfgArray.globalCfg.dressLimitCount;
+            if (isOrnament && !isDress && !isHasSame && isMaxCount)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("饰品穿戴数量已达上限");
+                return;
+            }
+
+            if (!DressUpMenuItemDataManager.CheckHasItem(id))
+            {
+                PromptController.Instance.ShowFloatTextPrompt("还未获得这件装扮");
+                return;
+            }
+            MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
+            _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
+            UpdateStepBtn(true);
+            // UpdateListSuitPartsSelected();
+            UpdateValueInfo();
+        }
+        private void UpdateStepBtn(bool isAdd, int suitId = 0)
+        {
+            if (isAdd)
+            {
+                MyDressUpHelper.AddMemoryDressup();
+            }
+            _ui.m_btnLastStep.enabled = MyDressUpHelper.stepIndex > 0;
+            _ui.m_btnNextStep.enabled = MyDressUpHelper.stepIndex < MyDressUpHelper.dressMemory.Count - 1;
+
+            UpdateListPartsSelected();
+            UpdateListSuitPartsSelected();
+            UpdateSearchListPartsSelected();
+        }
+        private void OnLongPress(EventContext context)
+        {
+            LongPressGesture gesture = (LongPressGesture)context.sender;
+            int itemId = (int)gesture.host.data;
+            GoodsItemTipsController.ShowItemTips(itemId);
+        }
+        private void OnTouchPad()
+        {
+            if (this.currentListType == DressUpListType.List4)
+            {
+                this.hideListParts2();
+                this.showListParts(ConstDressUpItemType.TAO_ZHUANG, true);
+            }
+            else if (this.currentListType == DressUpListType.List3)
+            {
+                if (_currentList2 != null)
+                {
+                    this.showListType2(_currentList2);
+                }
+                else
+                {
+                    this.showListType1();
+                }
+                this.hideListParts();
+            }
+            else if (this.currentListType == DressUpListType.List2)
+            {
+                this.showListType1();
+                this.hideListType2();
+            }
+            else if (this.currentListType == DressUpListType.List5)
+            {
+                this.showListType1();
+                this.hideSearchListType();
+            }
+        }
+
+
+        private void OnClickBtnDelete()
+        {
+            MyDressUpHelper.dressUpObj.TakeOffAll();
+            _roleData.cardId = 0;
+            _ui.m_partsList.m_list.numItems = _currentList3.Count;
+            _ui.m_partsList2.m_list.numItems = _currentList4.Count;
+            _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
+            UpdateStepBtn(true);
+            // UpdateListPartsSelected();
+            // UpdateListSuitPartsSelected();
+            UpdateValueInfo();
+        }
+
+        private void OnClickBtnNext()
+        {
+            // if (!MyDressUpHelper.CheckPutOnFinish())
+            // {
+            //     AlertUI.Show("换好衣服才能进行下一步哦~").SetRightButton(true, "好的");
+            // }
+            // else
+            // {
+            DressUpFinish();
+            // }
+        }
+        private async void DressUpFinish()
+        {
+
+            if (CardDataManager.GetCardListByRoleType(0).Count > 0)
+            {
+                ViewManager.Show<StoryCardChoose>(InstanceZonesDataManager.currentScoreType);
+            }
+            else
+            {
+                List<long> fightScoreDatas = ArenaDataManager.Instance.GetFightScoreList(ArenaDataManager.Instance.DressupList);
+                bool result = await ArenaSproxy.ReqChangeArenaDressup(_dataManager.SelectThemeIndex, 0, MyDressUpHelper.dressUpObj.itemList, fightScoreDatas);
+                if (result)
+                {
+                    _itemList = new List<int>(MyDressUpHelper.dressUpObj.itemList);
+                    PromptController.Instance.ShowFloatTextPrompt("保存成功");
+                    OnClickBtnBack();
+                }
+            }
+        }
+        // private void OnClickBtnRecommend()
+        // {
+        //     if (this.currentListType == DressUpListType.List4)
+        //     {
+        //         this.hideListParts2();
+        //         this.showListParts(ConstDressUpItemType.TAO_ZHUANG, true);
+        //     }
+        //     MyDressUpHelper.dressUpObj.CheckCancelActionWhenPutOn(_currentSuitId);
+        //     MyDressUpHelper.PutOnRecommendItems2();
+        //     _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
+
+        //     UpdateListPartsSelected();
+        //     UpdateListSuitPartsSelected();
+
+        // }
+
+        private void InitLists()
+        {
+            _ui.m_comListType2.m_listType.itemRenderer = ListType2Item;
+            _ui.m_partsList.m_list.itemRenderer = ListPartsItem;
+            _ui.m_partsList2.m_list.itemRenderer = ListParts2Item;
+            _ui.m_partsListSearch.m_list.itemRenderer = ListPartsItem;
+            listType1X = _ui.m_comListType1.target.x;
+            partsListX = _ui.m_partsList.target.x - _ui.m_partsList.target.width;
+            //一级菜单
+            _ui.m_comListType1.m_listType.itemRenderer = ListType1Item;
+        }
+
+        private void showListType1()
+        {
+            _currentList2 = null;
+            currentListType = DressUpListType.List1;
+            _ui.m_comListType1.m_listType.numItems = DressUpMenuItemCfg1Array.Instance.dataArray.Length - 3;
+            GTween.To(_ui.target.width, listType1X, 0.5f)
+                .SetTarget(_ui.m_comListType1.target)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_comListType1.target.x = t.value.x;
+                });
+        }
+        private void hideListType1()
+        {
+            GTween.To(listType1X, _ui.target.width, 0.5f)
+                .SetTarget(_ui.m_comListType1.target)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_comListType1.target.x = t.value.x;
+                });
+        }
+
+        private void showListType2(int[] menuStrArr = null)
+        {
+            currentListType = DressUpListType.List2;
+            if (menuStrArr != null && menuStrArr.Length > 0)
+            {
+                int len = menuStrArr.Length;
+                _currentList2 = menuStrArr.Clone() as int[];
+                _ui.m_comListType2.m_listType.RemoveChildrenToPool();
+                _ui.m_comListType2.m_listType.numItems = len;
+                //_ui.m_listType2.ResizeToFit(_ui.m_listType2.numItems);
+                float maxHeight = _ui.target.height - _ui.m_comListType2.m_listType.y - DressUpView.BOTTOM_BLANK;
+                if (_ui.m_comListType2.m_listType.height > maxHeight)
+                {
+                    _ui.m_comListType2.m_listType.height = maxHeight;
+                }
+            }
+
+            GTween.To(_ui.target.width, listType1X, 0.5f)
+                .SetTarget(_ui.m_comListType2.target)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_comListType2.target.x = t.value.x;
+                });
+        }
+
+        private void hideListType2()
+        {
+            GTween.To(listType1X, _ui.target.width, 0.5f)
+                .SetTarget(_ui.m_comListType2.target)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_comListType2.target.x = t.value.x;
+                });
+        }
+
+        private bool showListParts(int type, bool selectItem = false)
+        {
+            _currentMenuType = type;
+
+            UpdatePartsListSort();
+            if (_ui.m_partsList.m_list.numItems <= 0) return false;
+            _ui.m_partsList.m_list.ResizeToFit(_ui.m_partsList.m_list.numItems);
+            float maxHeight = _ui.m_partsList.target.height - _ui.m_partsList.m_list.y;
+            if (_ui.m_partsList.m_list.height > maxHeight)
+            {
+                _ui.m_partsList.m_list.height = maxHeight;
+            }
+            if (type == (int)ConstDressUpItemType.TAO_ZHUANG)
+            {
+                _ui.m_partsList.m_list.scrollPane.SetPosY(partsListScrollingPosY, false);
+                partsListScrollingPosY = 0;
+            }
+            currentListType = DressUpListType.List3;
+            GTween.To(_ui.target.width, partsListX, 0.5f)
+                .SetTarget(_ui.m_partsList)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_partsList.target.x = t.value.x;
+                });
+            UpdateListPartsSelected();
+            return true;
+        }
+        private void OnComboBoxRarityChanged()
+        {
+            _scoreIndex = _ui.m_partsList.m_comboBoxRarity.selectedIndex;
+            this.UpdatePartsListSort();
+        }
+        private void OnSearchComboBoxRarityChanged()
+        {
+            _scoreIndex = _ui.m_partsListSearch.m_comboBoxRarity.selectedIndex;
+            this.UpdateSearchList();
+        }
+        private void UpdatePartsListSort()
+        {
+
+            if (_currentMenuType == 0) return;
+
+            if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG)
+            {
+                _currentList3 = DressUpMenuSuitDataManager.GetSuitIDList();
+                if (_scoreIndex == SORT_BY_HIGH_SCORE)
+                {
+                    _currentList3 = SuitUtil.SortSuitListByHighScore(_currentList3);
+                }
+                else if (_scoreIndex == SORT_BY_LOW_SCORE)
+                {
+                    _currentList3 = SuitUtil.SortSuitListByLowScore(_currentList3);
+                }
+                else
+                {
+                    _currentList3.Reverse();
+                }
+            }
+            else
+            {
+                _currentList3 = DressUpMenuItemDataManager.getItemDatasByType(_currentMenuType);
+                if (_scoreIndex == SORT_BY_HIGH_SCORE)
+                {
+                    _currentList3 = DressUpMenuItemDataManager.SortItemListByHighScore(_currentList3);
+                }
+                else if (_scoreIndex == SORT_BY_LOW_SCORE)
+                {
+                    _currentList3 = DressUpMenuItemDataManager.SortItemListByLowScore(_currentList3);
+                }
+                else
+                {
+                    _currentList3.Reverse();
+                }
+
+            }
+            if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Search)
+            {
+                _currentList3 = DressUpMenuItemDataManager.DressSearch(_currentList3);
+            }
+            else if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Filter)
+            {
+                _currentList3 = DressUpMenuItemDataManager.DressFilter(_currentList3);
+            }
+
+
+            _ui.m_partsList.m_list.RemoveChildrenToPool();
+            _ui.m_partsList.m_list.numItems = _currentList3.Count;
+
+        }
+        private void UpdateSuitPartsListSort()
+        {
+            if (_currentMenuType == 0) return;
+
+            _currentList4 = new List<int>(SuitCfgArray.Instance.GetSuitItems(_currentSuitId, true));
+
+            if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Search)
+            {
+                _currentList4 = DressUpMenuItemDataManager.DressSearch(_currentList4);
+            }
+            else if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Filter)
+            {
+                _currentList4 = DressUpMenuItemDataManager.DressFilter(_currentList4);
+            }
+
+            _ui.m_partsList2.m_list.RemoveChildrenToPool();
+            _ui.m_partsList2.m_list.numItems = _currentList4.Count;
+
+        }
+
+        private void hideListParts()
+        {
+            GTween.To(partsListX, _ui.target.width, 0.5f)
+                .SetTarget(_ui.m_partsList)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_partsList.target.x = t.value.x;
+                });
+        }
+        private void showListParts2(int suitId)
+        {
+            _currentSuitId = suitId;
+
+            _ui.m_partsList2.m_comboBoxRarity.items = new string[] { "高稀有度", "低稀有度", "最近获得" };
+
+            this.UpdateSuitPartsListSort();
+            _ui.m_partsList2.m_list.ResizeToFit(_ui.m_partsList2.m_list.numItems);
+            float maxHeight = _ui.m_partsList2.target.height - _ui.m_partsList2.m_list.y;// - DressUpView.BOTTOM_BLANK;
+            if (_ui.m_partsList2.m_list.height > maxHeight)
+            {
+                _ui.m_partsList2.m_list.height = maxHeight;
+            }
+            currentListType = DressUpListType.List4;
+            GTween.To(_ui.target.width, partsListX, 0.5f)
+                .SetTarget(_ui.m_partsList2)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_partsList2.target.x = t.value.x;
+                });
+
+        }
+
+        private void hideListParts2()
+        {
+            _currentMenuType = ConstDressUpItemType.TAO_ZHUANG;
+
+            GTween.To(partsListX, _ui.target.width, 0.5f)
+                .SetTarget(_ui.m_partsList2)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_partsList2.target.x = t.value.x;
+                });
+        }
+        private void showSearchListType()
+        {
+            // _currentList2 = null;
+            currentListType = DressUpListType.List5;
+            GTween.To(_ui.target.width, partsListX, 0.5f)
+                .SetTarget(_ui.m_partsListSearch.target)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_partsListSearch.target.x = t.value.x;
+                });
+        }
+        private void hideSearchListType()
+        {
+            GTween.To(partsListX, _ui.target.width, 0.5f)
+                .SetTarget(_ui.m_partsListSearch.target)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_partsListSearch.target.x = t.value.x;
+                });
+        }
+        /*****************************************************************************************************/
+        private void DressResetSerch()
+        {
+            if (currentListType == DressUpListType.List5)
+            {
+                OnTouchPad();
+            }
+        }
+        private void UpdateSerch(EventContext context)
+        {
+            if (context.data.ToString() == ConstMessage.DRESS_SEARCH)
+            {
+                _currentList3 = DressUpMenuItemDataManager.DressSearch(false);
+            }
+            else if (context.data.ToString() == ConstMessage.DRESS_FILTER)
+            {
+                _currentList3 = DressUpMenuItemDataManager.DressFilter(false);
+            }
+            ViewManager.Hide<ModalStatusView>();
+            UpdateSearchList();
+            if (currentListType != DressUpListType.List5)
+            {
+                hideListParts();
+                hideListParts2();
+                hideListType1();
+                hideListType2();
+                showSearchListType();
+            }
+            _currentMenuType = 0;
+        }
+        private void UpdateSearchList()
+        {
+
+            if (_scoreIndex == SORT_BY_HIGH_SCORE)
+            {
+                _currentList3 = DressUpMenuItemDataManager.SortItemListByHighScore(_currentList3, true);
+            }
+            else if (_scoreIndex == SORT_BY_LOW_SCORE)
+            {
+                _currentList3 = DressUpMenuItemDataManager.SortItemListByLowScore(_currentList3, true);
+            }
+            _currentMenuType = 0;
+            _ui.m_partsListSearch.m_list.numItems = _currentList3.Count; ;
+        }
+        private void ListType1Item(int index, GObject item)
+        {
+            UI.DressUp.UI_TypeItem typeItem = UI.DressUp.UI_TypeItem.Proxy(item);
+            DressUpMenuItemCfg1 item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index];
+            typeItem.m_icon.url = "ui://DressUp/hz_fenleitu_" + item1.id;
+            typeItem.m_txtname.text = item1.name;
+            //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconzi_" + item1.id;
+            typeItem.target.data = item1.id;
+            typeItem.m_imgNeed.visible = false;
+            typeItem.m_imgNew.visible = DressUpMenuItemDataManager.CheckIsFirstMenuNew(item1.id);
+            UI.DressUp.UI_TypeItem.ProxyEnd();
+        }
+
+        private void ListType2Item(int index, GObject item)
+        {
+            UI.DressUp.UI_TypeItem typeItem = UI.DressUp.UI_TypeItem.Proxy(item);
+            DressUpMenuItemCfg2 item2 = DressUpMenuItemCfg2Array.Instance.dataArray[_currentList2[index] - 1];
+            typeItem.m_icon.url = "ui://DressUp/hz_fenleituej_" + item2.id;
+            typeItem.m_txtname.text = item2.name;
+            //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconziej_" + item2.id;
+            typeItem.target.data = item2.id;
+            // var subType = ItemUtilCS.GetItemSubType(_fightCfg.needItemId);
+            typeItem.m_imgNeed.visible = false;
+            typeItem.m_imgNew.visible = DressUpMenuItemDataManager.CheckIsSecondMenuNew(item2.id);
+
+            UI.DressUp.UI_TypeItem.ProxyEnd();
+        }
+
+        private void ListPartsItem(int index, GObject item)
+        {
+            UI_PartsListItem listItem = UI_PartsListItem.Proxy(item);
+            int id = (int)_currentList3[index];
+            string iconRes = "";
+            string partName = "";
+            string ext = "png";
+            if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG)
+            {
+                SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(id);
+                iconRes = suitCfg.res;
+                partName = suitCfg.name;
+                listItem.m_iconSelected.visible = false;
+                listItem.m_txtScore.text = "" + SuitUtil.GetSuitScore(id);
+                RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false, true);
+                listItem.m_loaBorder.url = "ui://DressUp/hz_kuangk_" + suitCfg.rarity;
+                listItem.m_imgNew.visible = false;
+            }
+            else
+            {
+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id);
+                iconRes = itemCfg.res;
+                partName = itemCfg.name;
+                listItem.m_iconSelected.visible = MyDressUpHelper.dressUpObj.CheckDressUpItemIsOn(id);
+                listItem.m_txtScore.text = "" + ItemDataManager.GetItemAdditionScore(id, InstanceZonesDataManager.currentScoreType, _roleData.tags);
+                listItem.m_loaBorder.url = "ui://DressUp/hz_kuangk_" + itemCfg.rarity;
+                bool isNew = DressUpMenuItemDataManager.CheckIsDressUpItemNew(id);
+                listItem.m_imgNew.visible = isNew;
+                if (isNew)
+                {
+                    ItemProxy.ReqSetItemRead(id).Coroutine();
+                }
+                RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false);
+                ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType, true);
+            }
+            if (listItem.target.data == null)
+            {
+                LongPressGesture longPressGesture = new LongPressGesture(listItem.target);
+                longPressGesture.trigger = GameConfig.LongPressGestureTrigger;
+                longPressGesture.once = true;
+                longPressGesture.onAction.Add(OnLongPress);
+                _listLongPress.Add(longPressGesture);
+            }
+            listItem.m_btnAni.visible = false;
+            listItem.m_icon.url = ResPathUtil.GetIconPath(iconRes, ext);
+            listItem.m_lock.visible = false;
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                foreach (var itemDressID in FieldWorkDataManager.Instance.HistoryDressupList)
+                {
+                    if (itemDressID == id)
+                    {
+                        listItem.m_lock.visible = true;
+                        break;
+                    }
+                }
+            }
+            listItem.m_ScoreType.url = "ui://CommonGame/kp_sx_" + InstanceZonesDataManager.currentScoreType;
+            listItem.m_txtTitle.text = partName;
+            listItem.target.data = id;
+            listItem.m_imgNeed.visible = false;
+            UI_PartsListItem.ProxyEnd();
+        }
+        private void ListParts2Item(int index, GObject item)
+        {
+            UI_PartsListItem listItem = UI_PartsListItem.Proxy(item);
+            int id = (int)_currentList4[index];
+            string iconRes = "";
+            string partName = "";
+            string ext = "png";
+
+
+            if (listItem.target.data == null)
+            {
+                LongPressGesture longPressGesture = new LongPressGesture(listItem.target);
+                longPressGesture.trigger = GameConfig.LongPressGestureTrigger;
+                longPressGesture.once = true;
+                longPressGesture.onAction.Add(OnLongPress);
+                _listLongPress.Add(longPressGesture);
+            }
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id);
+            iconRes = itemCfg.res;
+            partName = itemCfg.name;
+            listItem.m_iconSelected.visible = MyDressUpHelper.dressUpObj.CheckDressUpItemIsOn(id);
+            listItem.m_loaBorder.url = "ui://DressUp/hz_kuangk_" + itemCfg.rarity;
+            RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false);
+            ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType, true);
+
+            listItem.m_ScoreType.visible = true;
+            // int mainScore;
+            // int mainValuel;
+            // ItemDataManager.GetMainScore(id, out mainScore, out mainValuel);
+            listItem.m_ScoreType.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + InstanceZonesDataManager.currentScoreType);
+            listItem.m_txtScore.text = "" + ItemDataManager.GetItemAdditionScore(id, InstanceZonesDataManager.currentScoreType, _dataManager.DressupList[_dataManager.SelectThemeIndex].tags);
+
+            listItem.m_icon.url = ResPathUtil.GetIconPath(iconRes, ext);
+            listItem.m_txtTitle.text = partName;
+            listItem.target.data = id;
+            // listItem.m_txtScore.visible = false;
+            //listItem.m_ScoreType.visible = true;
+            listItem.m_imgNeed.visible = false;
+            listItem.m_btnAni.visible = false;
+            bool isNew = DressUpMenuItemDataManager.CheckIsDressUpItemNew(id);
+            listItem.m_imgNew.visible = isNew;
+            if (isNew)
+            {
+                ItemProxy.ReqSetItemRead(id).Coroutine();
+            }
+            UI_PartsListItem.ProxyEnd();
+
+
+        }
+        private void UpdateSearchListPartsSelected()
+        {
+            int count = _ui.m_partsListSearch.m_list.numChildren;
+            int suitId = MyDressUpHelper.dressUpObj.suitId;
+
+            for (int i = 0; i < count; i++)
+            {
+                UI_PartsListItem listItem = UI_PartsListItem.Proxy(_ui.m_partsListSearch.m_list.GetChildAt(i));
+                int id = (int)listItem.target.data;
+                if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG)
+                {
+                    listItem.m_iconSelected.visible = suitId > 0 && id == suitId;
+                }
+                else
+                {
+                    bool isPutOn = MyDressUpHelper.dressUpObj.CheckDressUpItemIsOn(id);//非套装金判断是否穿戴
+                    var isSceneType = DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(id);
+                    bool isSuit = !isSceneType && suitId > 0 && SuitCfgArray.Instance.GetSuitIdOfItem(id) == suitId;//非场景类, 若当前穿戴套装要判断item是否属于套装(更换场景类不会改变套装穿戴状态)
+                    bool isSceneSuit = isSceneType && suitId > 0 && isPutOn;//场景类, 若当前穿戴套装要判断item是否属已穿戴
+                    listItem.m_iconSelected.visible = isPutOn || isSuit || isSceneSuit;
+                }
+                UI_PartsListItem.ProxyEnd();
+            }
+        }
+        private void UpdateListPartsSelected()
+        {
+            GList list;
+            if (_ui.m_partsList.target.x == partsListX)
+            {
+                list = _ui.m_partsList.m_list;
+            }
+            else if (_ui.m_partsListSearch.target.x == partsListX)
+            {
+                list = _ui.m_partsListSearch.m_list;
+            }
+            else
+            {
+                return;
+            }
+            int count = list.numChildren;
+            int suitId = MyDressUpHelper.dressUpObj.suitId;
+
+            for (int i = 0; i < count; i++)
+            {
+                UI_PartsListItem listItem = UI_PartsListItem.Proxy(list.GetChildAt(i));
+                int id = (int)listItem.target.data;
+                if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG)
+                {
+                    listItem.m_iconSelected.visible = suitId > 0 && id == suitId;
+                }
+                else
+                {
+                    bool isPutOn = MyDressUpHelper.dressUpObj.CheckDressUpItemIsOn(id);//非套装金判断是否穿戴
+                    var isSceneType = DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(id);
+                    bool isSuit = !isSceneType && suitId > 0 && SuitCfgArray.Instance.GetSuitIdOfItem(id) == suitId;//非场景类, 若当前穿戴套装要判断item是否属于套装(更换场景类不会改变套装穿戴状态)
+                    bool isSceneSuit = isSceneType && suitId > 0 && isPutOn;//场景类, 若当前穿戴套装要判断item是否属已穿戴
+                    listItem.m_iconSelected.visible = isPutOn || isSuit || isSceneSuit;
+                }
+                UI_PartsListItem.ProxyEnd();
+            }
+        }
+        private void UpdateListSuitPartsSelected()
+        {
+            int count = _ui.m_partsList2.m_list.numChildren;
+            int suitId = MyDressUpHelper.dressUpObj.suitId;
+
+            for (int i = 0; i < count; i++)
+            {
+                UI_PartsListItem listItem = UI_PartsListItem.Proxy(_ui.m_partsList2.m_list.GetChildAt(i));
+                int id = (int)listItem.target.data;
+
+                bool isPutOn = MyDressUpHelper.dressUpObj.CheckDressUpItemIsOn(id);//非套装金判断是否穿戴
+                var isSceneType = DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(id);
+                bool isSuit = !isSceneType && suitId > 0 && SuitCfgArray.Instance.GetSuitIdOfItem(id) == suitId;//非场景类, 若当前穿戴套装要判断item是否属于套装(更换场景类不会改变套装穿戴状态)
+                bool isSceneSuit = isSceneType && suitId > 0 && isPutOn;//场景类, 若当前穿戴套装要判断item是否属已穿戴
+                listItem.m_iconSelected.visible = isPutOn || isSuit || isSceneSuit;
+                UI_PartsListItem.ProxyEnd();
+            }
+        }
+
+        private void OnClickBtnSearch()
+        {
+            ViewManager.Show<DressFilterView>(false);
+        }
+        private void OnClickBtnLastStep()
+        {
+            if (!MyDressUpHelper.OnClickBtnLastStep()) return;
+            UpdateStepBtn(false);
+        }
+        private void OnClickBtnNextStep()
+        {
+            if (!MyDressUpHelper.OnClickBtnNextStep()) return;
+            UpdateStepBtn(false);
+
+        }
+        private void SendLog()
+        {
+
+        }
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkDressFIghtView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7fbca76b8171f204e970278cbf7133e3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 142 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkFightResultView.cs

@@ -0,0 +1,142 @@
+using FairyGUI;
+using UnityEngine;
+using UI.Main;
+using System.Collections;
+using System.Collections.Generic;
+using ET;
+
+namespace GFGGame
+{
+
+    public class FieldWorkFightResultView : BaseView
+    {
+        private UI_ArenaFightResultUI _ui;
+        private GameObject _sceneObject;
+
+        private EffectUI _effectUI1;
+        private EffectUI _effectUI2;
+        private EffectUI _effectUI3;
+        private EffectUI _effectUI4;
+        private EffectUI _effectUI5;
+        private EffectUI _effectUI6;
+        private EffectUI _effectUI7;
+        private EffectUI _effectUI8;
+
+        public override void Dispose()
+        {
+            EffectUIPool.Recycle(_effectUI1);
+            _effectUI1 = null;
+            EffectUIPool.Recycle(_effectUI2);
+            _effectUI2 = null;
+            EffectUIPool.Recycle(_effectUI3);
+            _effectUI3 = null;
+            EffectUIPool.Recycle(_effectUI4);
+            _effectUI4 = null;
+            EffectUIPool.Recycle(_effectUI5);
+            _effectUI5 = null;
+            EffectUIPool.Recycle(_effectUI6);
+            _effectUI6 = null;
+            EffectUIPool.Recycle(_effectUI7);
+            _effectUI7 = null;
+            EffectUIPool.Recycle(_effectUI8);
+            _effectUI8 = null;
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            _ui = null;
+
+            base.Dispose();
+        }
+
+        protected override void Init()
+        {
+            base.Init();
+            _ui = UI_ArenaFightResultUI.Create();
+            viewCom = _ui.target;
+            isfullScreen = true;
+            //isReturnView = true;
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            _ui.m_btnClose.onClick.Add(OnClickBtnClose);
+
+            // _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("fightBg");
+            AddEffect();
+        }
+        private void AddEffect()
+        {
+            //_effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult0, "ui_fight_new", "ZDJS_lose");
+            //_effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult1, "ui_fight_new", "ZDJS_qualified");
+            //_effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult2, "ui_fight_new", "ZDJS_good");
+            //_effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult3, "ui_fight_new", "ZDJS_Perfect");
+            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderScore, "ui_fight_new", "ZDJS_Text_kuang");
+            _effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar3, "ui_fight_new", "ZDJS_STAR");
+            _effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar2, "ui_fight_new", "ZDJS_STAR");
+            _effectUI8 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar1, "ui_fight_new", "ZDJS_STAR");
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            FightData roleData = FieldWorkDataManager.Instance.DressupList[FieldWorkDataManager.Instance.CurFightIndex];
+
+            if (_sceneObject == null)
+            {
+                _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("SceneFightResult"));
+                MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, false, false, null, true);
+                MyDressUpHelper.dressUpObj.AddOrRemove(180014, false);
+            }
+            MyDressUpHelper.dressUpObj.PutOnItemList(roleData.itemList);
+
+            long myScore = FieldWorkDataManager.Instance.myScore[FieldWorkDataManager.Instance.CurFightIndex];
+            _ui.m_comResult.m_c1.selectedIndex = 0;
+            _ui.m_comResult.m_txtScore.text = myScore.ToString();
+            _ui.m_btnClose.enabled = false;
+
+            ShowResultView();
+        }
+        private void ShowResultView()
+        {
+            FieldWorkDataManager.Instance.CurFightIndex++;
+
+            _ui.m_comResult.m_t0.Play(() =>
+            {
+                ViewManager.Show<FieldWorkRoundResultView>();
+                _ui.m_btnClose.enabled = true;
+            });
+        }
+        protected override void OnHide()
+        {
+            base.OnHide();
+            if (_sceneObject != null)
+            {
+                PrefabManager.Instance.Restore(_sceneObject);
+                _sceneObject = null;
+            }
+            //这里屏蔽是由于打开其他界面时,会调用这个方法
+            //MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath(ConstMusicName.DEFAULT));
+
+            // _ui.m_comResult.target.height = 0;
+            _ui.m_comResult.m_t1.Play();
+
+            if (FieldWorkDataManager.Instance.CurFightIndex > 2)
+            {
+                object[] goBackDatas = ViewManager.GetGoBackDatas(typeof(FieldWorkLevelView).FullName);
+                ViewManager.Show<FieldWorkLevelView>(null, true);
+            }
+        }
+
+        private void OnClickBtnClose(object param)
+        {
+            if (_sceneObject != null)
+            {
+                PrefabManager.Instance.Restore(_sceneObject);
+                _sceneObject = null;
+            }
+            this.Hide();
+
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkFightResultView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 13dc2fde96d8ad44a8a53bcb148d3754
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 225 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelInfoView.cs

@@ -0,0 +1,225 @@
+using FairyGUI;
+using System.Collections;
+using System.Collections.Generic;
+using ET;
+using UI.FieldWork;
+using UI.CommonGame;
+
+namespace GFGGame
+{
+    class FieldWorkLevelInfoView : BaseWindow
+    {
+        private UI_FieldWorkLevelInfoUI _ui;
+        private int _levelID;
+        private int _type;
+        private List<ItemData> _bonusList = new List<ItemData>();
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            base.Dispose();
+        }
+        protected override void OnInit()
+        {
+            base.OnInit();
+            _ui = UI_FieldWorkLevelInfoUI.Create();
+            this.viewCom = _ui.target;
+            this.viewCom.Center();
+            this.modal = true;
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+            _ui.m_listBonus.itemRenderer = UpdateBonusItem;
+            _ui.m_cardList.itemRenderer = RenderListCardItem;
+            _ui.m_btnStart.onClick.Add(OnClickBtnStart);
+            _ui.m_btnSkip.target.onClick.Add(OnClickBtnSkip);
+            
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _levelID = (int)(viewData as object[])[0];
+            CimbingTowerLevelCfg levelCfg = CimbingTowerLevelCfgArray.Instance.GetCfg(_levelID);
+            _type = levelCfg.scoreType;
+            FieldWorkDataManager.Instance.ThemeList[0] = _type;
+            FieldWorkDataManager.Instance.ThemeList[1] = _type;
+            FieldWorkDataManager.Instance.ThemeList[2] = _type;
+            FieldWorkDataManager.Instance.targetWinScore = levelCfg.ClearanceScore;
+            FieldWorkDataManager.Instance.SetDataScoreType();
+            InstanceZonesDataManager.FightScene = ConstInstanceZonesType.FieldWork;
+            FieldWorkDataManager.Instance.CurFightIndex = 0;
+            UpDressdate();
+            UpdateView();
+            Timers.inst.AddUpdate(CheckGuide);
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.FieldWork_StateCHANGE, UpdateView);
+        }
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.AddEventListener(ConstMessage.FieldWork_StateCHANGE, UpdateView);
+        }
+        private void UpdateView()
+        {
+            CimbingTowerLevelCfg levelCfg = CimbingTowerLevelCfgArray.Instance.GetCfg(_levelID);
+            _ui.m_txtTargetName.text = RoleDataManager.roleName;
+            _ui.m_loaderHead.url = ResPathUtil.GetNpcHeadPath("self");
+            _ui.m_txtHighestScore.text = FieldWorkDataManager.Instance.GetHeihtScore(_levelID);
+            _ui.m_txtTitle.text = levelCfg.name;
+            _ui.m_cardList.numItems = 3;
+            //只有首通奖励
+            bool once = true;
+            if(once)
+            {
+                _bonusList = ItemUtil.CreateItemDataList(levelCfg.WeekBonusOnceArr);
+                _ui.m_listBonus.numItems = _bonusList.Count;
+            }
+            else
+            {
+                _ui.m_listBonus.numItems = 0;
+            }
+        }
+        public void UpDressdate()
+        {
+            for (int i = 0; i < FieldWorkDataManager.Instance.ThemeList.Count; i++)
+            {
+                int scoreType = FieldWorkDataManager.Instance.ThemeList[i];
+                FightData roleData = FieldWorkDataManager.Instance.DressupList[i];
+                roleData.leagueSkillScore = FieldWorkDataManager.Instance.GetAllSkillScore(scoreType);
+                FightDataManager.Instance.SetItemScoreList(roleData);
+                ArenaDataManager.Instance.SetMineFightAttr(roleData, scoreType);
+                ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData);
+            }
+        }
+        private void UpdateBonusItem(int index, GObject item)
+        {
+            ItemData itemData = _bonusList[index] as ItemData;
+            UI_ListRewardItem listItem = UI_ListRewardItem.Proxy(item);
+            ItemCfg cfg = ItemCfgArray.Instance.GetCfg(itemData.id);
+            listItem.m_txtName.text = cfg.name;
+            listItem.m_txtOwner.text = string.Format("已拥有:{0}", ItemDataManager.GetItemNum(itemData.id));
+            if (item.data == null)
+            {
+                item.data = new ItemView(listItem.m_comItem as GComponent);
+            }
+            (item.data as ItemView).SetData(itemData);
+            //(item.data as ItemView).ShowTxtCount = false;
+            //List<ItemData> bonusOnceData = StoryBonusDataCache.GetBonusData(_levelID).bonusOnce;
+            //(item.data as ItemView).ImgShouTongVisable = false;//!InstanceZonesDataManager.CheckLevelPass(_levelID) && index < bonusOnceData.Count;
+            UI_ListRewardItem.ProxyEnd();
+        }
+        private void RenderListTagItem(int index, GObject obj)
+        {
+            UI_ComTag item = UI_ComTag.Proxy(obj);
+            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(_levelID);
+            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
+            string tag = fightCfg.needTagsArr[index];
+            int tagType = TagCfgArray.Instance.GetCfg(tag).type;
+            item.m_txtTag.text = tag;
+            item.m_loaTag.url = ResPathUtil.GetCommonGameResPath("fzd_bqbq_" + tagType);
+            UI_ComTag.ProxyEnd();
+        }
+        private void RenderListCardItem(int index, GObject obj)
+        {
+            UI_ComCard item = UI_ComCard.Proxy(obj);
+            int cardId = 0;
+            if(FieldWorkDataManager.Instance.DressupList.Count > index)
+            {
+                cardId = FieldWorkDataManager.Instance.DressupList[index].cardId;
+            }
+            if (cardId == 0)
+            {
+                item.m_c1.selectedIndex = 0;
+            }
+            else
+            {
+                item.m_c1.selectedIndex = 1;
+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cardId);
+                item.m_txtCardName.text = itemCfg.name;
+                item.m_comCard.m_loaCard.url = ResPathUtil.GetCardIconPath(itemCfg.res);
+                item.m_loaScore.url = ResPathUtil.GetScorePath(itemCfg.mainScore);
+                RarityIconController.UpdateRarityIcon(item.m_loaRarity, cardId, false);
+                item.m_wearRateText.text = FieldWorkDataManager.Instance.GetCardAbrasion(cardId).ToString() + "%";               
+            }
+
+            if (item.target.data == null)
+            {
+                item.target.onClick.Add(OnClickCardList);
+            }
+            item.target.data = index;
+            UI_ComCard.ProxyEnd();
+        }
+        private void OnClickCardList(EventContext context)
+        {
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0)
+            {
+                return;
+            }
+            GObject obj = context.sender as GObject;
+            int index = (int)obj.data;
+            FieldWorkDataManager.Instance.SelectThemeIndex = index;
+            ViewManager.Show<ArenaDressInfoView>(new object[] { FightRoleType.FieldWork,index, FieldWorkDataManager.Instance.DressupList, "" });
+            this.Hide();
+        }
+        private void OnClickBtnStart()
+        {
+            //判断是否搭配了三套衣服和词牌
+            FieldWorkDataManager.Instance.currentLevelID = _levelID;
+            if (FieldWorkDataManager.Instance.SetCanStart())
+            {
+                UpDressdate();
+                FieldWorkDataManager.Instance.GetFightResult();
+                FieldWorkDataManager.Instance.myScore.Clear();
+                EventAgent.DispatchEvent(ConstMessage.FieldWork_STARTCHANGE);
+                this.Hide();
+            }
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("请选择搭配!需要卡牌,服装!");
+                FieldWorkDataManager.Instance.SelectThemeIndex = 0;
+                ViewManager.Show<ArenaDressInfoView>(new object[] { FightRoleType.FieldWork, 0, FieldWorkDataManager.Instance.DressupList, "" });
+                this.Hide();
+            }
+        }
+        private void OnClickBtnSkip()
+        {
+            FieldWorkDataManager.Instance.currentLevelID = _levelID;
+            if (FieldWorkDataManager.Instance.SetCanStart())
+            {
+                FieldWorkDataManager.Instance.myScore.Clear();
+                FieldWorkDataManager.Instance.GetFightResult();
+                ViewManager.Show<FieldWorkRoundResultView>();
+            }
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("请选择搭配!需要卡牌,服装");
+            }
+        }
+        private void CheckGuide(object param)
+        {
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0)
+            {
+                UpdateToCheckGuide(null);
+            }
+            else
+            {
+                Timers.inst.Remove(CheckGuide);
+            }
+        }
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_cardList, ConstGuideId.FIELD, 4, "点击选择搭配!挑战成功的衣服本周不可使用!",0);
+            GuideController.TryCompleteGuide(ConstGuideId.FIELD, 4);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelInfoView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b7428cd94318e9142ac3a34572cde91b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 207 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelView.cs

@@ -0,0 +1,207 @@
+using FairyGUI;
+using System.Collections;
+using System.Collections.Generic;
+using ET;
+using UI.FieldWork;
+using UI.CommonGame;
+using UnityEngine;
+
+namespace GFGGame
+{
+    public class FieldWorkLevelView : BaseWindow
+    {
+        private UI_FieldWorkLevelUI _ui;
+        private CimbingTowerLevelCfg[] LevelList;
+        private GameObject gamey;
+        private float indexY;
+        private EffectUI _effectUI1;
+        private GComponent objGuide;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            if (_effectUI1 != null)
+            {
+                EffectUIPool.Recycle(_effectUI1);
+                _effectUI1 = null;
+            }
+            base.Dispose();
+        }
+
+        protected override void Init()
+        {
+            base.Init();
+            packageName = UI_FieldWorkLevelUI.PACKAGE_NAME;
+            _ui = UI_FieldWorkLevelUI.Create();
+            viewCom = _ui.target;
+            isfullScreen = true;
+            isReturnView = true;
+
+            _ui.m_BtnBack.onClick.Add(OnClickBtnBack);
+            _ui.m_shopBtn.target.onClick.Add(OnClickBtnShop);
+            _ui.m_resetBtn.target.onClick.Add(OnClickBtnReSet);
+            _ui.m_passBtn.target.onClick.Add(OnClickBtnSkip);
+            _ui.m_listTag.itemRenderer = RenderListTagItem;
+            _ui.m_ruleBtn.onClick.Add(RuleController.ShowRuleView);
+            _ui.m_ruleBtn.data = 300035;
+
+            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "Tydc_All/Tydc_All");
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.FieldWork_STARTCHANGE, StartCalculateScore);
+            EventAgent.AddEventListener(ConstMessage.FieldWork_StateCHANGE, UpdateLevel);
+        }
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.FieldWork_STARTCHANGE, StartCalculateScore);
+            EventAgent.RemoveEventListener(ConstMessage.FieldWork_StateCHANGE, UpdateLevel);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            gamey = GameObject.Find("Stage/GRoot/Window - FieldWorkLevelUI/ContentPane/CompChapter/Container/Container");
+            objGuide = _ui.m_chapter.m_compChapterScroll.target.GetChild("g0").asCom;
+            _ui.m_Bg.url = ResPathUtil.GetBgImgPath("bg_tydc");
+            _ui.m_shopBtn.target.visible = false;
+            LevelList = CimbingTowerLevelCfgArray.Instance.dataArray;
+            _ui.m_listTag.numItems = FieldWorkDataManager.Instance.Tag.Count;
+            UpdateLevel();
+            Timers.inst.AddUpdate(CheckGuide);
+        }
+        private IEnumerator InitChapter()
+        {
+            yield return new WaitForSeconds(0.1f);
+            if (gamey != null)
+            {
+                int levelCount = CimbingTowerLevelCfgArray.Instance.dataArray.Length - FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Count;
+                indexY = 212.0f * Mathf.Max(0, (float)levelCount);
+                _ui.m_chapter.m_compChapterScroll.target.y = 0;
+                gamey.transform.position = new Vector3(0, indexY, 0);
+            }
+        }
+
+        private void UpdateLevel()
+        {
+            for (int i = 0; i < LevelList.Length; i++)
+            {
+                GObject obj = _ui.m_chapter.m_compChapterScroll.target.GetChild("g" + i);
+                UI_CompStoryLevelItem levelItem = UI_CompStoryLevelItem.Proxy(obj);
+                if(i == LevelList.Length-1)
+                {
+                    levelItem.m_c1.selectedIndex = 2;
+
+                }
+                CimbingTowerLevelCfg levelCfg = LevelList[i];
+                if(FieldWorkDataManager.Instance.CheckLevelPass(levelCfg.id) || i == 0)
+                {
+                    levelItem.m_lock.visible = false;
+                }
+                else
+                {
+                    levelItem.m_lock.visible = true;
+                }
+                levelItem.target.visible = true;
+                levelItem.m_txtFightOrder.text = levelCfg.name;
+                levelItem.m_levelIcon.text = FieldWorkDataManager.Instance.nameList[i];
+                levelItem.target.data = levelCfg.id;
+                levelItem.target.onClick.Add(OnClickLevelItem);
+                UI_CompStoryLevelItem.ProxyEnd();
+            }
+            Timers.inst.StartCoroutine(InitChapter());
+            _ui.m_chapter.m_compChapterScroll.target.y = 1;
+        }
+        private void OnClickLevelItem(EventContext context)
+        {
+            UI_CompStoryLevelItem levelItem = UI_CompStoryLevelItem.Proxy(context.sender as GObject);
+            int levelCfgId = (int)levelItem.target.data;
+            if(levelItem.m_lock.visible)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("请通过前置关卡");
+                return;
+            }
+            UI_CompStoryLevelItem.ProxyEnd();
+            ViewManager.Show<FieldWorkLevelInfoView>(new object[] { levelCfgId });
+        }
+        private void RenderListTagItem(int index, GObject obj)
+        {
+            UI_ComTag item = UI_ComTag.Proxy(obj);
+            string tag = FieldWorkDataManager.Instance.Tag[index];
+            int tagType = TagCfgArray.Instance.GetCfg(tag).type;
+            item.m_txtTag.text = tag;
+            item.m_loaTag.url = ResPathUtil.GetCommonGameResPath("fzd_bqbq_" + tagType);
+            UI_ComTag.ProxyEnd();
+        }
+        protected override void OnHide()
+        {
+            base.OnHide();
+            GRoot.inst.touchable = true;
+        }
+
+        private void StartCalculateScore()
+        {
+            ViewManager.Show<StoryFightSingleView>(null, true);
+            ViewManager.DeleteViewStackCountDown(null, 1);
+        }
+        private void OnClickBtnBack()
+        {
+            ViewManager.GoBackFrom(typeof(FieldWorkLevelView).FullName);
+        }
+        private void OnClickBtnShop()
+        {
+            ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, 3 });
+        }
+        private async void OnClickBtnReSet()
+        {
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0)
+            {
+                return;
+            }
+            bool result = await FieldWorkSproxy.ReqFieldWorkReset();
+            if (result)
+            {
+                UpdateLevel();
+                PromptController.Instance.ShowFloatTextPrompt("重置成功!");
+            }
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("没有重置次数!");
+            }
+        }
+        private async void OnClickBtnSkip()
+        {
+            bool result = await FieldWorkSproxy.ReqFieldWorkOneClickPass();
+            if (result)
+            {
+                UpdateLevel();
+                PromptController.Instance.ShowFloatTextPrompt("跳过成功!");
+            }
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("每周仅一次!");
+            }
+        }
+        private void CheckGuide(object param)
+        {
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0)
+            {
+                UpdateToCheckGuide(null);
+            }
+            else
+            {
+                Timers.inst.Remove(CheckGuide);
+            }
+        }
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_resetBtn.target, ConstGuideId.FIELD, 2, "可重置关卡数据,每周一次!");            
+            GuideController.TryGuide(objGuide, ConstGuideId.FIELD, 3, "点击开始挑战!");
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3d866c1d42ac4314986e7fb2881f4b83
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 150 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundResultView.cs

@@ -0,0 +1,150 @@
+using System.Threading.Tasks;
+using ET;
+using FairyGUI;
+//using UI.Arena;
+using UnityEngine;
+using UI.FieldWork;
+
+namespace GFGGame
+{
+    public class FieldWorkRoundResultView : BaseWindow
+    {
+        private UI_FieldWorkRoundResultUI _ui;
+        private FieldWorkDataManager _dataManager;
+        private int winCount = 0;
+        private bool isFinallyFight = false;//是否最后一场战斗
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_FieldWorkRoundResultUI.PACKAGE_NAME;
+            _ui = UI_FieldWorkRoundResultUI.Create();
+            this.viewCom = _ui.target;
+            this.viewCom.Center();
+            this.modal = true;
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+
+            _ui.m_list.itemRenderer = RenderListItem;
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+
+        }
+        protected async override void OnShown()
+        {
+            base.OnShown();
+            ViewManager.SetMaskAlpha(0);
+            winCount = 0;
+            _dataManager = FieldWorkDataManager.Instance;
+
+            //_ui.m_list.numItems = _dataManager.CurFightIndex;
+            _ui.m_list.numItems = FieldWorkDataManager.Instance.myScore.Count;
+
+            isFinallyFight = _ui.m_list.numItems == 3;
+            _ui.m_ComResult.target.visible = isFinallyFight;
+            _ui.m_loaResule.visible = isFinallyFight;
+            this.clickBlankToClose = isFinallyFight;
+
+            if (isFinallyFight)
+            {
+                long myAllScore = 0;
+                long targetAllScore = FieldWorkDataManager.Instance.targetWinScore;
+                for (int i = 0; i < FieldWorkDataManager.Instance.myScore.Count; i++)
+                {
+                    myAllScore += FieldWorkDataManager.Instance.myScore[i];
+                }
+                bool isWin = myAllScore > targetAllScore;
+                _ui.m_loaResule.url = isWin ? "ui://FieldWork/kstzjj_slsl" : "ui://FieldWork/kstzjj_shib";
+                _ui.m_ComResult.m_comResult.m_txtMyFightScore.text = myAllScore.ToString();
+                _ui.m_ComResult.m_comResult.m_txtTargetFightScore.text = targetAllScore.ToString();
+                bool result = await FieldWorkSproxy.ReqFieldWorkFight(FieldWorkDataManager.Instance.currentLevelID);
+                if (result)
+                {
+                    if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(FieldWorkDataManager.Instance.currentLevelID))
+                    {
+                        if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[FieldWorkDataManager.Instance.currentLevelID].IsPass)
+                        {
+                            await FieldWorkSproxy.ReqChangeFieldWorkDressup();
+                        }
+                    }
+                    else
+                    {
+
+                    }
+                }
+                else
+                {
+                    PromptController.Instance.ShowFloatTextPrompt("未通过!");
+                }
+            }
+            else
+            {
+                Timers.inst.Add(1, 1, StartNextRound);
+            }
+
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+            ViewManager.SetMaskAlpha(0.6f);
+
+            if (isFinallyFight)
+            {
+                MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath(ConstMusicName.DEFAULT));
+                FinishFight();
+            }
+        }
+
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+
+        }
+        private void RenderListItem(int index, GObject obj)
+        {
+            UI_ListResultItem item = UI_ListResultItem.Proxy(obj);
+            item.m_txtRound.text = "Round " + (index + 1).ToString();
+            RoleInfoManager.Instance.UpdateHead(item.m_comMyHead, RoleDataManager.headId, RoleDataManager.headBorderId);
+            int myCardId = FieldWorkDataManager.Instance.DressupList[index].cardId;
+            ItemCfg cardCfg = ItemCfgArray.Instance.GetCfg(myCardId);
+            item.m_loaMyCard.m_comCardmask.m_loaCard.url = cardCfg == null ? "" : ResPathUtil.GetCardIconPath(cardCfg.res);
+            int scoreType = FieldWorkDataManager.Instance.ThemeList[index];
+            item.m_loaScore.url = ResPathUtil.GetScorePath(scoreType);
+            long myScore = FieldWorkDataManager.Instance.myScore[index];
+            item.m_txtMyScore.text = myScore.ToString();
+            UI_ListResultItem.ProxyEnd();
+        }
+
+        private void StartNextRound(object param)
+        {
+            ViewManager.Hide<FieldWorkFightResultView>();
+            ViewManager.Show<StoryFightSingleScoreView>(_dataManager.DressupList[_dataManager.CurFightIndex]);
+            ViewManager.Show<FieldWorkRoundTipsView>();
+            this.Hide();
+        }
+        private void FinishFight()
+        {
+            FieldWorkDataManager dataManager = FieldWorkDataManager.Instance;
+            ViewManager.Hide<FieldWorkFightResultView>();
+            if(dataManager.BonusList != null || dataManager.BonusList.Count >0)
+            {
+                BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(dataManager.BonusList), () =>
+                {
+                    // ViewManager.Hide<ArenaFightResultView>();
+                });
+                dataManager.BonusList.Clear();
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundResultView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a587c30544dba4f4e9ddbb5fc28ac388
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 50 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundTipsView.cs

@@ -0,0 +1,50 @@
+using System.Threading.Tasks;
+using ET;
+using FairyGUI;
+//using UI.Arena;
+using UnityEngine;
+using UI.FieldWork;
+
+namespace GFGGame
+{
+    class FieldWorkRoundTipsView : BaseWindow
+    {
+        private UI_FieldWorkRoundTips _ui;
+        private EffectUI _effectUI1;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            if (_effectUI1 != null)
+            {
+                EffectUIPool.Recycle(_effectUI1);
+                _effectUI1 = null;
+            }
+            base.Dispose();
+        }
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_FieldWorkRoundTips.PACKAGE_NAME;
+            _ui = UI_FieldWorkRoundTips.Create();
+            this.viewCom = _ui.target;
+            this.viewCom.Center();
+            modal = true;
+            clickBlankToClose = false;
+            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effect, "ui_zj", "Tydc_Text_tx/Tydc_Text_tx");
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_icon.url = "ui://FieldWork/wz_" + FieldWorkDataManager.Instance.CurFightIndex;
+            _ui.m_t0.Play(this.Hide);
+        }
+        protected override void OnHide()
+        {
+            base.OnHide();
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundTipsView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7db69bcc0ac1ae74eac5db492599bd8a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 45 - 27
GameClient/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesView.cs

@@ -14,7 +14,7 @@ namespace GFGGame
         private EffectUI _effectUI1;
         private EffectUI _effectUI2;
         private EffectUI _effectUI3;
-
+        private int fieldWorkLockLevel = 100005009;
 
         public override void Dispose()
         {
@@ -49,12 +49,13 @@ namespace GFGGame
             isReturnView = true;
 
             _valueBarController = new ValueBarController(_ui.m_valueBar);
-            _ui.m_btnStudio.target.onClick.Add(OnClickBtnStudio);
-            _ui.m_btnTravel.target.onClick.Add(OnClickBtnTravel);
-            _ui.m_btnPoem.target.onClick.Add(OnClickBtnPoem);
-            _ui.m_btnPoemGudie.onClick.Add(OnClickBtnPoem);
-            _ui.m_btnField.target.onClick.Add(OnTimeTracingClick);
-            _ui.m_btnArena.target.onClick.Add(OnClickBtnArena);
+            _ui.m_instance.m_btnStudio.target.onClick.Add(OnClickBtnStudio);
+            _ui.m_instance.m_btnTravel.target.onClick.Add(OnClickBtnTravel);
+            _ui.m_instance.m_btnPoem.target.onClick.Add(OnClickBtnPoem);
+            _ui.m_instance.m_btnPoemGudie.onClick.Add(OnClickBtnPoem);
+            _ui.m_instance.m_btnField.target.onClick.Add(OnTimeTracingClick);
+            _ui.m_instance.m_btnArena.target.onClick.Add(OnClickBtnArena);
+            _ui.m_instance.m_btnFieldWork.target.onClick.Add(OnFieldWorkClick);
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("hzs_bg");
             _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_bg_eff, "ui_HaiZhiShi", "Bg_All_Tx");
@@ -67,8 +68,17 @@ namespace GFGGame
             base.OnShown();
             _valueBarController.OnShown();
             _valueBarController.UpdateList(new List<int>() { ConstItemID.POWER });
+            
             CheckFunOpen();
             UpdateRedDot();
+            if(GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0 && InstanceZonesDataManager.CheckLevelPass(fieldWorkLockLevel))
+            {
+                _ui.m_instance.target.scrollPane.posY = 540;
+            }
+            else
+            {
+                _ui.m_instance.target.scrollPane.posY = 0;
+            }
             Timers.inst.AddUpdate(CheckGuide);
             _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_eff, "ui_HaiZhiShi", "Bg_ZhuanChang_NiuQu");
         }
@@ -97,11 +107,11 @@ namespace GFGGame
             if (GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PORCELAIN) <= 0
                 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PROPERTY) <= 0
                 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <= 0
-                || GuideDataManager.IsGuideFinish(ConstGuideId.POEM) <= 0
+                || GuideDataManager.IsGuideFinish("TimeTracingShowView") <= 0
                 || GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0
-                || (GuideDataManager.IsGuideFinish("DAPEISAI_1") <=0 && MatchingCompetitionDataManager.Instance.MatchingState == 1 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
-                || (GuideDataManager.IsGuideFinish("DAPEISAI_2") <= 0 && MatchingCompetitionDataManager.Instance.MatchingState == 2 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004)))
-            //|| GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0)
+                //|| (GuideDataManager.IsGuideFinish("DAPEISAI_1") <=0 && MatchingCompetitionDataManager.Instance.MatchingState == 1 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
+                //|| (GuideDataManager.IsGuideFinish("DAPEISAI_2") <= 0 && MatchingCompetitionDataManager.Instance.MatchingState == 2 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
+                || (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0 && InstanceZonesDataManager.CheckLevelPass(100005009)))
             {
                 UpdateToCheckGuide(null);
             }
@@ -114,18 +124,19 @@ namespace GFGGame
         private void UpdateRedDot()
         {
             _valueBarController.UpdateRedPoint();
-            RedDotController.Instance.SetComRedDot(_ui.m_btnStudio.target, RedDotDataManager.Instance.GetStudioFilingRed(), "", -126, 22);
-            RedDotController.Instance.SetComRedDot(_ui.m_btnTravel.target, RedDotDataManager.Instance.GetTravelRed(), "", -152, 85);
-            RedDotController.Instance.SetComRedDot(_ui.m_btnField.target, TimeTracingDataManager.Instance.GetLevelRewardStatus() || TimeTracingDataManager.Instance.GetAllChapterReward(), "", -103, 43);
+            RedDotController.Instance.SetComRedDot(_ui.m_instance.m_btnStudio.target, RedDotDataManager.Instance.GetStudioFilingRed(), "", -126, 22);
+            RedDotController.Instance.SetComRedDot(_ui.m_instance.m_btnTravel.target, RedDotDataManager.Instance.GetTravelRed(), "", -152, 85);
+            RedDotController.Instance.SetComRedDot(_ui.m_instance.m_btnField.target, TimeTracingDataManager.Instance.GetLevelRewardStatus() || TimeTracingDataManager.Instance.GetAllChapterReward(), "", -103, 43);
         }
 
         private void CheckFunOpen()
         {
-            _ui.m_btnPoem.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MatchingCompetitionGatheringView).Name, false);
-            _ui.m_btnStudio.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioView).Name, false);
-            _ui.m_btnTravel.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TravelView).Name, false);
-            _ui.m_btnField.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TimeTracingShowView).Name, false);
-            _ui.m_btnArena.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(ArenaView).Name, false);
+            _ui.m_instance.m_btnPoem.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MatchingCompetitionGatheringView).Name, false);
+            _ui.m_instance.m_btnStudio.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioView).Name, false);
+            _ui.m_instance.m_btnTravel.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TravelView).Name, false);
+            _ui.m_instance.m_btnField.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TimeTracingShowView).Name, false);
+            _ui.m_instance.m_btnArena.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(ArenaView).Name, false);
+            _ui.m_instance.m_btnFieldWork.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FieldWorkLevelView).Name, false);
         }
 
         private void OnClickBtnBack()
@@ -180,6 +191,10 @@ namespace GFGGame
         {
             ViewManager.Show<TimeTracingShowView>();
         }
+        private void OnFieldWorkClick()
+        {
+            ViewManager.Show<FieldWorkLevelView>();
+        }
 
         private async void OnClickBtnArena()
         {
@@ -201,21 +216,24 @@ namespace GFGGame
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
             //_ui.m_loaGuidestudio.visible = false;
-            GuideController.TryGuide(_ui.m_btnStudio.target, ConstGuideId.STUDIO_PORCELAIN, 3, "工作室开门啦,进去看看~");
-            GuideController.TryGuide(_ui.m_btnStudio.target, ConstGuideId.STUDIO_FILING, 3, "工作室有新的任务啦。");
-            //GuideController.TryGuide(_ui.m_btnField.target, ConstGuideId.FIELD, 2, "外出进行历史考察,会有意想不到的收获哦。");
-            GuideController.TryGuide(_ui.m_btnStudio.target, ConstGuideId.STUDIO_PROPERTY, 2, "");
+            GuideController.TryGuide(_ui.m_instance.m_btnStudio.target, ConstGuideId.STUDIO_PORCELAIN, 3, "工作室开门啦,进去看看~");
+            GuideController.TryGuide(_ui.m_instance.m_btnStudio.target, ConstGuideId.STUDIO_FILING, 3, "工作室有新的任务啦。");
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0 && InstanceZonesDataManager.CheckLevelPass(100005009))
+            {
+                GuideController.TryGuide(_ui.m_instance.m_btnFieldWork.target, ConstGuideId.FIELD, 1, "外出进行考察,会有意想不到的收获哦。");
+            }
+            GuideController.TryGuide(_ui.m_instance.m_btnStudio.target, ConstGuideId.STUDIO_PROPERTY, 2, "");
             if(MatchingCompetitionDataManager.Instance.MatchingState == 1 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
             {
-                GuideController.TryGuide(_ui.m_btnPoemGudie, "DAPEISAI_1", 1, "进入搭配赛,进行搭配!");
+                GuideController.TryGuide(_ui.m_instance.m_btnPoemGudie, "DAPEISAI_1", 1, "进入搭配赛,进行搭配!");
             }
             else if(MatchingCompetitionDataManager.Instance.MatchingState == 2 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
             {
-                GuideController.TryGuide(_ui.m_btnPoemGudie, "DAPEISAI_2", 1, "进入搭配赛,进行评选!");
+                GuideController.TryGuide(_ui.m_instance.m_btnPoemGudie, "DAPEISAI_2", 1, "进入搭配赛,进行评选!");
             }
-            GuideController.TryGuide(_ui.m_btnArena.target, ConstGuideId.ARENA_OPEN, 3, "在这里可以与其他小伙伴比拼搭配哦~");
+            GuideController.TryGuide(_ui.m_instance.m_btnArena.target, ConstGuideId.ARENA_OPEN, 3, "在这里可以与其他小伙伴比拼搭配哦~");
             GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.ENTER_CHAPTER_5, 1, "", -1, false);
-            GuideController.TryGuide(_ui.m_btnField.target, "TimeTracingShowView", 3, "合成副本可获得奖励和服装哦~");
+            GuideController.TryGuide(_ui.m_instance.m_btnField.target, "TimeTracingShowView", 3, "合成副本可获得奖励和服装哦~");
             if (!ArenaDataManager.Instance.IsSeasonOpen)
             {
                 GuideController.TryCompleteGuide(ConstGuideId.ARENA_OPEN, 3);

+ 24 - 5
GameClient/Assets/Game/HotUpdate/Views/MainStory/ArenaFightResultView.cs

@@ -80,7 +80,16 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            FightData roleData = ArenaDataManager.Instance.DressupList[ArenaDataManager.Instance.CurFightIndex];
+            FightData roleData = null;
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                roleData = FieldWorkDataManager.Instance.DressupList[FieldWorkDataManager.Instance.CurFightIndex];
+            }
+            else
+            {
+                roleData = ArenaDataManager.Instance.DressupList[ArenaDataManager.Instance.CurFightIndex];
+            }    
+            
             if (_sceneObject == null)
             {
                 _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("SceneFightResult"));
@@ -89,10 +98,20 @@ namespace GFGGame
             }
             MyDressUpHelper.dressUpObj.PutOnItemList(roleData.itemList);
 
-            long myScore = ArenaDataManager.Instance.myScore[ArenaDataManager.Instance.CurFightIndex];
-            long targetScore = ArenaDataManager.Instance.targetScore[ArenaDataManager.Instance.CurFightIndex];
-            _ui.m_comResult.m_c1.selectedIndex = myScore > targetScore ? 3 : 0;
-            _ui.m_comResult.m_txtScore.text = myScore.ToString();
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena)
+            {
+                long myScore = ArenaDataManager.Instance.myScore[ArenaDataManager.Instance.CurFightIndex];
+                long targetScore = ArenaDataManager.Instance.targetScore[ArenaDataManager.Instance.CurFightIndex];
+                _ui.m_comResult.m_c1.selectedIndex = myScore > targetScore ? 3 : 0;
+                _ui.m_comResult.m_txtScore.text = myScore.ToString();
+            }
+            else
+            {
+                long myScore = FieldWorkDataManager.Instance.myScore[FieldWorkDataManager.Instance.CurFightIndex];
+                _ui.m_comResult.m_c1.selectedIndex =  0;
+                _ui.m_comResult.m_txtScore.text = myScore.ToString();
+            }
+
 
             _ui.m_btnClose.enabled = false;
 

+ 67 - 2
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs

@@ -106,10 +106,31 @@ namespace GFGGame
                 //去掉已经在其他主题装配的cardList
                 cardList = cardList.Where(a => !otherThemeCardIds.Contains(a.id)).ToList();
             }
+            else if(InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                //其他主题带的cardIds
+                var otherThemeCardIds = new HashSet<int>();
+                for (int i = 0; i < FieldWorkDataManager.Instance.DressupList.Count; i++)
+                {
+                    if (FieldWorkDataManager.Instance.SelectThemeIndex == i)
+                    {
+                        continue;
+                    }
+
+                    otherThemeCardIds.Add(FieldWorkDataManager.Instance.DressupList[i].cardId);
+                }
+
+                //去掉已经在其他主题装配的cardList
+                cardList = cardList.Where(a => !otherThemeCardIds.Contains(a.id)).ToList();
+            }
 
             float dressListAllAcore =
                 FightDataManager.Instance.GetDressListAllScore(MyDressUpHelper.dressUpObj.itemList, _scoreType);
             cardList = FightDataManager.Instance.SortCardList(cardList, dressListAllAcore, _scoreType);
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                cardList = FieldWorkDataManager.Instance.SortCardList(cardList);
+            }
             _ui.m_listCard.numItems = cardList.Count;
             _ui.m_listCard.selectedIndex = 0;
 
@@ -117,6 +138,10 @@ namespace GFGGame
             {
                 _cardId = dataManager.DressupList[dataManager.SelectThemeIndex].cardId;
             }
+            else if(InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                _cardId = FieldWorkDataManager.Instance.DressupList[FieldWorkDataManager.Instance.SelectThemeIndex].cardId;
+            }
 
             if (cardList.Count == 0)
             {
@@ -240,7 +265,16 @@ namespace GFGGame
             {
                 item.m_useIcon.visible = false;
             }
-
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                item.m_fieldwork.visible = true;
+                item.m_useIcon.visible = false;
+                item.m_wearRateText.text = FieldWorkDataManager.Instance.GetCardAbrasion(cardData.itemCfg.id).ToString() + "%";
+            }
+            else
+            {
+                item.m_fieldwork.visible = false;
+            }
             item.target.asCom.RemoveChild(_comSelected);
             if (_selectedIndex == index) { 
                 item.target.asCom.AddChild(_comSelected);
@@ -254,8 +288,15 @@ namespace GFGGame
         {
             GObject obj = context.data as GObject;
             UI_ListCardFightItem item = UI_ListCardFightItem.Proxy(obj);
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                if (FieldWorkDataManager.Instance.GetCardAbrasion(cardList[_ui.m_listCard.selectedIndex].id) >= 100)
+                {
+                    PromptController.Instance.ShowFloatTextPrompt("卡牌磨损程度已无法使用!");
+                    return;
+                }
+            }
             item.m_t0.Play();
-
             EffectUIPool.Recycle(_effectUI3);
             _effectUI3 = null;
             _effectUI3 = EffectUIPool.CreateEffectUI(item.m_effect, "ui_KP", "KP_Select");
@@ -280,6 +321,14 @@ namespace GFGGame
                     dataManager.ThemeList[dataManager.SelectThemeIndex]);
                 EventAgent.DispatchEvent(ConstMessage.CARD_SELECTED);
             }
+            else if(InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                FieldWorkDataManager dataManager = FieldWorkDataManager.Instance;
+                dataManager.DressupList[dataManager.SelectThemeIndex].cardId = cardId;
+                ArenaDataManager.Instance.SetMineFightAttr(dataManager.DressupList[dataManager.SelectThemeIndex],
+                    dataManager.ThemeList[dataManager.SelectThemeIndex]);
+                EventAgent.DispatchEvent(ConstMessage.CARD_SELECTED);
+            }
         }
 
         private void OnBtnUpCardClikc()
@@ -299,6 +348,10 @@ namespace GFGGame
                 {
                     ViewManager.Show<ArenaDressInfoView>(new object[] { FightRoleType.MINE, 0, ArenaDataManager.Instance.DressupList, "" }, true);
                 }
+                else if(InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+                {
+                    ViewManager.Show<FieldWorkDressFightView>(new object[] { FightRoleType.FieldWork, 0, FieldWorkDataManager.Instance.DressupList, "" }, true);
+                }
                 this.Hide();
                 return;
             }
@@ -316,6 +369,18 @@ namespace GFGGame
                     ViewManager.Show<ArenaDressInfoView>(new object[] { FightRoleType.MINE, 0, ArenaDataManager.Instance.DressupList, "" },true);
                 }
             }
+            else if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                FieldWorkDataManager dataManager = FieldWorkDataManager.Instance;
+                dataManager.DressupList[dataManager.SelectThemeIndex].itemList = MyDressUpHelper.dressUpObj.itemList;
+                FieldWorkSproxy.ReqChangeFieldWorkDressupOne(dataManager.SelectThemeIndex, cardId, MyDressUpHelper.dressUpObj.itemList).Coroutine();
+                if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+                {
+                    //ViewManager.GoBackFrom(typeof(ArenaDressUpFightView).FullName);
+                    ViewManager.Show<ArenaDressInfoView>(new object[] { FightRoleType.FieldWork, 0, dataManager.DressupList, "" }, true);
+                    PromptController.Instance.ShowFloatTextPrompt("保存成功");
+                }
+            }
             else
             {
                 List<PassivitySkillCfg> cfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId);

+ 77 - 17
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs

@@ -169,7 +169,14 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            roleData = InstanceZonesDataManager.roleData;
+            if(this.viewData != null)
+            {
+                roleData = this.viewData as FightData;
+            }
+            else
+            {
+                roleData = InstanceZonesDataManager.roleData;
+            }
             //if (_sceneObject == null)
             //{
             //    _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("SceneFightSingleScore"));
@@ -188,7 +195,11 @@ namespace GFGGame
             dressUpObjUI.dressUpObj.PutOnItemList(roleData.itemList);
             dressUpObjUI.UpdateWrapper(_ui.m_holder);
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("zd_g_bg");
-
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                _ui.m_btnBack.visible = false;
+                FightDataManager.Instance.autoPlay = true;
+            }
             if (!FightDataManager.Instance.autoPlay)
             {
                 FightDataManager.Instance.fightSpeed = 1;
@@ -196,13 +207,26 @@ namespace GFGGame
             _ui.m_btnSpeedUp.visible = FightDataManager.Instance.autoPlay;
             _ui.m_btnSpeedUp.title = "x" + FightDataManager.Instance.fightSpeed;
 
-            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
-            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
-            _ui.m_proScore.target.max = fightCfg.score3;
+            StoryLevelCfg levelCfg = null;
+            StoryFightCfg fightCfg = null;
+ 
             _ui.m_proScore.m_comBar.target.width = 0;
-            _ui.m_proScore.m_comFirstScore.target.x = (((float)fightCfg.score1 / (float)fightCfg.score3)) * (_ui.m_proScore.target.width - offsetX);
-            _ui.m_proScore.m_comSecondScore.target.x = (((float)fightCfg.score2 / (float)fightCfg.score3)) * (_ui.m_proScore.target.width - offsetX);
-            _ui.m_proScore.m_comThirdScore.target.x = (((float)fightCfg.score3 / (float)fightCfg.score3)) * (_ui.m_proScore.target.width - offsetX);
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                _ui.m_proScore.m_comFirstScore.target.visible = false;
+                _ui.m_proScore.m_comSecondScore.target.visible = false;
+                _ui.m_proScore.m_comThirdScore.target.visible = false;
+                _ui.m_proScore.target.max = FieldWorkDataManager.Instance.targetWinScore;
+            }
+            else
+            {
+                levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
+                fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
+                _ui.m_proScore.target.max = fightCfg.score3;
+                _ui.m_proScore.m_comFirstScore.target.x = (((float)fightCfg.score1 / (float)fightCfg.score3)) * (_ui.m_proScore.target.width - offsetX);
+                _ui.m_proScore.m_comSecondScore.target.x = (((float)fightCfg.score2 / (float)fightCfg.score3)) * (_ui.m_proScore.target.width - offsetX);
+                _ui.m_proScore.m_comThirdScore.target.x = (((float)fightCfg.score3 / (float)fightCfg.score3)) * (_ui.m_proScore.target.width - offsetX);
+            }
             _ui.m_proScore.m_holder.visible = false;
             _ui.m_proScore.m_txtCount.text = "0";
             _ui.m_comClick.target.touchable = false;
@@ -211,7 +235,6 @@ namespace GFGGame
             _ui.m_comClick.m_comResult.m_ppEffect.visible = false;
             _ui.m_comClick.m_comResult.m_t0.ClearHooks();
             _isAllPerfect = false;
-
             _currentTime = SkillBeginTime.FIGHT_BEGIN;
             // _stopFight = false;
             _partId = FightScoreCfgArray.Instance.dataArray[0].id;
@@ -238,7 +261,15 @@ namespace GFGGame
             List<int> roundTimes = ScoreSystemData.Instance.GetRoundTime(roleData.cardId, roleData.skillLvs);
             List<PassivitySkillLvlCfg> vaildSkills = ScoreSystemData.Instance.GetValidSkills(_currentTime, _partId, roleData.cardId, roleData.skillLvs, 0, null, roundTimes, new List<int>());
             ScoreSystemData.Instance.GetRoundItemSkillScore(vaildSkills, _mainScore, 0, out _skillScore, out int _targetScore, out Dictionary<int, int> skillsToShowDic);
-            bool _showCard = ScoreSystemData.Instance.IsShowCard(InstanceZonesDataManager.currentCardId, vaildSkills);
+            bool _showCard;
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                _showCard = ScoreSystemData.Instance.IsShowCard(roleData.cardId, vaildSkills);
+            }
+            else
+            {
+                _showCard = ScoreSystemData.Instance.IsShowCard(InstanceZonesDataManager.currentCardId, vaildSkills);
+            }
             if (_showCard && skillsToShowDic.Count > 0)
             {
                
@@ -697,8 +728,18 @@ namespace GFGGame
 
         private void GetCurStar(out int star)
         {
-            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
-            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
+            StoryLevelCfg levelCfg = null;
+            StoryFightCfg fightCfg = null;
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                star = 0;
+                return;
+            }
+            else
+            {
+                levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
+                fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
+            }
             star = 0;
             if (_score >= fightCfg.score1 && _score < fightCfg.score2)
             {
@@ -723,14 +764,33 @@ namespace GFGGame
 
         private void Skip(object param = null)
         {
-            InstanceZonesController.CheckStoryFightResult().Coroutine();
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                FieldWorkDataManager.Instance.myScore.Add(_score);
+                ViewManager.Show<FieldWorkFightResultView>(new object[] { _score, 0 }, true);
+                Reset();
+            }
+            else
+            {
+                InstanceZonesController.CheckStoryFightResult().Coroutine();
+            }
         }
         private void OnBtnBackClick()
         {
-            this.Hide();
-            _prefectCount = 0;
-            InstanceZonesController.OnFinishStoryLevel(InstanceZonesDataManager.currentLevelCfgId, false, false);
-            Reset();
+            if (this.viewData != null)
+            {
+                this.Hide();
+                _prefectCount = 0;
+                ViewManager.Show<FieldWorkLevelView>();
+                Reset();
+            }
+            else
+            {
+                this.Hide();
+                _prefectCount = 0;
+                InstanceZonesController.OnFinishStoryLevel(InstanceZonesDataManager.currentLevelCfgId, false, false);
+                Reset();
+            }
         }
         protected override void RemoveEventListener()
         {

+ 26 - 5
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleView.cs

@@ -47,17 +47,38 @@ namespace GFGGame
                 _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("SceneFightSingle"));
             }
             MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject);
-            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
-            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
+
+            StoryLevelCfg levelCfg = null;
+            StoryFightCfg fightCfg = null;
+            FightData roleFightData = null;
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            {
+                roleFightData = FieldWorkDataManager.Instance.DressupList[FieldWorkDataManager.Instance.CurFightIndex];
+                MyDressUpHelper.dressUpObj.PutOnItemList(FieldWorkDataManager.Instance.DressupList[FieldWorkDataManager.Instance.CurFightIndex].itemList);
+            }
+            else
+            {
+                levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
+                fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
+            }
 
             _ui.m_roleName.m_txtName.text = RoleDataManager.roleName;
             Timers.inst.Add(0.9f, 1, (object param) =>
             {
-                if (!string.IsNullOrEmpty(fightCfg.music))
+                if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
                 {
-                    MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath(fightCfg.music, "mp3"));
+                    MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath("fight", "mp3"));
+                    ViewManager.Show<StoryFightSingleScoreView>(roleFightData);
+                    ViewManager.Show<FieldWorkRoundTipsView>();
                 }
-                ViewManager.Show<StoryFightSingleScoreView>();
+                else
+                {
+                    if (!string.IsNullOrEmpty(fightCfg.music))
+                    {
+                        MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath(fightCfg.music, "mp3"));
+                    }
+                    ViewManager.Show<StoryFightSingleScoreView>();
+                }    
                 this.Hide();
             });
         }

BIN
GameClient/Assets/ResIn/UI/Arena/Arena_fui.bytes


BIN
GameClient/Assets/ResIn/UI/DressUp/DressUp_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/DressUp/DressUp_atlas0.png


BIN
GameClient/Assets/ResIn/UI/DressUp/DressUp_fui.bytes


+ 8 - 0
GameClient/Assets/ResIn/UI/FieldWork.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7b1fb21c58986bd41934cce780abd4d9
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0!a.png


+ 120 - 0
GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0!a.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 3b70fa719e048bd4c89b132d7be0813e
+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/FieldWork/FieldWork_atlas0.png


+ 120 - 0
GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: b6e114de67dd8b94091e1d3eb6181a8d
+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/FieldWork/FieldWork_atlas0_1!a.png


+ 120 - 0
GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_1!a.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 8820a1310fa865d46b41c42fe0909490
+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/FieldWork/FieldWork_atlas0_1.png


+ 120 - 0
GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_1.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 167df5ef58614dc4cb27d0a8aecbba8b
+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/FieldWork/FieldWork_atlas0_2!a.png


+ 120 - 0
GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_2!a.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 0008bb0214eff024b94c07f68eddd9c2
+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/FieldWork/FieldWork_atlas0_2.png


+ 120 - 0
GameClient/Assets/ResIn/UI/FieldWork/FieldWork_atlas0_2.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: a9d4429781457a145bdc8b491eec15a5
+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/FieldWork/FieldWork_fui.bytes


+ 7 - 0
GameClient/Assets/ResIn/UI/FieldWork/FieldWork_fui.bytes.meta

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

BIN
GameClient/Assets/ResIn/UI/InstanceZones/InstanceZones_fui.bytes


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0!a.png


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно