浏览代码

加入神识值判断

lzx 3 天之前
父节点
当前提交
4799bf3fda
共有 24 个文件被更改,包括 429 次插入56 次删除
  1. 16 2
      Assets/Art/UIAssets/decorate/dec_di_01.png.meta
  2. 4 4
      Assets/Res/UI/DialoguePanel/DialogueBubblePanel.prefab
  3. 68 26
      Assets/Res/UI/DialoguePanel/DialoguePanel.prefab
  4. 12 2
      Assets/Res/UI/MainPanel/MainPanel.prefab
  5. 0 0
      Assets/Res/UI/MainPanel/MainPanel.prefab.meta
  6. 3 3
      Assets/Res/UI/SkillUIComponent.prefab
  7. 8 0
      Assets/Res/UI/TipMessagePanel.meta
  8. 6 6
      Assets/Res/UI/TipMessagePanel/TipMessagePanel.prefab
  9. 0 0
      Assets/Res/UI/TipMessagePanel/TipMessagePanel.prefab.meta
  10. 4 0
      Assets/Scripts/Core/Event/Event/CustomEventType.cs
  11. 45 10
      Assets/Scripts/GameLogic/EventManager/EventSystemManager.cs
  12. 7 0
      Assets/Scripts/GameLogic/Player/AccountFileInfo.cs
  13. 10 0
      Assets/Scripts/GameLogic/Player/DivineSenseManager.cs
  14. 3 0
      Assets/Scripts/GameLogic/Player/DivineSenseManager.cs.meta
  15. 1 1
      Assets/Scripts/GameUI/UI/CombatPanel/CombatPanel.cs
  16. 12 0
      Assets/Scripts/GameUI/UI/DialoguePanel/DialogueBubblePanel.cs
  17. 20 2
      Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs
  18. 11 0
      Assets/Scripts/GameUI/UI/MainPanel/MainPanelData.cs
  19. 8 0
      Assets/Scripts/GameUI/UI/TipMessagePanel.meta
  20. 107 0
      Assets/Scripts/GameUI/UI/TipMessagePanel/TipMessagePanel.cs
  21. 11 0
      Assets/Scripts/GameUI/UI/TipMessagePanel/TipMessagePanel.cs.meta
  22. 62 0
      Assets/Scripts/GameUI/UI/TipMessagePanel/TipMessagePanelData.cs
  23. 11 0
      Assets/Scripts/GameUI/UI/TipMessagePanel/TipMessagePanelData.cs.meta
  24. 0 0
      Assets/StreamingAssets/assetConfig.txt

+ 16 - 2
Assets/Art/UIAssets/decorate/dec_di_01.png.meta

@@ -52,7 +52,7 @@ TextureImporter:
   alignment: 0
   spritePivot: {x: 0.5, y: 0.5}
   spritePixelsToUnits: 100
-  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteBorder: {x: 20, y: 62, z: 20, w: 62}
   spriteGenerateFallbackPhysicsShape: 1
   alphaUsage: 1
   alphaIsTransparency: 1
@@ -168,6 +168,20 @@ TextureImporter:
     ignorePlatformSupport: 0
     androidETC2FallbackOverride: 0
     forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: WeixinMiniGame
+    maxTextureSize: 2048
+    maxPlaceholderSize: 32
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
   spriteSheet:
     serializedVersion: 2
     sprites: []
@@ -175,7 +189,7 @@ TextureImporter:
     physicsShape: []
     bones: []
     spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
+    internalID: 1537655665
     vertices: []
     indices: 
     edges: []

+ 4 - 4
Assets/Res/UI/DialoguePanel/DialogueBubblePanel.prefab

@@ -110,7 +110,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0}
   m_AnchorMax: {x: 0.5, y: 0}
-  m_AnchoredPosition: {x: -0.016822815, y: -0.00048828125}
+  m_AnchoredPosition: {x: -0.016830444, y: -0.00048828125}
   m_SizeDelta: {x: 38, y: 28}
   m_Pivot: {x: 0.5, y: 0}
 --- !u!222 &8140321628656431887
@@ -333,7 +333,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0}
   m_AnchorMax: {x: 0.5, y: 0}
