Browse Source

千山万水

zhaoyang 2 years ago
parent
commit
b495a7f53e

+ 9 - 0
FGUIProject/assets/Travel/components/ComTravel.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="1200,800">
+  <displayList>
+    <loader id="n10_wono" name="loaBg" xy="0,0" size="1200,800" url="ui://jitclg1gwonoc" align="center" vAlign="middle" fill="scaleMatchWidth">
+      <relation target="" sidePair="width-width,height-height,center-center,middle-middle"/>
+    </loader>
+    <loader id="n11_wono" name="loaRole" xy="142,800" pivot="0,1" anchor="true" size="532,739" url="ui://jitclg1gwonoa" fill="scaleMatchWidth" autoSize="true"/>
+  </displayList>
+</component>

BIN
FGUIProject/assets/Travel/damengdh.png


BIN
FGUIProject/assets/Travel/dayanta.png


BIN
FGUIProject/assets/Travel/jiyuet.png


BIN
FGUIProject/assets/Travel/mogaoku_baitian .png


BIN
FGUIProject/assets/Travel/mogaoku_yewan.png


BIN
FGUIProject/assets/Travel/moren_huitou.png


BIN
FGUIProject/assets/Travel/moren_zhanli.png


BIN
FGUIProject/assets/Travel/moren_zoulu.png


+ 10 - 0
FGUIProject/assets/Travel/package.xml

@@ -7,6 +7,16 @@
     <component id="wono3" name="Button1.xml" path="/components/"/>
     <component id="wono4" name="Button2.xml" path="/components/"/>
     <component id="wono5" name="Button3.xml" path="/components/"/>
+    <component id="wono10e" name="ComTravel.xml" path="/components/"/>
+    <image id="wono6" name="qingyuan.png" path="/"/>
+    <image id="wono7" name="damengdh.png" path="/"/>
+    <image id="wono8" name="jiyuet.png" path="/"/>
+    <image id="wono9" name="moren_huitou.png" path="/"/>
+    <image id="wonoa" name="moren_zhanli.png" path="/"/>
+    <image id="wonob" name="moren_zoulu.png" path="/"/>
+    <image id="wonoc" name="mogaoku_yewan.png" path="/"/>
+    <image id="wonod" name="dayanta.png" path="/"/>
+    <image id="wonoe" name="mogaoku_baitian .png" path="/"/>
   </resources>
   <publish name="" path="..\GameClient\Assets\ResIn\UI\Travel" packageCount="2" genCode="true"/>
 </packageDescription>

BIN
FGUIProject/assets/Travel/qingyuan.png


+ 0 - 8
FGUIProject/assets/poem/components/ComTravel.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<component size="1080,720">
-  <displayList>
-    <loader id="n10_wono" name="loaBg" xy="0,0" size="1080,720" aspect="true" align="center" vAlign="middle" fill="scaleMatchWidth">
-      <relation target="" sidePair="width-width,height-height,center-center,middle-middle"/>
-    </loader>
-  </displayList>
-</component>

+ 1 - 1
FGUIProject/assets/poem/components/ListTravelItem.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="1080,720">
   <displayList>
-    <component id="n18_wono" name="n18" src="wono10e" fileName="components/ComTravel.xml" xy="0,0"/>
+    <component id="n18_wono" name="n18" src="wono10e" fileName="components/ComTravel.xml" xy="0,0" pkg="jitclg1g"/>
   </displayList>
 </component>

+ 0 - 1
FGUIProject/assets/poem/package.xml

@@ -42,7 +42,6 @@
     <image id="uyux10b" name="xc_xzxzz.png" path="/photImages/"/>
     <image id="uyux10c" name="xc_xcan.png" path="/photImages/"/>
     <component id="uyux10d" name="Button8.xml" path="/components/"/>
-    <component id="wono10e" name="ComTravel.xml" path="/components/"/>
     <component id="wono10f" name="ListTravelItem.xml" path="/components/"/>
   </resources>
   <publish name="" path="..\GameClient\Assets\ResIn\UI\Poem" packageCount="2" genCode="true"/>

+ 20 - 0
GameClient/Assets/Game/HotUpdate/Data/TravelDataManager.cs

