Browse Source

添加战报

DESKTOP-FB72PO8\Administrator 2 weeks ago
parent
commit
f9b5d1e2d7

+ 99 - 10
Assets/Editor/CombatEditor/CombaReportEnditorManager.cs

@@ -1,15 +1,23 @@
 using System.Collections;
 using System.Collections.Generic;
+
+using GameLogic.Combat.CombatTool.CombatReport;
 using UnityEditor;
 using UnityEngine;
 using UnityEngine.UIElements;
+using xy002Editor.CombatEditor;
 
 public class CombaReportEnditorManager : EditorWindow
 {
-    [SerializeField]
-    private VisualTreeAsset m_VisualTreeAsset = default;
+    [SerializeField] private VisualTreeAsset visualTreeAsset;
+    private Dictionary<string, StyleSheet> allStyleSheets = new Dictionary<string, StyleSheet>();
+    public Foldout myHeroRoot;
+    public Foldout enemyHeroRoot;
+
+    private Dictionary<CombatReportEntityInfo, HeroEntityCombatReport> allHeroReportEditors =
+        new Dictionary<CombatReportEntityInfo, HeroEntityCombatReport>();
 
-    [MenuItem("Window/UI Toolkit/CombatR")]
+    [MenuItem("CombatData/实时战报分析")]
     public static void ShowExample()
     {
         CombaReportEnditorManager wnd = GetWindow<CombaReportEnditorManager>();
@@ -20,14 +28,95 @@ public class CombaReportEnditorManager : EditorWindow
     {
         // Each editor window contains a root VisualElement object
         VisualElement root = rootVisualElement;
+        visualTreeAsset = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/Editor/UIAsset/CombatR.uxml");
+        foreach (var UPPER in visualTreeAsset.stylesheets)
+        {
+            allStyleSheets.Add(UPPER.name, UPPER);
+        }
+
+        ScrollView scrollView = new ScrollView();
+        root.Add(scrollView);
+        myHeroRoot = Copy<Foldout>("foldout_style");
+        root.Add(myHeroRoot);
+
+        enemyHeroRoot = Copy<Foldout>("foldout_style");
+        root.Add(enemyHeroRoot);
+    }
+
+    public T Copy<T>(string name) where T : VisualElement, new()
+    {
+        T root1 = new T();
+        // root1.styleSheets.Clear();
+        
+        StyleSheet styleSheet = GetUUS("CombatR");
+        
+        if (styleSheet != null)
+        {
+            root1.styleSheets.Add(styleSheet);
+        }
+
+        root1.AddToClassList(name);
+        root1.visible = true;
+        return root1;
+    }
+
+    public StyleSheet GetUUS(string name)
+    {
+        if (allStyleSheets.ContainsKey(name))
+        {
+            return allStyleSheets[name];
+        }
+
+        return null;
+    }
+
+    private void CretaHeroEditor(CombatReportEntityInfo combatReportHeroInfo)
+    {
+        HeroEntityCombatReport heroReportEditor = new HeroEntityCombatReport();
+
+        heroReportEditor.Init(combatReportHeroInfo, this);
+
+
+        allHeroReportEditors.Add(combatReportHeroInfo, heroReportEditor);
+    }
+    private void Update()
+    {
+        Repaint();
+    }
+
+
+    private void OnGUI()
+    {
+        foreach (var VARIABLE in allHeroReportEditors.Values)
+        {
+            VARIABLE.OnGUI();
+        }
+
+        List<CombatReportEntityInfo> allCombatReportInfo = CombatReportManager.Instance.allCombatReportInfo;
+        List<CombatReportEntityInfo> remove = new List<CombatReportEntityInfo>();
+
+
+
+        for (int i = 0; i < allCombatReportInfo.Count; i++)
+        {
+            if (!allHeroReportEditors.ContainsKey(allCombatReportInfo[i]))
+            {
+                CretaHeroEditor(allCombatReportInfo[i]);
+            }
+        }
 
-        // VisualElements objects can contain other VisualElement following a tree hierarchy.
-        VisualElement label = new Label("Hello World! From C#");
-        root.Add(label);
+        foreach (var UPPER in allHeroReportEditors.Keys)
+        {
+            if (!allCombatReportInfo.Contains(UPPER))
+            {
+                allHeroReportEditors[UPPER].Dispose();
+                remove.Add(UPPER);
+            }
+        }
 
-        // Instantiate UXML
-        VisualElement labelFromUXML = m_VisualTreeAsset.Instantiate();
-        root.Add(labelFromUXML);
+        for (int i = 0; i < remove.Count; i++)
+        {
+            allHeroReportEditors.Remove(remove[i]);
+        }
     }
-    
 }

+ 16 - 2
Assets/Editor/CombatEditor/CombatEditor.asmdef

@@ -1,3 +1,17 @@
 {
-	"name": "CombatEditor"
-}
+    "name": "CombatEditor",
+    "rootNamespace": "xy002Editor",
+    "references": [
+        "Fort23.GameLogic",
+        "Fort23.Core"
+    ],
+    "includePlatforms": [],
+    "excludePlatforms": [],
+    "allowUnsafeCode": false,
+    "overrideReferences": false,
+    "precompiledReferences": [],
+    "autoReferenced": true,
+    "defineConstraints": [],
+    "versionDefines": [],
+    "noEngineReferences": false
+}