-  m_AnchoredPosition: {x: 3.6314, y: 20.999634}
+  m_AnchoredPosition: {x: 3.6313934, y: 20.999634}
   m_SizeDelta: {x: 265.63, y: 0}
   m_Pivot: {x: 0.5, y: 0}
 --- !u!222 &2010396863693640005
@@ -457,9 +457,9 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 0, y: 0.0000019073486}
+  m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 272.8918, y: 76.393}
-  m_Pivot: {x: 0.5, y: 0.5}
+  m_Pivot: {x: 0.9896756, y: 0.74947715}
 --- !u!1 &6818454288414185864
 GameObject:
   m_ObjectHideFlags: 0

+ 68 - 26
Assets/Res/UI/DialoguePanel/DialoguePanel.prefab

@@ -11,7 +11,7 @@ GameObject:
   - component: {fileID: 4979100652905664733}
   - component: {fileID: 1752607932964163169}
   - component: {fileID: 934892927558183822}
-  - component: {fileID: 7532172800293112844}
+  - component: {fileID: 1731814173400145533}
   m_Layer: 5
   m_HasEditorInfo: 1
   m_Name: OptionRoot
@@ -34,10 +34,10 @@ RectTransform:
   m_Children: []
   m_Father: {fileID: 3275273584098972649}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0.5, y: 0}
-  m_AnchorMax: {x: 0.5, y: 0}
-  m_AnchoredPosition: {x: 0.84393, y: 0}
-  m_SizeDelta: {x: 0, y: 59.4333}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 357.7, y: -244.3}
+  m_SizeDelta: {x: 131, y: 0}
   m_Pivot: {x: 0.5, y: 0}
 --- !u!222 &1752607932964163169
 CanvasRenderer:
@@ -59,9 +59,9 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_HorizontalFit: 2
-  m_VerticalFit: 0
---- !u!114 &7532172800293112844
+  m_HorizontalFit: 0
+  m_VerticalFit: 2
+--- !u!114 &1731814173400145533
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -70,16 +70,16 @@ MonoBehaviour:
   m_GameObject: {fileID: 3255008631453123208}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
   m_Padding:
     m_Left: 0
     m_Right: 0
-    m_Top: 0
+    m_Top: 14
     m_Bottom: 0
-  m_ChildAlignment: 4
-  m_Spacing: 14.96
+  m_ChildAlignment: 7
+  m_Spacing: 5
   m_ChildForceExpandWidth: 1
   m_ChildForceExpandHeight: 1
   m_ChildControlWidth: 0
@@ -118,11 +118,11 @@ RectTransform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 3275273584098972649}
+  m_Father: {fileID: 3450449309247689875}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 11.699987, y: 36.390015}
+  m_AnchoredPosition: {x: -3.4999943, y: 21.199951}
   m_SizeDelta: {x: 635.8, y: 145.6}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &5302561503091161802
@@ -275,12 +275,14 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
-  m_Children: []
+  m_Children:
+  - {fileID: 2401587046251870679}
+  - {fileID: 6614233195307115645}
   m_Father: {fileID: 3275273584098972649}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0.5, y: 0.5}
-  m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 15.199987, y: 15.190063}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 685, y: 230.3}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &6945069562181101411
@@ -348,7 +350,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!224 &6614233195307115645
 RectTransform:
   m_ObjectHideFlags: 0
@@ -361,11 +363,11 @@ RectTransform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 3275273584098972649}
+  m_Father: {fileID: 3450449309247689875}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 310.6, y: -61.8}
+  m_AnchoredPosition: {x: 299, y: -83}
   m_SizeDelta: {x: 38, y: 28}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &2729643428166531704
@@ -644,6 +646,8 @@ GameObject:
   serializedVersion: 7
   m_Component:
   - component: {fileID: 3275273584098972649}
+  - component: {fileID: 7792863436289110911}
+  - component: {fileID: 8702702673051204598}
   m_Layer: 5
   m_HasEditorInfo: 1
   m_Name: Dialgue
@@ -666,16 +670,54 @@ RectTransform:
   m_Children:
   - {fileID: 5617782115550842872}
   - {fileID: 3450449309247689875}
