DESKTOP-FB72PO8\Administrator vor 4 Monaten
Ursprung
Commit
938b4e44ed

+ 20 - 4
Assets/Res/Config/HeroModelConfig.json

@@ -23,7 +23,11 @@
       "range_atk": 3,
       "skillID": [
         1001,
-        10001
+        10001,
+        10002,
+        10003,
+        10004,
+        10005
       ],
       "heroStory": null
     },
@@ -50,7 +54,11 @@
       "range_atk": 5,
       "skillID": [
         1001,
-        30001
+        30001,
+        30002,
+        30003,
+        30004,
+        30005
       ],
       "heroStory": null
     },
@@ -77,7 +85,11 @@
       "range_atk": 5,
       "skillID": [
         1001,
-        20001
+        20001,
+        20002,
+        20003,
+        20004,
+        20005
       ],
       "heroStory": null
     },
@@ -104,7 +116,11 @@
       "range_atk": 5,
       "skillID": [
         1001,
-        40001
+        40001,
+        40002,
+        40003,
+        40004,
+        40005
       ],
       "heroStory": null
     },

+ 16 - 16
Assets/Res/Config/SkillConfig.json

@@ -821,7 +821,7 @@
     {
       "ID": 200041,
       "icon": "",
-      "scriptName": "S20004",
+      "scriptName": "",
       "IDGroup": 20004,
       "cd": null,
       "SkillType": 4,
@@ -836,7 +836,7 @@
     {
       "ID": 200042,
       "icon": "",
-      "scriptName": "S20004",
+      "scriptName": "",
       "IDGroup": 20004,
       "cd": null,
       "SkillType": 4,
@@ -851,7 +851,7 @@
     {
       "ID": 200043,
       "icon": "",
-      "scriptName": "S20004",
+      "scriptName": "",
       "IDGroup": 20004,
       "cd": null,
       "SkillType": 4,
@@ -866,7 +866,7 @@
     {
       "ID": 200044,
       "icon": "",
-      "scriptName": "S20004",
+      "scriptName": "",
       "IDGroup": 20004,
       "cd": null,
       "SkillType": 4,
@@ -881,7 +881,7 @@
     {
       "ID": 200051,
       "icon": "",
-      "scriptName": "S20005",
+      "scriptName": "",
       "IDGroup": 20005,
       "cd": null,
       "SkillType": 4,
@@ -895,7 +895,7 @@
     {
       "ID": 200052,
       "icon": "",
-      "scriptName": "S20005",
+      "scriptName": "",
       "IDGroup": 20005,
       "cd": null,
       "SkillType": 4,
@@ -909,7 +909,7 @@
     {
       "ID": 200053,
       "icon": "",
-      "scriptName": "S20005",
+      "scriptName": "",
       "IDGroup": 20005,
       "cd": null,
       "SkillType": 4,
@@ -923,7 +923,7 @@
     {
       "ID": 200054,
       "icon": "",
-      "scriptName": "S20005",
+      "scriptName": "",
       "IDGroup": 20005,
       "cd": null,
       "SkillType": 4,
@@ -1129,7 +1129,7 @@
     {
       "ID": 400041,
       "icon": "",
-      "scriptName": "S40004",
+      "scriptName": "",
       "IDGroup": 40004,
       "cd": null,
       "SkillType": 4,
@@ -1143,7 +1143,7 @@
     {
       "ID": 400042,
       "icon": "",
-      "scriptName": "S40004",
+      "scriptName": "",
       "IDGroup": 40004,
       "cd": null,
       "SkillType": 4,
@@ -1157,7 +1157,7 @@
     {
       "ID": 400043,
       "icon": "",
-      "scriptName": "S40004",
+      "scriptName": "",
       "IDGroup": 40004,
       "cd": null,
       "SkillType": 4,
@@ -1171,7 +1171,7 @@
     {
       "ID": 400044,
       "icon": "",
-      "scriptName": "S40004",
+      "scriptName": "",
       "IDGroup": 40004,
       "cd": null,
       "SkillType": 4,
@@ -1185,7 +1185,7 @@
     {
       "ID": 400051,
       "icon": "",
-      "scriptName": "S40005",
+      "scriptName": "",
       "IDGroup": 40005,
       "cd": null,
       "SkillType": 4,
@@ -1200,7 +1200,7 @@
     {
       "ID": 400052,
       "icon": "",
-      "scriptName": "S40005",
+      "scriptName": "",
       "IDGroup": 40005,
       "cd": null,
       "SkillType": 4,
@@ -1215,7 +1215,7 @@
     {
       "ID": 400053,
       "icon": "",
-      "scriptName": "S40005",
+      "scriptName": "",
       "IDGroup": 40005,
       "cd": null,
       "SkillType": 4,
@@ -1230,7 +1230,7 @@
     {
       "ID": 400054,
       "icon": "",
-      "scriptName": "S40005",
+      "scriptName": "",
       "IDGroup": 40005,
       "cd": null,
       "SkillType": 4,

+ 2 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/CombatHeroController.cs

@@ -84,6 +84,8 @@ namespace GameLogic.Combat.CombatTool
             combatHeroEntity.MaxCombatHeroInfo.attack = combatHeroInfo.attack;
             combatHeroEntity.CurrCombatHeroInfo.defense = combatHeroInfo.defense;
             combatHeroEntity.CurrCombatHeroInfo.attack = combatHeroInfo.attack;
+            combatHeroEntity.CurrCombatHeroInfo.unLockSkills=combatHeroInfo.unLockSkills;
+            combatHeroEntity.MaxCombatHeroInfo.unLockSkills=combatHeroInfo.unLockSkills;
             if (!combatHeroEntity.isDie)
             {
                 if (addHp > 0)

+ 111 - 18
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroInfo.cs

@@ -4,6 +4,7 @@ using Core.Language;
 using Core.Utility;
 using Excel2Json;
 using Fort23.UTool;
+using GameLogic.Combat.CombatTool;
 using GameLogic.Hero;
 using UnityEngine;
 using UnityEngine.Serialization;
@@ -12,29 +13,36 @@ using Utility;
 [System.Serializable]
 public class CombatHeroInfo
 {
-    
+    public enum AttributeType
+    {
+        Hp,
+        Att,
+        Def,
+    }
+
     public int modelID;
     public EncryptionLong hp = new EncryptionLong();
     public EncryptionLong defense = new EncryptionLong();
     public EncryptionLong attack = new EncryptionLong();
+
     /// <summary>
     /// 闪避 evasion
     /// </summary>
-    public EncryptionInt shanbi = new EncryptionInt(); 
-    
+    public EncryptionInt shanbi = new EncryptionInt();
+
     /// <summary>
     /// 经验产出
     /// </summary>
     public EncryptionLong expGain = new EncryptionLong();
-    
+
     public EncryptionFloat attSpeed = new EncryptionFloat();
-    public EncryptionFloat crit =new EncryptionFloat();
-    public EncryptionFloat critDamage =new EncryptionFloat();
+    public EncryptionFloat crit = new EncryptionFloat();
+    public EncryptionFloat critDamage = new EncryptionFloat();
     // public EncryptionFloat dodge = new EncryptionFloat();
 
     public EncryptionInt level;
     public EncryptionInt star;
-    
+
     public HeroModelConfig modelConfig;
 
     public HeroPowerUpConfig powerUpConfig;
@@ -45,32 +53,39 @@ public class CombatHeroInfo
     /// 减少收到的暴击伤害
     /// </summary>
     public float reduceHitCritDamage;
+
     /// <summary>
     /// 减少收到的伤害
     /// </summary>
     public float reduceHitDamage;
+
     /// <summary>
     /// 技能暴击伤害
     /// </summary>
     public float skillCritDamage;
+
     /// <summary>
     /// 闪避 默认10%的几率
     /// </summary>
-    public float dodge=10;
+    public float dodge = 10;
+
     /// <summary>
     /// 1=英雄 2=小怪 3=精英怪 4=boss
     /// </summary>
     public int heroType;
 
     public string modelName;
-    public float maxDis=2;
-    public float maxDisTo=2*2;
+    public float maxDis = 2;
+
+    public float maxDisTo = 2 * 2;
+
     // public int[] skillId;
     // public List<SkillConfig> skillConfigs;
     /// <summary>
     /// 所有已解锁技能的ID
     /// </summary>
     public List<int> unLockSkills;
+
     public bool isGpu;
     public string heroName;
 
@@ -92,32 +107,81 @@ public class CombatHeroInfo
     private float starFactor;
 
     private float factor;
-    
+
+    protected Map<AttributeType, int> _AttributeCacheValue = new Map<AttributeType, int>();
+
     /// <summary>
     /// 计算影响基础属性的参数
     /// (稀有度、星级)
     /// </summary>
     protected void CalFactor()
     {
-        rarityFactor = PlayerManager.Instance.gameConstantConfig.monsterRarityAttributeFactor[modelConfig.rarity-1]
+        rarityFactor = PlayerManager.Instance.gameConstantConfig.monsterRarityAttributeFactor[modelConfig.rarity - 1]
                        / 100f;
         starFactor = promoteConfig.star_Power / 100f;
 
         factor = rarityFactor * starFactor;
     }
 
+    public void AddAttributeValueToCache(AttributeType attributeType, int value)
+    {
+        if (_AttributeCacheValue.TryGetValue(attributeType, out int v))
+        {
+            value += v;
+        }
+
+        _AttributeCacheValue[attributeType] = value;
+    }
 
     protected void CalBasicAttribute()
     {
+        _AttributeCacheValue.Clear();
         hp = (EncryptionLong)(modelConfig.hp * powerUpConfig.HPFactor * factor);
         defense = (EncryptionLong)(modelConfig.def * powerUpConfig.DEFFactor * factor);
         attack = (EncryptionLong)(modelConfig.attack * powerUpConfig.ATKFactor * factor);
         shanbi = (EncryptionInt)(modelConfig.shanbi * powerUpConfig.SHANBIFactor * factor);
         expGain = (EncryptionLong)(modelConfig.expGain * powerUpConfig.EXPFactor * factor);
-        
+
         CalUnLockSkill();
+
+        for (_AttributeCacheValue.Begin(); _AttributeCacheValue.Next();)
+        {
+            switch (_AttributeCacheValue.Key)
+            {
+                case AttributeType.Hp:
+                    hp += CombatCalculateTool.Instance.GetVlaueRatioForLong(hp.Value, _AttributeCacheValue.Value);
+                    break;
+                case AttributeType.Att:
+                    attack += CombatCalculateTool.Instance.GetVlaueRatioForLong(attack.Value,
+                        _AttributeCacheValue.Value);
+                    break;
+                case AttributeType.Def:
+                    defense += CombatCalculateTool.Instance.GetVlaueRatioForLong(defense.Value,
+                        _AttributeCacheValue.Value);
+                    break;
+            }
+        }
+    }
+
+    public SkillConfig GetGroupSkillConfig(int idGroup)
+    {
+        if (unLockSkills == null)
+        {
+            return default;
+        }
+
+        for (int i = 0; i < unLockSkills.Count; i++)
+        {
+            SkillConfig skillConfig = ConfigComponent.Instance.Get<SkillConfig>(unLockSkills[i]);
+            if (skillConfig.IDGroup == idGroup)
+            {
+                return skillConfig;
+            }
+        }
+
+        return default;
     }
-    
+
     protected void CalAttribute()
     {
         CalBasicAttribute();
@@ -140,15 +204,44 @@ public class CombatHeroInfo
         unLockSkills = new List<int>();
         for (int i = 0; i < modelConfig.skillID.Length; i++)
         {
-            SkillConfig skillConfig = PlayerManager.Instance.heroController.GetHighestLevelOr1(modelConfig.skillID[i], level.Value, star.Value, true);
+            SkillConfig skillConfig =
+                PlayerManager.Instance.heroController.GetHighestLevelOr1(modelConfig.skillID[i], level.Value,
+                    star.Value, true);
             if (skillConfig.ID > 0)
             {
                 unLockSkills.Add(skillConfig.ID);
+                AddSkillAttribute(skillConfig);
+            }
+        }
+    }
+
+    protected void AddSkillAttribute(SkillConfig skillConfig)
+    {
+        if (skillConfig.addPropertyType == null)
+        {
+            return;
+        }
+
+        for (int i = 0; i < skillConfig.addPropertyType.Length; i++)
+        {
+            int propertyType = skillConfig.addPropertyType[i];
+            int value = skillConfig.addPropertyValue[i];
+            switch (propertyType)
+            {
+                case 1:
+                    AddAttributeValueToCache(AttributeType.Hp, value);
+                    break;
+                case 2:
+                    AddAttributeValueToCache(AttributeType.Att, value);
+                    break;
+                case 3:
+                    AddAttributeValueToCache(AttributeType.Def, value);
+                    break;
             }
         }
     }
 
-    protected void SetDataConfig(int modelID,int level, int star)
+    protected void SetDataConfig(int modelID, int level, int star)
     {
         modelConfig = ConfigComponent.Instance.Get<HeroModelConfig>(modelID);
         powerUpConfig = ConfigComponent.Instance.Get<HeroPowerUpConfig>(level);
@@ -157,8 +250,8 @@ public class CombatHeroInfo
         this.star = (EncryptionInt)star;
         heroName = LanguageManager.Instance.Text(modelConfig.name);
     }
-    
-    public void InitMonster(int modelID,int level, int star = 1)
+
+    public void InitMonster(int modelID, int level, int star = 1)
     {
         SetDataConfig(modelID, level, star);
         CalFactor();

+ 8 - 0
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControl.cs

@@ -36,6 +36,7 @@ namespace GameLogic.Combat.Hero
 
         public float NormalAttSpeedScale;
 
+        
         public void Init(CombatHeroEntity combatHeroEntity)
         {
             _combatHeroEntity = combatHeroEntity;
@@ -58,6 +59,7 @@ namespace GameLogic.Combat.Hero
 
         public void UpdateSkill(List<int> skillIDs)
         {
+            
             for (int i = 0; i < skillIDs.Count; i++)
             {
                 SkillConfig skillConfig = ConfigComponent.Instance.Get<SkillConfig>(skillIDs[i]);
@@ -72,6 +74,7 @@ namespace GameLogic.Combat.Hero
                     if (skillBasic.SelfSkillConfig.ID != skillConfig.ID)
                     {
                         skillBasic.InitSkillConfig(skillConfig);
+                        skillBasic.InitSkill(_combatHeroEntity);
                     }
                 }
             }
@@ -92,6 +95,11 @@ namespace GameLogic.Combat.Hero
 
         public void AddSkill(SkillConfig skillConfig)
         {
+            if (string.IsNullOrEmpty(skillConfig.scriptName))
+            {
+                return;
+            }
+
             SkillBasic skillBasic = SkillScriptManager.Instance.CreateSkillBasic(skillConfig);
             allSkill.Add(skillBasic);
             skillBasic.InitSkill(_combatHeroEntity);

+ 4 - 3
Assets/Scripts/GameLogic/Combat/Skill/S10001.cs

@@ -1,4 +1,5 @@
 using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Excel2Json;
 using GameLogic.Combat.CombatTool;
 using GameLogic.Combat.Hero;
 using UnityEngine;
@@ -27,10 +28,10 @@ namespace GameLogic.Combat.Skill
 
         protected override void ProInitSkill()
         {
-            SkillBasic skillBasic = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic(10004);
-            if (skillBasic != null)
+            SkillConfig skillBasic = CombatHeroEntity.CurrCombatHeroInfo.GetGroupSkillConfig(10004);
+            if (skillBasic.ID>0)
             {
-                count +=(int)skillBasic.SelfSkillConfig.effectValue[0];
+                count +=(int)skillBasic.effectValue[0];
             }
         }
 

+ 10 - 9
Assets/Scripts/GameLogic/Combat/Skill/S20001.cs

@@ -1,4 +1,5 @@
 using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Excel2Json;
 using GameLogic.Combat.CombatTool;
 using GameLogic.Combat.Hero;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
@@ -13,8 +14,8 @@ namespace GameLogic.Combat.Skill
         protected float recoverValue;
 
         private int _count;
-        private SkillBasic _skillBasic2004;
-        private SkillBasic _skillBasic2005;
+        private SkillConfig _skillBasic2004;
+        private SkillConfig _skillBasic2005;
 
         protected override void ProInitSkillConfig()
         {
@@ -25,11 +26,11 @@ namespace GameLogic.Combat.Skill
 
         protected override void ProInitSkill()
         {
-            _skillBasic2004 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic(20004);
-            _skillBasic2005 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic(20005);
-            if (_skillBasic2005 != null)
+            _skillBasic2004 = CombatHeroEntity.CurrCombatHeroInfo.GetGroupSkillConfig(20004);
+            _skillBasic2005 = CombatHeroEntity.CurrCombatHeroInfo.GetGroupSkillConfig(20005);
+            if (_skillBasic2005.ID>0)
             {
-                _count += (int)_skillBasic2005.SelfSkillConfig.effectValue[0];
+                _count += (int)_skillBasic2005.effectValue[0];
             }
         }
 
@@ -51,14 +52,14 @@ namespace GameLogic.Combat.Skill
             TriggerData triggerData)
         {
             float currRecoverValue = recoverValue;
-            if (_skillBasic2004 != null)
+            if (_skillBasic2004.ID>0)
             {
-                float hpBl = _skillBasic2004.SelfSkillConfig.effectValue[0];
+                float hpBl = _skillBasic2004.effectValue[0];
                 float currBl = (float)(targetEntity.combatHeroEntity.CurrCombatHeroInfo.hp.Value * 100f /
                                        targetEntity.combatHeroEntity.MaxCombatHeroInfo.hp.Value);
                 if (currBl <= hpBl)
                 {
-                    currRecoverValue += _skillBasic2004.SelfSkillConfig.effectValue[1];
+                    currRecoverValue += _skillBasic2004.effectValue[1];
                 }
             }
 

+ 0 - 20
Assets/Scripts/GameLogic/Combat/Skill/S20004.cs

@@ -1,20 +0,0 @@
-namespace GameLogic.Combat.Skill
-{
-    /// <summary>
-    /// 专精:
-    ///对生命值低于{0}%的英雄,提高{1}%的治疗量
-    /// </summary>
-    public class S20004 : SkillBasic
-    {
-        
-
-        protected override void ProUseSkill()
-        {
-        }
-
-        protected override void ProInitSkillConfig()
-        {
-         
-        }
-    }
-}

+ 0 - 3
Assets/Scripts/GameLogic/Combat/Skill/S20004.cs.meta

@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 6535eb85fd45422b8022a00ef5898325
-timeCreated: 1733822965

+ 30 - 4
Assets/Scripts/GameLogic/Combat/Skill/S40001.cs

@@ -1,4 +1,5 @@
 using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Excel2Json;
 using GameLogic.Combat.CombatTool;
 using GameLogic.Combat.Hero;
 using UnityEngine;
@@ -15,14 +16,29 @@ namespace GameLogic.Combat.Skill
 
         protected int _count;
         protected int _currCount;
+        private int _gongJianCount;
+
+        private SkillConfig _skillBasic4005;
 
         protected override void ProInitSkillConfig()
         {
             _harm = SelfSkillConfig.effectValue[0];
             _count = 3;
+            _gongJianCount = 5;
             AddTriggerCallBack("sk1_fashe", Sk1_fasheTrigger);
         }
 
+        protected override void ProInitSkill()
+        {
+            SkillConfig skillBasic = CombatHeroEntity.CurrCombatHeroInfo.GetGroupSkillConfig(40004);
+            if (skillBasic.ID > 0)
+            {
+                _gongJianCount += (int)skillBasic.effectValue[0];
+            }
+
+            _skillBasic4005 = CombatHeroEntity.CurrCombatHeroInfo.GetGroupSkillConfig(40005);
+        }
+
         protected override void ProUseSkill()
         {
             _finishTimeLineGroupName = "-1";
@@ -63,8 +79,17 @@ namespace GameLogic.Combat.Skill
             ITimelineFxLogic timelineFxLogic,
             TriggerData triggerData)
         {
+            float harm = _harm;
+            if (_skillBasic4005.ID>0)
+            {
+                if (targetEntity.combatHeroEntity.HpBl < _skillBasic4005.effectValue[0])
+                {
+                    harm += _skillBasic4005.effectValue[1];
+                }
+            }
+
             long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
-                _harm);
+                harm);
             HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, targetEntity,
                 v, AttType.Skill, triggerData);
         }
@@ -73,11 +98,12 @@ namespace GameLogic.Combat.Skill
             ITimelineFxLogic timelineFxLogic,
             TriggerData triggerData)
         {
-            Vector3 eulerAngles = CombatHeroEntity.combatHeroGameObject.transform.rotation.eulerAngles;
-            for (int i = -5; i < 5; i++)
+            int minC = _gongJianCount / 2;
+            int startAngle = minC * -5;
+            for (int i = 0; i < _gongJianCount; i++)
             {
                 Vector3 forward = CombatHeroEntity.combatHeroGameObject.transform.forward;
-                Quaternion quaternion = Quaternion.AngleAxis(i * 5, Vector3.up);
+                Quaternion quaternion = Quaternion.AngleAxis(i * 5 + startAngle, Vector3.up);
                 // quaternion = quaternion + CombatHeroEntity.combatHeroGameObject.transform.rotation;
                 // Vector3 newAngle = new Vector3(eulerAngles.x, eulerAngles.y + i * 15+180, eulerAngles.z);
                 // Quaternion quaternion = Quaternion.Euler(newAngle);

BIN
Excel2Json/Excel/HeroModel.xlsx


BIN
Excel2Json/Excel/skill.xlsx


+ 90 - 46
UserSettings/Layouts/default-2022.dwlt

@@ -19,7 +19,7 @@ MonoBehaviour:
     width: 2560
     height: 1349
   m_ShowMode: 4
-  m_Title: Console
+  m_Title: Game
   m_RootView: {fileID: 5}
   m_MinSize: {x: 875, y: 321}
   m_MaxSize: {x: 10000, y: 10000}
@@ -45,9 +45,9 @@ MonoBehaviour:
     height: 983
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
-  m_ActualView: {fileID: 20}
+  m_ActualView: {fileID: 21}
   m_Panes:
-  - {fileID: 20}
+  - {fileID: 21}
   m_Selected: 0
   m_LastSelected: 0
 --- !u!114 &3
@@ -97,9 +97,9 @@ MonoBehaviour:
     height: 316
   m_MinSize: {x: 101, y: 121}
   m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 16}
+  m_ActualView: {fileID: 17}
   m_Panes:
-  - {fileID: 16}
+  - {fileID: 17}
   m_Selected: 0
   m_LastSelected: 0
 --- !u!114 &5
@@ -178,7 +178,7 @@ MonoBehaviour:
   m_MinSize: {x: 500, y: 100}
   m_MaxSize: {x: 40480, y: 16192}
   vertical: 0
-  controlID: 92
+  controlID: 184
   draggingID: 0
 --- !u!114 &8
 MonoBehaviour:
@@ -248,9 +248,9 @@ MonoBehaviour:
     height: 1299
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
-  m_ActualView: {fileID: 17}
+  m_ActualView: {fileID: 18}
   m_Panes:
-  - {fileID: 17}
+  - {fileID: 18}
   m_Selected: 0
   m_LastSelected: 0
 --- !u!114 &11
@@ -274,9 +274,9 @@ MonoBehaviour:
     height: 1299
   m_MinSize: {x: 232, y: 271}
   m_MaxSize: {x: 10002, y: 10021}
-  m_ActualView: {fileID: 19}
+  m_ActualView: {fileID: 20}
   m_Panes:
-  - {fileID: 19}
+  - {fileID: 20}
   m_Selected: 0
   m_LastSelected: 0
 --- !u!114 &12
@@ -298,11 +298,11 @@ MonoBehaviour:
     y: 0
     width: 373
     height: 1299
-  m_MinSize: {x: 275, y: 50}
-  m_MaxSize: {x: 4000, y: 4000}
-  m_ActualView: {fileID: 18}
+  m_MinSize: {x: 276, y: 71}
+  m_MaxSize: {x: 4001, y: 4021}
+  m_ActualView: {fileID: 19}
   m_Panes:
-  - {fileID: 18}
+  - {fileID: 19}
   m_Selected: 0
   m_LastSelected: 0
 --- !u!114 &13
@@ -315,7 +315,7 @@ MonoBehaviour:
   m_Enabled: 1
   m_EditorHideFlags: 1
   m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
-  m_Name: SceneView
+  m_Name: TimelineWindow
   m_EditorClassIdentifier: 
   m_Children: []
   m_Position:
@@ -324,16 +324,60 @@ MonoBehaviour:
     y: 0
     width: 611
     height: 983
-  m_MinSize: {x: 201, y: 221}
+  m_MinSize: {x: 101, y: 121}
   m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 21}
+  m_ActualView: {fileID: 14}
   m_Panes:
-  - {fileID: 21}
+  - {fileID: 22}
+  - {fileID: 16}
   - {fileID: 15}
   - {fileID: 14}
-  m_Selected: 0
-  m_LastSelected: 2
+  m_Selected: 3
+  m_LastSelected: 0
 --- !u!114 &14
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f817a38900380be47942905e17e7d39b, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: Timeline
+    m_Image: {fileID: -9173288242387172643, guid: 0000000000000000d000000000000000, type: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 0
+    y: 73
+    width: 610
+    height: 962
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
+  m_Preferences:
+    editType: 0
+    timeReferenceMode: 0
+  m_LockTracker:
+    m_IsLocked: 0
+  m_SequenceHierarchy: {fileID: 0}
+  m_SequencePath:
+    m_SelectionRoot: 0
+    m_SubElements: []
+--- !u!114 &15
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -463,7 +507,7 @@ MonoBehaviour:
       type: {class: TransitionLibraryAliasesPage, ns: Animancer.Editor.TransitionLibraries, asm: Kybernetik.Animancer.Editor}
       data:
         _ScrollPosition: {x: 0, y: 0}
---- !u!114 &15
+--- !u!114 &16
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -601,7 +645,7 @@ MonoBehaviour:
   m_CurrentEditor: 0
   m_LayerEditor:
     m_SelectedLayerIndex: 0
---- !u!114 &16
+--- !u!114 &17
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -635,7 +679,7 @@ MonoBehaviour:
     m_LastAppliedPresetName: Default
     m_SaveData: []
     m_OverlaysVisible: 1
---- !u!114 &17
+--- !u!114 &18
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -674,21 +718,21 @@ MonoBehaviour:
       scrollPos: {x: 0, y: 0}
       m_SelectedIDs: 
       m_LastClickedID: 0
-      m_ExpandedIDs: 84faffffdaa200000aa300002aa30000
+      m_ExpandedIDs: 84faffffe8a2000018a30000
       m_RenameOverlay:
         m_UserAcceptedRename: 0
-        m_Name: 
-        m_OriginalName: 
+        m_Name: Directional Light
+        m_OriginalName: Directional Light
         m_EditFieldRect:
           serializedVersion: 2
           x: 0
           y: 0
           width: 0
           height: 0
-        m_UserData: 0
+        m_UserData: 41736
         m_IsWaitingForDelay: 0
         m_IsRenaming: 0
-        m_OriginalEventType: 11
+        m_OriginalEventType: 0
         m_IsRenamingFilename: 0
         m_ClientGUIView: {fileID: 10}
       m_SearchString: 
@@ -698,7 +742,7 @@ MonoBehaviour:
       m_IsLocked: 0
     m_CurrentSortingName: TransformSorting
   m_WindowGUID: 9cd1477dbcc46d642bdb31d35b82cd83
---- !u!114 &18
+--- !u!114 &19
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -745,7 +789,7 @@ MonoBehaviour:
   m_LockTracker:
     m_IsLocked: 0
   m_PreviewWindow: {fileID: 0}
---- !u!114 &19
+--- !u!114 &20
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -780,7 +824,7 @@ MonoBehaviour:
     m_SaveData: []
     m_OverlaysVisible: 1
   m_SearchFilter:
-    m_NameFilter: fb010shader
+    m_NameFilter: S10001
     m_ClassNames: []
     m_AssetLabels: []
     m_AssetBundleNames: []
@@ -790,24 +834,24 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets/Scripts/GameUI/UI/Hero
+    - Assets/Res/UIPlayable
     m_Globs: []
-    m_OriginalText: fb010shader
+    m_OriginalText: S10001
     m_ImportLogFlags: 0
     m_FilterByTypeIntersection: 0
   m_ViewMode: 1
   m_StartGridSize: 16
   m_LastFolders:
-  - Assets/Scripts/GameUI/UI/Hero
+  - Assets/Res/UIPlayable
   m_LastFoldersGridSize: 16
   m_LastProjectPath: D:\unityProject\XY001
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
-    scrollPos: {x: 0, y: 982}
-    m_SelectedIDs: a2a70000
-    m_LastClickedID: 42914
-    m_ExpandedIDs: 0000000016a4000018a400001aa400001ca400001ea4000020a4000022a4000024a4000026a4000028a400002aa400002ca400002ea4000030a4000032a4000034a4000036a4000038a400003aa400003ca400003ea4000040a4000042a4000044a4000046a4000048a400004aa400004ca400004ea4000050a4000052a4000054a4000056a4000058a400005aa400005ca400005ea4000060a4000062a4000064a4000066a4000068a400006aa400006ca400006ea4000070a4000072a4000074a4000050a6000068a6000072a6000080e8000000ca9a3bffffff7f
+    scrollPos: {x: 0, y: 831}
+    m_SelectedIDs: a0f70000
+    m_LastClickedID: 63392
+    m_ExpandedIDs: 0000000024a4000026a4000028a400002aa400002ca400002ea4000030a4000032a4000034a4000036a4000038a400003aa400003ca400003ea4000040a4000042a4000044a4000046a4000048a400004aa400004ca400004ea4000050a4000052a4000054a4000056a4000058a400005aa400005ca400005ea4000060a4000062a4000064a4000066a4000068a400006aa400006ca400006ea4000070a4000072a4000074a4000076a4000078a400007aa400007ca400007ea4000080a4000082a4000062a6000076a6000026a70000d8f7000000ca9a3bffffff7f
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -835,7 +879,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 0000000016a4000018a400001aa400001ca400001ea4000020a4000022a4000024a4000026a4000028a400002aa400002ca400002ea4000030a4000032a4000034a4000036a4000038a400003aa400003ca400003ea4000040a4000042a4000044a4000046a4000048a400004aa400004ca400004ea4000050a4000052a4000054a4000056a4000058a400005aa400005ca400005ea4000060a4000062a4000064a4000066a4000068a400006aa400006ca400006ea4000070a4000072a4000074a40000
+    m_ExpandedIDs: 0000000024a4000026a4000028a400002aa400002ca400002ea4000030a4000032a4000034a4000036a4000038a400003aa400003ca400003ea4000040a4000042a4000044a4000046a4000048a400004aa400004ca400004ea4000050a4000052a4000054a4000056a4000058a400005aa400005ca400005ea4000060a4000062a4000064a4000066a4000068a400006aa400006ca400006ea4000070a4000072a4000074a4000076a4000078a400007aa400007ca400007ea4000080a4000082a40000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -890,8 +934,8 @@ MonoBehaviour:
     m_ScrollPosition: {x: 0, y: 0}
     m_GridSize: 16
   m_SkipHiddenPackages: 0
-  m_DirectoriesAreaWidth: 159.5
---- !u!114 &20
+  m_DirectoriesAreaWidth: 307.5
+--- !u!114 &21
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -989,7 +1033,7 @@ MonoBehaviour:
   m_LowResolutionForAspectRatios: 01000000000000000000
   m_XRRenderMode: 0
   m_RenderTexture: {fileID: 0}
---- !u!114 &21
+--- !u!114 &22
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -1384,9 +1428,9 @@ MonoBehaviour:
   m_PlayAudio: 0
   m_AudioPlay: 0
   m_Position:
-    m_Target: {x: -22.364368, y: -13.565526, z: -278.99045}
+    m_Target: {x: 1.7965183, y: 0.78333306, z: 4.9703875}
     speed: 2
-    m_Value: {x: -22.364368, y: -13.565526, z: -278.99045}
+    m_Value: {x: 1.7965183, y: 0.78333306, z: 4.9703875}
   m_RenderMode: 0
   m_CameraMode:
     drawMode: 0
@@ -1436,9 +1480,9 @@ MonoBehaviour:
     speed: 2
     m_Value: {x: 0.21580222, y: -0.75617456, z: 0.30317488, w: 0.5382514}
   m_Size:
-    m_Target: 57.208378
+    m_Target: 1.2144759
     speed: 2
-    m_Value: 57.208378
+    m_Value: 1.2144759
   m_Ortho:
     m_Target: 0
     speed: 2