+ 52 - 0
Assets/Editor/CombatEditor/CombatPeportMassgeModle.cs

@@ -0,0 +1,52 @@
+using System.Text;
+using Core.BattleReport;
+using GameLogic.Combat.CombatTool.CombatReport;
+using UnityEngine.UIElements;
+
+namespace xy002Editor.CombatEditor
+{
+    public class CombatPeportMassgeModle
+    {
+        private string sxV = "";
+        private Label label;
+
+        private StringBuilder stringBuilder;
+        private CombatReportEntityInfo combatReportEntityInfo;
+
+        public void Init(VisualElement root, CombatReportEntityInfo combatReportEntityInfo,
+            CombaReportEnditorManager combaReportEnditorManager)
+        {
+            this.combatReportEntityInfo = combatReportEntityInfo;
+            TextField textField = new TextField();
+            textField.label = "筛选信息";
+            textField.RegisterValueChangedCallback((e) => { sxV = e.newValue; });
+            root.Add(textField);
+            ScrollView miaoshu = combaReportEnditorManager.Copy<ScrollView>("value_scrollview");
+            root.Add(miaoshu);
+            label = new Label();
+            miaoshu.Add(label);
+            stringBuilder = new StringBuilder();
+        }
+
+        public void OnGui()
+        {
+            stringBuilder.Clear();
+            for (int i = 0; i < combatReportEntityInfo.MsgModule.ReportFightMassgeLogDatas.Count; i++)
+            {
+                ReportFightMassgeLogData reportFightMassgeLogData =
+                    combatReportEntityInfo.MsgModule.ReportFightMassgeLogDatas[i];
+                if (!string.IsNullOrEmpty(sxV))
+                {
+                    if (!reportFightMassgeLogData.msg.Contains(sxV))
+                    {
+                        continue;
+                    }
+                }
+
+                stringBuilder.Append(reportFightMassgeLogData.time + "    " + reportFightMassgeLogData.msg + "\n");
+            }
+
+            label.text = stringBuilder.ToString();
+        }
+    }
+}

+ 3 - 0
Assets/Editor/CombatEditor/CombatPeportMassgeModle.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 3e709b0d6ab64c59b10a7ff42fc0c59f
+timeCreated: 1745995794

+ 156 - 0
Assets/Editor/CombatEditor/HeroEntityCombatReport.cs