-  - {fileID: 2401587046251870679}
-  - {fileID: 6614233195307115645}
   - {fileID: 4979100652905664733}
   m_Father: {fileID: 1803833552231621266}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0}
   m_AnchorMax: {x: 0.5, y: 0}
-  m_AnchoredPosition: {x: -17.299988, y: 232}
-  m_SizeDelta: {x: 715.4, y: 351.23}
-  m_Pivot: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 29}
+  m_SizeDelta: {x: 715.4, y: 0}
+  m_Pivot: {x: 0.5, y: 0}
+--- !u!114 &7792863436289110911
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8841265337799555239}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 7
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!114 &8702702673051204598
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8841265337799555239}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 0
+  m_VerticalFit: 2
 --- !u!1 &9090904604107627365
 GameObject:
   m_ObjectHideFlags: 0

+ 12 - 2
Assets/Res/UI/MainPanel.prefab → Assets/Res/UI/MainPanel/MainPanel.prefab

@@ -700,7 +700,7 @@ GameObject:
   - component: {fileID: 5407159726911301663}
   m_Layer: 5
   m_HasEditorInfo: 1
-  m_Name: Text (Legacy) (1)
+  m_Name: Text_ExplorationProgress
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -1168,7 +1168,7 @@ GameObject:
   - component: {fileID: 2031905454085863219}
   m_Layer: 5
   m_HasEditorInfo: 1
-  m_Name: Text (Legacy) (1)
+  m_Name: Text_divineSensePoint
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -2228,6 +2228,16 @@ MonoBehaviour:
     isAssetBundle: 0
     isList: 0
     ListCollectorDatas: []
+  - key: Text_divineSensePoint
+    gameObject: {fileID: 2031905454085863219}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Text (Legacy) (1)
+    gameObject: {fileID: 2298873888804225080}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
   isAssetBundle: 1
 --- !u!1 &9153091249090986804
 GameObject:

+ 0 - 0
Assets/Res/UI/MainPanel.prefab.meta → Assets/Res/UI/MainPanel/MainPanel.prefab.meta


+ 3 - 3
Assets/Res/UI/SkillUIComponent.prefab

@@ -587,7 +587,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 344, y: -55}
+  m_AnchoredPosition: {x: 344, y: -82}
   m_SizeDelta: {x: 688, y: 0}
   m_Pivot: {x: 0.5, y: 1}
 --- !u!222 &4396069779853996381
@@ -682,7 +682,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 344, y: -27.5}
+  m_AnchoredPosition: {x: 344, y: -41}
   m_SizeDelta: {x: 688, y: 0}
   m_Pivot: {x: 0.5, y: 1}
 --- !u!222 &7568156432243018947
@@ -1818,7 +1818,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 344, y: -82.5}
+  m_AnchoredPosition: {x: 344, y: -123}
   m_SizeDelta: {x: 688, y: 0}
   m_Pivot: {x: 0.5, y: 1}
 --- !u!222 &5946602135712632191

+ 8 - 0
Assets/Res/UI/TipMessagePanel.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: WX0b43+oUS8ZL2ucuKBgP+KJxAlduYv2DNXKkcJFV7fucMvd/jWHfby00tDd
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 6 - 6
Assets/Res/UI/TipMessagePanel.prefab → Assets/Res/UI/TipMessagePanel/TipMessagePanel.prefab

@@ -149,14 +149,14 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
-  _icon_name: btn_Round09
+  _icon_name: dec_di_01
   isNotLoadDeftIcon: 0
-  CurrSpriteAtlas: {fileID: 100100200, guid: 7b02f32fa59cd4e3085208946b112537, type: 3}
+  CurrSpriteAtlas: {fileID: 100100200, guid: b02f6b41a7a9fa8458f4226ab6b3ea47, type: 3}
   packInfo:
-    packName: all
-    packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
-    packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
-    lasetJsonGUID: 7f6af24b7e68d556cab4cc7ac439f1bb
+    packName: tongyong
+    packgJsonPath: /Art/UIAssets/TextrueJson\tongyong.txt
+    packgSpritePath: Assets/Res/UIAtlas/tongyong.spriteatlasv2
+    lasetJsonGUID: 4ebd7d8d5739e3c27ba90d2ae88ba1cc
 --- !u!1 &3191415273797276819
 GameObject:
   m_ObjectHideFlags: 0