@@ -0,0 +1,20 @@
+using System.Collections.Generic;
+using FairyGUI;
+using UnityEngine;
+
+namespace GFGGame
+{
+    public class TravelDataManager : SingletonBase<TravelDataManager>
+    {
+        public TravelData TravelData { get; set; }
+        public List<int> ListTravelLoactionCount = new List<int>();//下标对应TravelLoactionCfg表格id
+        public List<int> ListTravelAreaRewardState = new List<int>();//下标对应TravelGuide表格id
+
+        public void Clear()
+        {
+            TravelData = null;
+            ListTravelLoactionCount.Clear();
+            ListTravelAreaRewardState.Clear();
+        }
+    }
+}

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

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

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Data/VO/PoemPhotoData.cs

@@ -44,7 +44,7 @@ namespace GFGGame
         /// </summary>
         public int TravelLocationId;
         /// <summary>
-        /// Q版套装位置
+        /// Q版套装位置,0表示无人物的风景图
         /// </summary>
         public int TravelSuitId;
         /// <summary>

+ 46 - 0
GameClient/Assets/Game/HotUpdate/Data/VO/TravelData.cs

@@ -0,0 +1,46 @@
+using System.Collections.Generic;
+using FairyGUI;
+
+namespace GFGGame
+{
+    public class TravelData
+    {
+        /// <summary>
+        /// 状态,0未游历,1游历中,2游历完成 值由 TravelGuideType 定义
+        /// </summary>
+        public int Status;
+        /// <summary>
+        /// 游历开始时间
+        /// </summary>
+        public long CreationTime;
+        /// <summary>
+        /// 本次需要的时间(小时)
+        /// </summary>
+        public int TravelNeedHour;
+        /// <summary>
+        /// 游历地点id
+        /// </summary>
+        public int TravelLocationId;
+        /// <summary>
+        /// 游历地点对应的最新游历次数
+        /// </summary>
+        public int TravelCount;
+        /// <summary>
+        /// 出游穿的q版套装id
+        /// </summary>
+        public int TravelSuitId;
+        /// <summary>
+        /// Q版人物位置下标
+        /// </summary>
+        public int PositionIndex;
+        /// <summary>
+        /// Q版套装人物资源下标
+        /// </summary>
+        public int TravelSuitResourceIndex;
+
+        /// <summary>
+        /// 本次游历获得的物品
+        /// </summary>
+        public List<ItemData> RewardItems;
+    }
+}

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

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

+ 1 - 1
GameClient/Assets/Game/HotUpdate/ServerProxy/PoemPhotoSProxy.cs

@@ -48,7 +48,7 @@ namespace GFGGame
                         photoData.TravelSuitId = response.PictureInfosB[i].TravelSuitId;
                         photoData.ResourceIndex = response.PictureInfosB[i].TravelSuitResourceIndex;
                         photoData.PositionIndex = response.PictureInfosB[i].PositionIndex;
-                        Timers.inst.StartCoroutine(DownloadFile(photoData));
+                        // Timers.inst.StartCoroutine(DownloadFile(photoData));
 
                         PoemPhotoDataManager.Instance.Add(photoData, (int)PictureSourceType.WanShuiQianShan);
                     }

+ 72 - 1
GameClient/Assets/Game/HotUpdate/ServerProxy/TravelSProxy.cs