@@ -0,0 +1,156 @@
+using System;
+using System.Collections.Generic;
+using Core.BattleReport;
+using GameLogic.Combat.CombatTool.CombatReport;
+using UnityEngine;
+using UnityEngine.UIElements;
+using static System.Drawing.FontStyle;
+
+namespace xy002Editor.CombatEditor
+{
+    public class HeroEntityCombatReport : IDisposable
+    {
+        // public CombaReportEnditorManager manager;
+
+        private CombatReportEntityInfo combatReportEntityInfo;
+        private Foldout foldout;
+        private CombaReportEnditorManager combaReportEnditorManager;
+        public Foldout root;
+
+        private ProgressBarShowModle cjShuXing;
+        private ProgressBarShowModle shangHangXingXi;
+        private ProgressBarShowModle zhiLiaoModle;
+        private ProgressBarShowModle shouDaoShangHangXingXi;
+        private CombatPeportMassgeModle combatPeportMassgeModle;
+
+        public Foldout miaoShuFoldout;
+        public void Init(CombatReportEntityInfo combatReportEntityInfo,
+            CombaReportEnditorManager combaReportEnditorManager)
+        {
+            this.combaReportEnditorManager = combaReportEnditorManager;
+            this.combatReportEntityInfo = combatReportEntityInfo;
+            InitUI();
+        }
+
+        private void InitUI()
+        {
+            this.foldout = new Foldout();
+            foldout.text =
+                $"ID:{combatReportEntityInfo.CombatHeroEntity.CurrCombatHeroInfo.modelID}";
+            // foldout.style.display = combatNewEditorWindow.heroData.style.display;
+            // foldout.style.marginLeft;
+            foldout.style.fontSize = 12;
+            // foldout.style.unityFontStyleAndWeight = Bold;
+            foldout.value = false;
+            if (combatReportEntityInfo.CombatHeroEntity.IsEnemy)
+            {
+                root = combaReportEnditorManager.enemyHeroRoot;
+            }
+            else
+            {
+                root = combaReportEnditorManager.myHeroRoot;
+            }
+
+            root.Add(foldout);
+            VisualElement visualElement_h = new VisualElement();
+            // VisualElement visualElement_h =combaReportEnditorManager.Copy<VisualElement>("hengxiang"); 
+            foldout.Add(visualElement_h);
+            VisualElement visualElement_v = combaReportEnditorManager.Copy<VisualElement>("value_data_entity_style"); //英雄信息
+            visualElement_h.Add(visualElement_v);
+            Label label = new Label();
+            label.text = "玩家名" + combatReportEntityInfo.CombatHeroEntity.CurrCombatHeroInfo.heroName;
+            visualElement_v.Add(label);
+             label = new Label();
+            label.text = "等级" + combatReportEntityInfo.CombatHeroEntity.CurrCombatHeroInfo.level;
+            visualElement_v.Add(label);
+            
+            ScrollView ScrollView = combaReportEnditorManager.Copy<ScrollView>("value_scrollview");
+
+            foldout.Add(ScrollView);
+
+
+            Foldout foldout1 = combaReportEnditorManager.Copy<Foldout>("foldout_style2");
+            foldout1.text = "英雄属性";
+            foldout1.style.unityFontStyleAndWeight = FontStyle.Bold;
+            foldout1.value = false;
+            visualElement_h.Add(foldout1);
+            VisualElement progressVe = combaReportEnditorManager.Copy<VisualElement>("value_data_style2");
+            foldout1.Add(progressVe);
+            cjShuXing = new ProgressBarShowModle(progressVe, combaReportEnditorManager);
+
+
+            foldout1 = combaReportEnditorManager.Copy<Foldout>("foldout_style");
+            foldout1.text = "照成伤害信息";
+            foldout1.style.unityFontStyleAndWeight = FontStyle.Bold;
+            foldout1.value = false;
+            visualElement_h.Add(foldout1);
+            progressVe = combaReportEnditorManager.Copy<VisualElement>("value_data_style");
+            foldout1.Add(progressVe);
+            shangHangXingXi = new ProgressBarShowModle(progressVe, combaReportEnditorManager);
+
+            foldout1 = combaReportEnditorManager.Copy<Foldout>("foldout_style");
+            foldout1.text = "治疗和被治疗信息";
+            foldout1.style.unityFontStyleAndWeight = FontStyle.Bold;
+            foldout1.value = false;
+            visualElement_h.Add(foldout1);
+            progressVe = combaReportEnditorManager.Copy<VisualElement>("value_data_style");
+            foldout1.Add(progressVe);
+            zhiLiaoModle = new ProgressBarShowModle(progressVe, combaReportEnditorManager);
+
+
+            foldout1 = combaReportEnditorManager.Copy<Foldout>("foldout_style");
+            foldout1.text = "受到伤害信息";
+            foldout1.style.unityFontStyleAndWeight = FontStyle.Bold;
+            foldout1.value = false;
+            visualElement_h.Add(foldout1);
+            progressVe = combaReportEnditorManager.Copy<VisualElement>("value_data_style");
+            foldout1.Add(progressVe);
+            shouDaoShangHangXingXi = new ProgressBarShowModle(progressVe, combaReportEnditorManager);
+
+
+            miaoShuFoldout = combaReportEnditorManager.Copy<Foldout>("foldout_style");
+            miaoShuFoldout.text = "战斗描述";
+            miaoShuFoldout.style.unityFontStyleAndWeight = FontStyle.Bold;
+            miaoShuFoldout.value = false;
+            visualElement_h.Add(miaoShuFoldout);
+            VisualElement miaoshuve = combaReportEnditorManager.Copy<VisualElement>("miaoshuve"); //英雄信息
+            miaoShuFoldout.Add(miaoshuve);
+            combatPeportMassgeModle=new CombatPeportMassgeModle();
+            combatPeportMassgeModle.Init(miaoshuve, combatReportEntityInfo, combaReportEnditorManager);
+        }
+
+        public void OnGUI()
+        {
+            if (!foldout.value)
+            {
+                return;
+            }
+
+            DrwaBattleReportValueDataModule(combatReportEntityInfo.HeroInfoModule, cjShuXing);
+            DrwaBattleReportValueDataModule(combatReportEntityInfo.zhiLiao, zhiLiaoModle);
+            DrwaBattleReportValueDataModule(combatReportEntityInfo.CombatInfoModule, shangHangXingXi);
+            DrwaBattleReportValueDataModule(combatReportEntityInfo.InjuredInfoModule, shouDaoShangHangXingXi);
+            
+            if (miaoShuFoldout.value)
+            {
+                combatPeportMassgeModle.OnGui();
+            }
+        }
+
+        private void DrwaBattleReportValueDataModule(BattleReportValueDataModule battleReportValueDataModule,
+            ProgressBarShowModle progressBarShowModle)
+        {
+            foreach (var VARIABLE in battleReportValueDataModule.fightValueData_long.Values)
+            {
+                ReportFightValueData<long> reportFightValueData = VARIABLE;
+                progressBarShowModle.CrendHarmValue(reportFightValueData.name, reportFightValueData.value,
+                    reportFightValueData.maxValue);
+            }
+        }
+
+        public void Dispose()
+        {
+            combatReportEntityInfo = null;
+        }
+    }
+}