+ 0 - 0
Assets/Res/UI/TipMessagePanel.prefab.meta → Assets/Res/UI/TipMessagePanel/TipMessagePanel.prefab.meta


+ 4 - 0
Assets/Scripts/Core/Event/Event/CustomEventType.cs

@@ -76,6 +76,10 @@ namespace Fort23.Core
       /// </summary>
       OnCloseHeroPanel,
       DispatchEvent,
+      /// <summary>
+      /// 神识值改变
+      /// </summary>
+      DivineSensePointChange,
       
     }
 }

+ 45 - 10
Assets/Scripts/GameLogic/EventManager/EventSystemManager.cs

@@ -1,7 +1,9 @@
 using System.Collections.Generic;
 using System.Linq;
 using Excel2Json;
+using Fort23.Core;
 using Fort23.UTool;
+using UnityEngine;
 using Utility;
 using Random = UnityEngine.Random;
 
@@ -9,13 +11,50 @@ public class EventSystemManager : Singleton<EventSystemManager>
 {
     List<EventConfig> eventConfigs = new List<EventConfig>();
 
+    List<AccountFileInfo.EventData> eventDatas = new List<AccountFileInfo.EventData>();
+
     public void CustomInit()
     {
         eventConfigs = ConfigComponent.Instance.GetAll<EventConfig>().ToList();
+
+        StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
     }
 
+    private float timer = 0;
 
-    public List<EventConfig> DetectEvents(int bigMapId)
+    private void Update()
+    {
+        timer += Time.deltaTime;
+        if (timer > 1)
+        {
+            timer = 0;
+            AccountFileInfo.Instance.playerData.divineSensePoint += 3;
+            EventManager.Instance.Dispatch(CustomEventType.DivineSensePointChange, null);
+            AccountFileInfo.Instance.SavePlayerData();
+        }
+    }
+
+    public List<EventConfig> UseDivinesense(int bigMapId)
+    {
+        DivineSenseConfig divineSenseConfig = ConfigComponent.Instance.Get<DivineSenseConfig>(AccountFileInfo.Instance.playerData.divineSenseLevel);
+        int count = AccountFileInfo.Instance.playerData.divineSensePoint / PlayerManager.Instance.gameConstantConfig.DetectEventCount;
+        if (count <= 0)
+        {
+            //神识值不够
+            return null;
+        }
+
+        AccountFileInfo.Instance.playerData.divineSenseexp += AccountFileInfo.Instance.playerData.divineSensePoint;
+        AccountFileInfo.Instance.playerData.divineSensePoint = 0;
+        EventManager.Instance.Dispatch(CustomEventType.DivineSensePointChange, null);
+        //todo 神识升级逻辑
+        AccountFileInfo.Instance.SavePlayerData();
+
+        return DetectEvents(bigMapId, count);
+    }
+
+
+    private List<EventConfig> DetectEvents(int bigMapId, int eventCount)
     {
         BigMap bigMap = ConfigComponent.Instance.Get<BigMap>(bigMapId);
         DivineSenseConfig divineSenseConfig = ConfigComponent.Instance.Get<DivineSenseConfig>(AccountFileInfo.Instance.playerData.divineSenseLevel);
@@ -41,7 +80,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
 
         var triggeredEvents = new List<EventConfig>();
-        for (int i = 0; i < divineSenseConfig.DetectEventCount; i++)
+        for (int i = 0; i < eventCount; i++)
         {
             int randomValue1 = Random.Range(0, 101);
             //刷场景事件
@@ -68,7 +107,6 @@ public class EventSystemManager : Singleton<EventSystemManager>
         }
 
         return triggeredEvents;
-
     }
 
     /// <summary>
@@ -79,7 +117,6 @@ public class EventSystemManager : Singleton<EventSystemManager>
         // 获取随机事件
         List<EventConfig> randomEvents = eventConfigs.Where(e => e.EventTriggerType == 2 && CanTriggerEvent(e.ID)).ToList();
 
-        
 
         if (randomEvents.Count == 0)
         {
@@ -100,12 +137,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
     {
         LogTool.Log($"触发事件: {evt.Description} (ID: {evt.ID}, 品质: {evt.EventQuality})");
 
-        DialogueManager.Instance.StartDialogue(evt.EventType, evt.ID,() =>
-        {
-            CompleteEvent(evt.ID);
-        });
-
-       
+        DialogueManager.Instance.StartDialogue(evt.EventType, evt.ID, () => { CompleteEvent(evt.ID); });
     }
 
     /// <summary>
@@ -165,6 +197,9 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
         eventData.completeCount++;
         AccountFileInfo.Instance.playerData.events.Add(eventData);
+
+        if (AccountFileInfo.Instance.playerData.senceExplorationProgress < 100)
+            AccountFileInfo.Instance.playerData.senceExplorationProgress += 5;
         AccountFileInfo.Instance.SavePlayerData();
     }
 }