@@ -15,7 +15,7 @@ namespace GFGGame
 {
     public static class TravelSProxy
     {
-        //获取游历
+        //获取游历信息
         public static async ETTask<bool> ReqTravelInfo()
         {
             S2C_GetTravelGuideData response = null;
@@ -24,6 +24,17 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
+                    TravelData travelData = new TravelData();
+                    travelData.Status = response.TravelGuideInfo.Status;
+                    travelData.CreationTime = response.TravelGuideInfo.CreationTime;
+                    travelData.TravelNeedHour = response.TravelGuideInfo.TravelNeedHour;
+                    travelData.TravelLocationId = response.TravelGuideInfo.TravelLocationId;
+                    travelData.TravelCount = response.TravelGuideInfo.TravelCount;
+                    travelData.TravelSuitId = response.TravelGuideInfo.TravelSuitId;
+                    travelData.PositionIndex = response.TravelGuideInfo.PositionIndex;
+                    travelData.TravelSuitResourceIndex = response.TravelGuideInfo.PositionIndex;
+                    travelData.RewardItems = ItemUtil.CreateItemDataList(response.TravelGuideInfo.RewardItem);
+                    TravelDataManager.Instance.TravelData = travelData;
 
                     return true;
                 }
@@ -41,6 +52,17 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
+                    TravelData travelData = new TravelData();
+                    travelData.Status = response.TravelGuideInfo.Status;
+                    travelData.CreationTime = response.TravelGuideInfo.CreationTime;
+                    travelData.TravelNeedHour = response.TravelGuideInfo.TravelNeedHour;
+                    travelData.TravelLocationId = response.TravelGuideInfo.TravelLocationId;
+                    travelData.TravelCount = response.TravelGuideInfo.TravelCount;
+                    travelData.TravelSuitId = response.TravelGuideInfo.TravelSuitId;
+                    travelData.PositionIndex = response.TravelGuideInfo.PositionIndex;
+                    travelData.TravelSuitResourceIndex = response.TravelGuideInfo.PositionIndex;
+                    travelData.RewardItems = ItemUtil.CreateItemDataList(response.TravelGuideInfo.RewardItem);
+                    TravelDataManager.Instance.TravelData = travelData;
                     return true;
                 }
             }
@@ -56,6 +78,51 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
+                    TravelDataManager inst = TravelDataManager.Instance;
+
+                    PoemPhotoData photoData = new PoemPhotoData();
+                    photoData.PictureId = response.PictureInfo.PictureId;
+                    photoData.CreationTime = response.PictureInfo.CreationTime;
+                    photoData.ToppingStatus = response.PictureInfo.ToppingStatus;
+                    photoData.LockingStatus = response.PictureInfo.LockingStatus;
+
+                    photoData.TravelLocationId = response.PictureInfo.TravelLocationId;
+                    photoData.TravelSuitId = response.PictureInfo.TravelSuitId;
+                    photoData.ResourceIndex = response.PictureInfo.TravelSuitResourceIndex;
+                    photoData.PositionIndex = response.PictureInfo.PositionIndex;
+                    PoemPhotoDataManager.Instance.Add(photoData, (int)PictureSourceType.WanShuiQianShan);
+
+                    inst.TravelData.Status = (int)TravelGuideType.NoTravel;
+                    inst.ListTravelLoactionCount[inst.TravelData.TravelLocationId - 1] = inst.TravelData.TravelCount;
+
+                    if (inst.TravelData.TravelCount > 1) return true;//非首次到达该地无需处理图鉴红点
+
+                    string location = TravelLoactionCfgArray.Instance.GetCfg(inst.TravelData.TravelLocationId).location;
+                    for (int i = 0; i < inst.ListTravelAreaRewardState.Count; i++)
+                    {
+                        TravelGuideCfg travelGuide = TravelGuideCfgArray.Instance.GetCfg(i + 1);
+                        if (Array.IndexOf(travelGuide.locationsArr, location) >= 0)
+                        {
+                            if (inst.ListTravelAreaRewardState[i] > (int)ConstBonusStatus.CAN_NOT_GET) break;//可领和已领状态不用处理
+                            bool isRed = true;
+                            for (int j = 0; j < travelGuide.locationsArr.Length; j++)
+                            {
+                                int loactionId = TravelLoactionCfgArray.Instance.GetCfgBylocation(travelGuide.locationsArr[j]).id;
+                                if (inst.ListTravelLoactionCount[loactionId - 1] == 0)
+                                {
+                                    //仍有未到达的地点
+                                    isRed = false;
+                                    break;
+                                }
+                            }
+                            if (isRed)
+                            {
+                                inst.ListTravelAreaRewardState[i] = (int)ConstBonusStatus.CAN_GET;
+                                EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
+                            }
+                            break;
+                        }
+                    }
                     return true;
                 }
             }
@@ -72,6 +139,8 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
+                    TravelDataManager.Instance.ListTravelLoactionCount = new List<int>(response.TglLocationRecordList.ToArray());
+                    TravelDataManager.Instance.ListTravelAreaRewardState = new List<int>(response.TglAreaRecordList.ToArray());
                     return true;
                 }
             }
@@ -87,6 +156,8 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
+                    TravelDataManager.Instance.ListTravelAreaRewardState[areaId - 1] = (int)ConstBonusStatus.GOT;
+                    EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
                     return true;
                 }
             }