+ 3 - 0
Assets/Editor/CombatEditor/HeroEntityCombatReport.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 53cb277152ab4bc2b25994bd6bad0451
+timeCreated: 1745979797

+ 11 - 0
Assets/Editor/CombatEditor/HeroValueReport.cs

@@ -0,0 +1,11 @@
+using UnityEngine.UIElements;
+
+namespace xy002Editor.CombatEditor
+{
+    public class HeroValueReport
+    {
+        public  ProgressBar progressBar ;
+        public Label Label;
+        public VisualElement root;
+    }
+}

+ 3 - 0
Assets/Editor/CombatEditor/HeroValueReport.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 500eb2e8a7504f22a6dfa00dc3aaa688
+timeCreated: 1745983305

+ 47 - 0
Assets/Editor/CombatEditor/ProgressBarShowModle.cs

@@ -0,0 +1,47 @@
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UIElements;
+
+namespace xy002Editor.CombatEditor
+{
+    public class ProgressBarShowModle
+    {
+        public VisualElement root;
+        private Dictionary<string, HeroValueReport> valueReprot = new Dictionary<string, HeroValueReport>();
+        public CombaReportEnditorManager manager;
+
+        public ProgressBarShowModle(VisualElement root, CombaReportEnditorManager manager)
+        {
+            this.root = root;
+            this.manager = manager;
+        }
+
+        public void CrendHarmValue(string vname, float currValue, float maxValue)
+        {
+            if (valueReprot.TryGetValue(vname, out HeroValueReport heroValueReport))
+            {
+                heroValueReport.progressBar.title = currValue.ToString();
+                heroValueReport.progressBar.lowValue = currValue;
+                heroValueReport.progressBar.highValue = maxValue;
+            }
+            else
+            {
+                heroValueReport = new HeroValueReport();
+                VisualElement herovaluegrid = manager.Copy<VisualElement>("value_data_entity_style");
+                root.Add(herovaluegrid);
+                Label testv = manager.Copy<Label>("valuename");
+                testv.text = vname;
+                testv.style.unityFontStyleAndWeight = FontStyle.Bold;
+                testv.style.color = Color.magenta;
+                herovaluegrid.Add(testv);
+                ProgressBar progressBar = manager.Copy<ProgressBar>("valuebar");
+                progressBar.title = currValue.ToString();
+                progressBar.lowValue = currValue;
+                progressBar.highValue = maxValue;
+                herovaluegrid.Add(progressBar);
+                heroValueReport.progressBar = progressBar;
+                valueReprot.Add(vname, heroValueReport);
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Editor/CombatEditor/ProgressBarShowModle.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 8bd2acf3fbce485c9f57a925aae294ee
+timeCreated: 1745983400

+ 23 - 10
Assets/Editor/UIAsset/CombatR.uss

@@ -27,20 +27,11 @@
 .value_list_style {
 }
 
-.visualElement_h {
-    flex-grow: 1;
-    align-self: flex-start;
-    align-items: flex-start;
-    justify-content: space-around;
-    width: 100%;
-    flex-direction: row;
-}
-
 .visualElement_v {
     flex-grow: 1;
     width: auto;
     max-width: none;
-    align-items: flex-start;
+    align-items: stretch;
     align-self: auto;
     min-width: 30%;
     flex-basis: auto;
@@ -49,3 +40,25 @@
     opacity: 1;
     margin-left: 0;
 }
+
+.valuebar {
+    max-width: 100px;
+    flex-direction: column;
+    flex-wrap: wrap;
+    min-width: 100px;
+}
+
+.valuename {
+}
+
+.hengxiang {
+    width: auto;
+    justify-content: flex-start;
+    align-self: auto;
+    flex-direction: row;
+}
+
+.miaoshuve {
+    flex-grow: 1;
+    max-height: 300px;
+}

+ 6 - 3
Assets/Editor/UIAsset/CombatR.uxml

@@ -1,7 +1,7 @@
 <ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
     <Style src="project://database/Assets/Editor/UIAsset/CombatR.uss?fileID=7433441132597879392&amp;guid=834f076e9de78254a915d3bcc179e7c8&amp;type=3#CombatR" />
     <ui:Foldout text="Foldout" name="Foldout" view-data-key="foldout_" class="foldout_style">
-        <ui:VisualElement class="visualElement_h">
+        <ui:VisualElement class="hengxiang">
             <ui:VisualElement name="VisualElement" class="visualElement_v">
                 <ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" name="Label" view-data-key="heroname" style="width: 30%;" />
                 <ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" name="Label" view-data-key="herolevel" style="width: 30%;" />
@@ -10,11 +10,14 @@
                 <ui:Foldout text="Foldout">
                     <ui:VisualElement name="VisualElement" class="value_data_style">
                         <ui:VisualElement class="value_data_entity_style">
-                            <ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" />
-                            <ui:ProgressBar value="73.8" title="my-progress" name="ProgressBar" style="max-width: 100px; flex-direction: column; flex-wrap: wrap;" />
+                            <ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" class="valuename" />
+                            <ui:ProgressBar value="73.8" title="my-progress" name="ProgressBar" class="valuebar valuename2" />
                         </ui:VisualElement>
                     </ui:VisualElement>
                 </ui:Foldout>
+                <ui:VisualElement class="miaoshuve">
+                    <ui:TextField picking-mode="Ignore" label="Text Field" value="filler text" />
+                </ui:VisualElement>
             </ui:ScrollView>
         </ui:VisualElement>
     </ui:Foldout>

+ 1 - 0
Assets/Scripts/Core/BattleReport/ReportFightValueData.cs

@@ -7,5 +7,6 @@ namespace Core.BattleReport
         public string name;
         public T value;
         public T maxValue;
+        public int bl = 1;
     }
 }

+ 2 - 0
Assets/Scripts/GameLogic/Combat/CombatState/CombatFightState.cs

@@ -1,4 +1,5 @@
 using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.CombatTool.CombatReport;
 using GameLogic.Combat.Hero;
 using UnityEngine;
 
@@ -17,6 +18,7 @@ namespace GameLogic.Combat.CombatState
             CombatController.CombatCameraControllder.isStop = true;
             CombatController.IsFightState = true;
             CombatController.currActiveCombat.CombatCameraControllder.SetFieldOfView(55,3);
+            CombatReportManager.Instance.AddCombatReportInfo(playerHeroEntity);
         }
 
         protected override void ProExit()

+ 7 - 2
Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport/CombatReportEntityInfo.cs

@@ -22,6 +22,11 @@ namespace GameLogic.Combat.CombatTool.CombatReport
         /// </summary>
         public BattleReportValueDataModule CombatInfoModule = new BattleReportValueDataModule();
 
+        /// <summary>
+        /// 治疗信息
+        /// </summary>
+        public BattleReportValueDataModule zhiLiao = new BattleReportValueDataModule();
+
         /// <summary>
         /// 战斗受到伤害信息面板
         /// </summary>
@@ -58,7 +63,7 @@ namespace GameLogic.Combat.CombatTool.CombatReport
                     harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name);
                 }
 