+ 7 - 0
Assets/Scripts/GameLogic/Player/AccountFileInfo.cs

@@ -27,8 +27,15 @@ public class AccountFileInfo : Singleton<AccountFileInfo>
     [System.Serializable]
     public class PlayerData
     {
+        //地图探索进度
+        public int senceExplorationProgress;
+        
         public int divineSenseLevel = 1;
         
+        public int divineSensePoint = 0;
+        
+        public int divineSenseexp = 0;
+        
         public List<EventData> events = new List<EventData>();
         
         public List<ItemData> ItemListData = new List<ItemData>();

+ 10 - 0
Assets/Scripts/GameLogic/Player/DivineSenseManager.cs

@@ -0,0 +1,10 @@
+namespace GameLogic.Player
+{
+    public class DivineSenseManager
+    {
+        public void CustomInit()
+        {
+            
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Player/DivineSenseManager.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 7bf08b8848674c258b32bcee616b2847
+timeCreated: 1745463194

+ 1 - 1
Assets/Scripts/GameUI/UI/CombatPanel/CombatPanel.cs

@@ -128,7 +128,7 @@ namespace Fort23.Mono
             UIManager.Instance.DormancyAllGComponent<ShengShiEventWidget>();
             CombatController.currActiveCombat.CombatSenceController.StartPayShengShi(CombatController.currActiveCombat
                 .CombatHeroController.playerHeroEntity.GameObject.transform);
-            List<EventConfig> eventConfigs = EventSystemManager.Instance.DetectEvents(1);
+            List<EventConfig> eventConfigs = EventSystemManager.Instance.UseDivinesense(1);
             if (eventConfigs == null || eventConfigs.Count == 0)
                 return;
             for (var i = 0; i < eventConfigs.Count; i++)

+ 12 - 0
Assets/Scripts/GameUI/UI/DialoguePanel/DialogueBubblePanel.cs

@@ -5,6 +5,7 @@ using Core.Language;
 using Excel2Json;
 using Fort23.Core;
 using Fort23.UTool;
+using GameLogic.Combat;
 using UnityEngine;
 
 namespace Fort23.Mono
@@ -141,6 +142,17 @@ namespace Fort23.Mono
 
         public void Update()
         {
+            Vector3 p = CombatDrive.Instance.CombatController.CombatHeroController.playerHeroEntity.GameObject.transform.Find("hitpos").position;
+            p.x -= 0.2f;
+            p.y += 0.7f;
+            p = CombatDrive.Instance.CombatController.CombatCameraControllder.Camera.WorldToScreenPoint(p);
+            p = UIManager.Instance.UICamera.ScreenToWorldPoint(p);
+
+
+            p = transform.worldToLocalMatrix * p;
+
+            dotPoint.anchoredPosition = p;
+
             if (!_isUpdate) return;
 
             if (messageShowType == ShowDialogueEventData.MessageShowType.Verbatim)

+ 20 - 2
Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs

@@ -15,10 +15,17 @@ namespace Fort23.Mono
 
         protected override void AddEvent()
         {
+            EventManager.Instance.AddEventListener(CustomEventType.DivineSensePointChange, DivineSensePointChange);
+        }
+
+        private void DivineSensePointChange(IEventData e)
+        {
+            Text_divineSensePoint.text = $"{AccountFileInfo.Instance.playerData.divineSensePoint}/{PlayerManager.Instance.gameConstantConfig.DetectEventCount}";
         }
 
         protected override void DelEvent()
         {
+            EventManager.Instance.RemoveEventListener(CustomEventType.DivineSensePointChange, DivineSensePointChange);
         }
 
         public override void AddButtonEvent()
@@ -26,14 +33,26 @@ namespace Fort23.Mono
             bnt_shengShi.onClick.AddListener(Bnt_shengShi_onClick);
         }
 
+        public override CTask<bool> AsyncInit(object[] uiData)
+        {
+            Text_divineSensePoint.text = $"{AccountFileInfo.Instance.playerData.divineSensePoint}/{PlayerManager.Instance.gameConstantConfig.DetectEventCount}";
+            return base.AsyncInit(uiData);
+        }
+
         private async void Bnt_shengShi_onClick()
         {
             // EventSystemManager.Instance.DetectRandomEvents();
 
+            if (AccountFileInfo.Instance.playerData.divineSensePoint < PlayerManager.Instance.gameConstantConfig.DetectEventCount)
+            {
+                TipMessagePanel.OpenTipMessagePanel("神识值不够!");
+                return;
+            }
+
             UIManager.Instance.DormancyAllGComponent<ShengShiEventWidget>();
             CombatController.currActiveCombat.CombatSenceController.StartPayShengShi(CombatController.currActiveCombat
                 .CombatHeroController.playerHeroEntity.GameObject.transform);
-            List<EventConfig> eventConfigs = EventSystemManager.Instance.DetectEvents(1);
+            List<EventConfig> eventConfigs = EventSystemManager.Instance.UseDivinesense(1);
             if (eventConfigs == null || eventConfigs.Count == 0)
                 return;
             for (var i = 0; i < eventConfigs.Count; i++)
@@ -53,7 +72,6 @@ namespace Fort23.Mono
             {
                 EventSystemManager.Instance.DetectRandomEvents();
             }
-                
         }
 
         public async static CTask OpenPanel()

+ 11 - 0
Assets/Scripts/GameUI/UI/MainPanel/MainPanelData.cs

@@ -41,6 +41,17 @@ namespace Fort23.Mono
 	      return _ShengShiEventWidget;
 	     }
 	   }
+	  private Text _Text_divineSensePoint;
+	  public Text Text_divineSensePoint
+	   {
+	   get{
+	      if (_Text_divineSensePoint == null)
+	       {
+	         _Text_divineSensePoint  = GetUIUnit<Text>("Text_divineSensePoint"); 
+	       }
+	      return _Text_divineSensePoint;
+	     }
+	   }
 	  #endregion 自定义数据结束 
 	 public override async CTask SetUIGameObject(GameObject gObjectPoolInterface)
 	{

+ 8 - 0
Assets/Scripts/GameUI/UI/TipMessagePanel.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: DSwW4S//An5oIfV4GOen6ys+l7i0941P51cQlPYakE0vyDwS7xSzxEco+ted
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 107 - 0
Assets/Scripts/GameUI/UI/TipMessagePanel/TipMessagePanel.cs

@@ -0,0 +1,107 @@
+using Core.Language;
+using Fort23.Core;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Fort23.Mono
+{
+    [UIBinding(prefab = "TipMessagePanel")]
+    public partial class TipMessagePanel : UIPanel
+    {
+        public static async void OpenTipMessagePanel(string meg, Vector2 worldPos = default)
+        {
+            TipMessagePanel tipMessagePanel =
+                await UIManager.Instance.LoadAndOpenPanel<TipMessagePanel>(null, UILayer.Top);
+            tipMessagePanel.SetTipMessage(meg, worldPos);
+        }
+
+        public static async void OpenTipMessagePanel(int meg, Vector2 worldPos = default)
+        {
+            TipMessagePanel tipMessagePanel =
+                await UIManager.Instance.LoadAndOpenPanel<TipMessagePanel>(null, UILayer.Top);
+            tipMessagePanel.SetTipMessage(LanguageManager.Instance.Text(meg), worldPos);
+        }
+
+        public override async CTask Open()
+        {
+            await base.Open();
+            GObjectPoolInterface.SetActive(false);
+        }
+
+        private void Init()
+        {
+        }
+
+        protected override void AddEvent()
+        {
+        }
+
+        protected override void DelEvent()
+        {
+        }
+
+        public override void AddButtonEvent()
+        {
+            button_bg.onClick.AddListener(OnClickButton_bg);
+        }
+
+        private void OnClickButton_bg()
+        {
+            UIManager.Instance.HideUIUIPanel(this);
+        }
+
+        public async void SetTipMessage(string msg, Vector2 pos)
+        {
+            pos = this.transform.worldToLocalMatrix * pos;
+            if (pos.x > 186)
+            {
+                pos.x = 186;
+            }
+
+            if (pos.x < -186)
+            {
+                pos.x = -186;
+            }
+
+            GObjectPoolInterface.SetActive(true);
+            message.text = msg;
+            RectTransform rectTransform = message.GetComponent<RectTransform>();
+            message.SetLayoutDirty();
+            //message.OnRebuildRequested();
+            LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
+            LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform);
+            rectTransform.GetComponent<ContentSizeFitter>().SetLayoutVertical();
+            RectTransform bgTran = bg_icon.GetComponent<RectTransform>();
+            // await TimerComponent.Instance.WaitAsync(100);
+
+            // float y2 = LayoutUtility.GetPreferredSize(rectTransform, 0) + 40;
+            // message.OnRebuildRequested();
+            // massge.OnRebuildRequested();
+            float y = rectTransform.sizeDelta.y + 40;
+            if (y < 100)
+            {
+                y = 100;
+            }
+
+            bgTran.sizeDelta = new Vector2(bgTran.sizeDelta.x, y);
+
+            float maxY = this.transform.sizeDelta.y / 2;
+            float my2 = y / 2;
+
+            if (pos.y > maxY - my2)
+            {
+                pos.y = maxY - my2;
+            }
+
+            if (pos.y < my2 - maxY)
+            {
+                pos.y = my2 - maxY;
+            }
+
+            dotPoint.anchoredPosition = pos;
+            LayoutRebuilder.MarkLayoutForRebuild(bgTran);
+            LayoutRebuilder.ForceRebuildLayoutImmediate(bgTran);
+            GObjectPoolInterface.SetActive(true);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/GameUI/UI/TipMessagePanel/TipMessagePanel.cs.meta

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

+ 62 - 0
Assets/Scripts/GameUI/UI/TipMessagePanel/TipMessagePanelData.cs

@@ -0,0 +1,62 @@
+using Fort23.Core;
+using Fort23.UTool;
+using UnityEngine.UI;
+using UnityEngine;
+using System.Collections.Generic;
+namespace Fort23.Mono
+{
+	public partial class TipMessagePanel 
+	{
+	  #region 自定义数据 
+	  private Text _message;
+	  public Text message
+	   {
+	   get{
+	      if (_message == null)
+	       {
+	         _message  = GetUIUnit<Text>("message"); 
+	       }
+	      return _message;
+	     }
+	   }
+	  private RectTransform _dotPoint;
+	  public RectTransform dotPoint
+	   {
+	   get{
+	      if (_dotPoint == null)
+	       {
+	         _dotPoint  = GetUIUnit<RectTransform>("dotPoint"); 
+	       }
+	      return _dotPoint;
+	     }
+	   }
+	  private MyImage _bg_icon;
+	  public MyImage bg_icon
+	   {
+	   get{
+	      if (_bg_icon == null)
+	       {
+	         _bg_icon  = GetUIUnit<MyImage>("bg_icon"); 
+	       }
+	      return _bg_icon;
+	     }
+	   }
+	  private Button _button_bg;
+	  public Button button_bg
+	   {
+	   get{
+	      if (_button_bg == null)
+	       {
+	         _button_bg  = GetUIUnit<Button>("button_bg"); 
+	       }
+	      return _button_bg;
+	     }
+	   }
+	  #endregion 自定义数据结束 
+	 public override async CTask SetUIGameObject(GameObject gObjectPoolInterface)
+	{
+	 await base.SetUIGameObject(gObjectPoolInterface);
+	 Init();
+	}
+	}
+}

+ 11 - 0
Assets/Scripts/GameUI/UI/TipMessagePanel/TipMessagePanelData.cs.meta

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

文件差异内容过多而无法显示
+ 0 - 0
Assets/StreamingAssets/assetConfig.txt


部分文件因为文件数量过多而无法显示