-                CombatInfoModule.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att);
+                zhiLiao.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att);
             }
             else if (recoverUpdateEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
             {
@@ -75,7 +80,7 @@ namespace GameLogic.Combat.CombatTool.CombatReport
                     harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name);
                 }
 
-                InjuredInfoModule.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att);
+                zhiLiao.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att);
             }
         }
 

File diff suppressed because it is too large
+ 143 - 668
UserSettings/Layouts/default-2022.dwlt


+ 6 - 1
XiuXianGame.sln.DotSettings.user

@@ -1,4 +1,5 @@
 <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAbstractProgressBar_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F56d039fe633a4adf8fb266a0b1797e6c17a000_003F40_003Fd60d7bd8_003FAbstractProgressBar_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACollectionExtensions_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fde80aed0bd3646409e8bfb15c101f005e2000_003Fb3_003F5c77f01e_003FCollectionExtensions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACollider_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F2193ba18cb0546b2832917f7674384cf20000_003F3a_003Fa0da6a1e_003FCollider_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACompareFunction_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F84_003Ff4158f3a_003FCompareFunction_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@@ -6,6 +7,7 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEnumerable_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Ff2b6204eed6b41348236173e8a2f539817a880_003F16_003Ff8f742c5_003FEnumerable_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AExceptionDispatchInfo_002Ecs_002Fl_003AC_0021_003FUsers_003Fadmin_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003Fd3_003F4533b7c3_003FExceptionDispatchInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AINotifyCompletion_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9c2967a135e648bdb993c5397a44991b573620_003F64_003Fbb31faf9_003FINotifyCompletion_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIStyle_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F56d039fe633a4adf8fb266a0b1797e6c17a000_003F0f_003F32e1f086_003FIStyle_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ALayerMask_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F6c_003F2226b399_003FLayerMask_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMath_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb18a8b3398e74bca86895881dd02956c573648_003F8b_003F8699ce4e_003FMath_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMesh_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003Fde_003Fb0e5d275_003FMesh_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@@ -16,10 +18,13 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARandom_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9c2967a135e648bdb993c5397a44991b573620_003F9f_003F293a2b71_003FRandom_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARandom_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb18a8b3398e74bca86895881dd02956c573648_003F4c_003Fb5eddf34_003FRandom_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASingle_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb18a8b3398e74bca86895881dd02956c573648_003F16_003F2be7d3ed_003FSingle_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AStyleSheet_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F56d039fe633a4adf8fb266a0b1797e6c17a000_003Fcb_003Fe0e387fe_003FStyleSheet_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003F3b_003F1a234af4_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATrailRenderer_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003Fe4_003F6073d988_003FTrailRenderer_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATransform_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F66_003F966ef437_003FTransform_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AUndo_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F1f63769030ae497a94b35af8517071579d5a00_003Fff_003Fe1991d08_003FUndo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVector3_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F2008d2d6093f4149aaeafd5f414aa7a517c400_003F01_003F0ef8dd4a_003FVector3_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVector3_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003Fe4_003F8efb9845_003FVector3_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
-	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVector3_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F2008d2d6093f4149aaeafd5f414aa7a517c400_003Fd3_003F23d17a83_003FVector3_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVector3_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F2008d2d6093f4149aaeafd5f414aa7a517c400_003Fd3_003F23d17a83_003FVector3_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVisualElement_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F56d039fe633a4adf8fb266a0b1797e6c17a000_003Ffe_003Fe2beea8c_003FVisualElement_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVisualTreeAsset_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F56d039fe633a4adf8fb266a0b1797e6c17a000_003F42_003F6fa4298f_003FVisualTreeAsset_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>

Some files were not shown because too many files changed in this diff