diff --git a/DungeonShooting_Godot/addons/dungeonShooting_plugin/generator/ExcelGenerator.cs b/DungeonShooting_Godot/addons/dungeonShooting_plugin/generator/ExcelGenerator.cs index 21df908..9be0e02 100644 --- a/DungeonShooting_Godot/addons/dungeonShooting_plugin/generator/ExcelGenerator.cs +++ b/DungeonShooting_Godot/addons/dungeonShooting_plugin/generator/ExcelGenerator.cs @@ -95,8 +95,18 @@ private static int compilerTool(string csProjectPath, string rid, string outputPath) { //dotnet publish excelTool -c Release -r win-x64 -o ./excelTool/publish/win-x64 + //dotnet publish excelTool -c Release -r osx-x64 -o excelTool/publish/osx-x64 + //dotnet publish excelTool -c Release -r osx-x64 --self-contained true -p:PublishSingleFile=true -o excelTool/publish/osx-x64 var outLog = new Array(); - var result = OS.Execute("dotnet", new string[] { "publish", csProjectPath, "-c", "Release", "-r", rid, "-o", outputPath }, outLog); + var result = OS.Execute("dotnet", new string[] + { + "publish", csProjectPath, + "-c", "Release", "-r", rid, + "--self-contained", "true", + "-p:PublishSingleFile=true", + "-o", outputPath + }, outLog); + //var result = OS.Execute("dotnet", new string[] { "publish", csProjectPath, "-c", "Release", "-r", rid, "-o", outputPath }, outLog); foreach (var variant in outLog) { GD.Print(variant); diff --git a/DungeonShooting_Godot/excel/AiAttackAttr.xlsx b/DungeonShooting_Godot/excel/AiAttackAttr.xlsx index 937aafc..b9daab6 100644 --- a/DungeonShooting_Godot/excel/AiAttackAttr.xlsx +++ b/DungeonShooting_Godot/excel/AiAttackAttr.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/WeaponBase.xlsx b/DungeonShooting_Godot/excel/WeaponBase.xlsx index 8b99d17..3de09d4 100644 --- a/DungeonShooting_Godot/excel/WeaponBase.xlsx +++ b/DungeonShooting_Godot/excel/WeaponBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/resource/config/AiAttackAttr.json b/DungeonShooting_Godot/resource/config/AiAttackAttr.json index ebc5579..1d78577 100644 --- a/DungeonShooting_Godot/resource/config/AiAttackAttr.json +++ b/DungeonShooting_Godot/resource/config/AiAttackAttr.json @@ -5,10 +5,10 @@ "LockingStand": true, "FiringStand": true, "ShowSubline": false, - "LockingTime": 1, + "LockingTime": 0.5, "LockAngleTime": 0, "AttackLockAngle": true, - "BulletSpeedScale": 0.4, + "BulletSpeedScale": 0.3, "AmmoConsumptionProbability": 0 }, { @@ -17,10 +17,10 @@ "LockingStand": true, "FiringStand": true, "ShowSubline": false, - "LockingTime": 2, + "LockingTime": 1, "LockAngleTime": 0, "AttackLockAngle": false, - "BulletSpeedScale": 0.35, + "BulletSpeedScale": 0.25, "AmmoConsumptionProbability": 0 }, { @@ -29,10 +29,10 @@ "LockingStand": true, "FiringStand": true, "ShowSubline": false, - "LockingTime": 1, + "LockingTime": 0.4, "LockAngleTime": 0, "AttackLockAngle": false, - "BulletSpeedScale": 0.35, + "BulletSpeedScale": 0.3, "AmmoConsumptionProbability": 0 }, { @@ -41,10 +41,10 @@ "LockingStand": false, "FiringStand": false, "ShowSubline": false, - "LockingTime": 0.7, + "LockingTime": 0.3, "LockAngleTime": 0, "AttackLockAngle": true, - "BulletSpeedScale": 0.35, + "BulletSpeedScale": 0.3, "AmmoConsumptionProbability": 0 }, { @@ -53,22 +53,22 @@ "LockingStand": true, "FiringStand": true, "ShowSubline": true, - "LockingTime": 1.5, - "LockAngleTime": 0.5, + "LockingTime": 1, + "LockAngleTime": 0.3, "AttackLockAngle": true, - "BulletSpeedScale": 0.5, + "BulletSpeedScale": 0.9, "AmmoConsumptionProbability": 0 }, { "Id": "0006", - "Remark": "", + "Remark": "\u6C64\u59C6\u900A", "LockingStand": true, "FiringStand": true, "ShowSubline": false, "LockingTime": 0.5, - "LockAngleTime": 0.5, + "LockAngleTime": 0, "AttackLockAngle": false, - "BulletSpeedScale": 0.35, + "BulletSpeedScale": 0.25, "AmmoConsumptionProbability": 0 }, { @@ -77,7 +77,7 @@ "LockingStand": true, "FiringStand": true, "ShowSubline": true, - "LockingTime": 1.5, + "LockingTime": 1.2, "LockAngleTime": 0.5, "AttackLockAngle": true, "BulletSpeedScale": 1, @@ -89,22 +89,22 @@ "LockingStand": true, "FiringStand": true, "ShowSubline": false, - "LockingTime": 1.5, - "LockAngleTime": 0.5, + "LockingTime": 0.6, + "LockAngleTime": 0.2, "AttackLockAngle": true, "BulletSpeedScale": 0.8, "AmmoConsumptionProbability": 0 }, { "Id": "0009", - "Remark": "Weapon0010", + "Remark": "M1\u578B\u70ED\u80FD\u72D9\u51FB\u67AA", "LockingStand": true, "FiringStand": true, "ShowSubline": false, - "LockingTime": 1.5, - "LockAngleTime": 0.5, + "LockingTime": 0.7, + "LockAngleTime": 0, "AttackLockAngle": true, - "BulletSpeedScale": 0.4, + "BulletSpeedScale": 0.3, "AmmoConsumptionProbability": 0 } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/config/WeaponBase.json b/DungeonShooting_Godot/resource/config/WeaponBase.json index 74ac8b7..a2ee816 100644 --- a/DungeonShooting_Godot/resource/config/WeaponBase.json +++ b/DungeonShooting_Godot/resource/config/WeaponBase.json @@ -102,7 +102,7 @@ "ContinuousCountRange": [ 3 ], - "TriggerInterval": 2.5, + "TriggerInterval": 1.2, "StartFiringSpeed": 480, "FinalFiringSpeed": 480, "FiringSpeedAddSpeed": 0, @@ -254,7 +254,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 3, + "TriggerInterval": 1.4, "StartFiringSpeed": 120, "FinalFiringSpeed": 120, "FiringSpeedAddSpeed": 0, @@ -406,7 +406,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 1, + "TriggerInterval": 0.4, "StartFiringSpeed": 300, "FinalFiringSpeed": 300, "FiringSpeedAddSpeed": 0, @@ -557,7 +557,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 3, + "TriggerInterval": 2, "StartFiringSpeed": 180, "FinalFiringSpeed": 180, "FiringSpeedAddSpeed": 0, @@ -708,7 +708,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 4, + "TriggerInterval": 2.2, "StartFiringSpeed": 150, "FinalFiringSpeed": 150, "FiringSpeedAddSpeed": 0, @@ -860,7 +860,7 @@ "ContinuousCountRange": [ 5 ], - "TriggerInterval": 3, + "TriggerInterval": 1.5, "StartFiringSpeed": 700, "FinalFiringSpeed": 700, "FiringSpeedAddSpeed": 0, @@ -1012,9 +1012,9 @@ "ContinuousCountRange": [ 10 ], - "TriggerInterval": 4, - "StartFiringSpeed": 200, - "FinalFiringSpeed": 200, + "TriggerInterval": 2, + "StartFiringSpeed": 700, + "FinalFiringSpeed": 700, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, "FiringSpeedBackTime": 0, @@ -1164,7 +1164,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 3, + "TriggerInterval": 1.8, "StartFiringSpeed": 300, "FinalFiringSpeed": 300, "FiringSpeedAddSpeed": 0, @@ -1316,7 +1316,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 4, + "TriggerInterval": 1.3, "StartFiringSpeed": 180, "FinalFiringSpeed": 180, "FiringSpeedAddSpeed": 0, @@ -1468,7 +1468,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 4, + "TriggerInterval": 1.5, "StartFiringSpeed": 210, "FinalFiringSpeed": 210, "FiringSpeedAddSpeed": 0, @@ -1620,7 +1620,7 @@ "ContinuousCountRange": [ 5 ], - "TriggerInterval": 3, + "TriggerInterval": 1.6, "StartFiringSpeed": 700, "FinalFiringSpeed": 700, "FiringSpeedAddSpeed": 0, @@ -1772,9 +1772,9 @@ "ContinuousCountRange": [ 25 ], - "TriggerInterval": 4, - "StartFiringSpeed": 500, - "FinalFiringSpeed": 500, + "TriggerInterval": 3, + "StartFiringSpeed": 900, + "FinalFiringSpeed": 900, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, "FiringSpeedBackTime": 0, @@ -1924,7 +1924,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 0.8, + "TriggerInterval": 0.4, "StartFiringSpeed": 300, "FinalFiringSpeed": 300, "FiringSpeedAddSpeed": 0, @@ -2076,7 +2076,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 0.8, + "TriggerInterval": 0.5, "StartFiringSpeed": 300, "FinalFiringSpeed": 300, "FiringSpeedAddSpeed": 0, diff --git a/DungeonShooting_Godot/src/config/ExcelConfig.cs b/DungeonShooting_Godot/src/config/ExcelConfig.cs index 0f3fe56..8bb7fd3 100644 --- a/DungeonShooting_Godot/src/config/ExcelConfig.cs +++ b/DungeonShooting_Godot/src/config/ExcelConfig.cs @@ -8,13 +8,22 @@ public static partial class ExcelConfig { /// - /// ActivityBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 + /// Sound.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 /// - public static List ActivityBase_List { get; private set; } + public static List Sound_List { get; private set; } /// - /// ActivityBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id + /// Sound.xlsx表数据集合, 里 Map 形式存储, key 为 Id /// - public static Dictionary ActivityBase_Map { get; private set; } + public static Dictionary Sound_Map { get; private set; } + + /// + /// WeaponBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 + /// + public static List WeaponBase_List { get; private set; } + /// + /// WeaponBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id + /// + public static Dictionary WeaponBase_Map { get; private set; } /// /// ActivityMaterial.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 @@ -53,6 +62,15 @@ public static Dictionary EnemyBase_Map { get; private set; } /// + /// ActivityBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 + /// + public static List ActivityBase_List { get; private set; } + /// + /// ActivityBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id + /// + public static Dictionary ActivityBase_Map { get; private set; } + + /// /// LiquidMaterial.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 /// public static List LiquidMaterial_List { get; private set; } @@ -61,24 +79,6 @@ /// public static Dictionary LiquidMaterial_Map { get; private set; } - /// - /// Sound.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 - /// - public static List Sound_List { get; private set; } - /// - /// Sound.xlsx表数据集合, 里 Map 形式存储, key 为 Id - /// - public static Dictionary Sound_Map { get; private set; } - - /// - /// WeaponBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 - /// - public static List WeaponBase_List { get; private set; } - /// - /// WeaponBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id - /// - public static Dictionary WeaponBase_Map { get; private set; } - private static bool _init = false; /// @@ -89,35 +89,53 @@ if (_init) return; _init = true; - _InitActivityBaseConfig(); + _InitSoundConfig(); + _InitWeaponBaseConfig(); _InitActivityMaterialConfig(); _InitAiAttackAttrConfig(); _InitBulletBaseConfig(); _InitEnemyBaseConfig(); + _InitActivityBaseConfig(); _InitLiquidMaterialConfig(); - _InitSoundConfig(); - _InitWeaponBaseConfig(); - _InitActivityBaseRef(); - _InitEnemyBaseRef(); _InitWeaponBaseRef(); + _InitEnemyBaseRef(); + _InitActivityBaseRef(); } - private static void _InitActivityBaseConfig() + private static void _InitSoundConfig() { try { - var text = _ReadConfigAsText("res://resource/config/ActivityBase.json"); - ActivityBase_List = new List(JsonSerializer.Deserialize>(text)); - ActivityBase_Map = new Dictionary(); - foreach (var item in ActivityBase_List) + var text = _ReadConfigAsText("res://resource/config/Sound.json"); + Sound_List = JsonSerializer.Deserialize>(text); + Sound_Map = new Dictionary(); + foreach (var item in Sound_List) { - ActivityBase_Map.Add(item.Id, item); + Sound_Map.Add(item.Id, item); } } catch (Exception e) { GD.PrintErr(e.ToString()); - throw new Exception("初始化表'ActivityBase'失败!"); + throw new Exception("初始化表'Sound'失败!"); + } + } + private static void _InitWeaponBaseConfig() + { + try + { + var text = _ReadConfigAsText("res://resource/config/WeaponBase.json"); + WeaponBase_List = new List(JsonSerializer.Deserialize>(text)); + WeaponBase_Map = new Dictionary(); + foreach (var item in WeaponBase_List) + { + WeaponBase_Map.Add(item.Id, item); + } + } + catch (Exception e) + { + GD.PrintErr(e.ToString()); + throw new Exception("初始化表'WeaponBase'失败!"); } } private static void _InitActivityMaterialConfig() @@ -192,6 +210,24 @@ throw new Exception("初始化表'EnemyBase'失败!"); } } + private static void _InitActivityBaseConfig() + { + try + { + var text = _ReadConfigAsText("res://resource/config/ActivityBase.json"); + ActivityBase_List = new List(JsonSerializer.Deserialize>(text)); + ActivityBase_Map = new Dictionary(); + foreach (var item in ActivityBase_List) + { + ActivityBase_Map.Add(item.Id, item); + } + } + catch (Exception e) + { + GD.PrintErr(e.ToString()); + throw new Exception("初始化表'ActivityBase'失败!"); + } + } private static void _InitLiquidMaterialConfig() { try @@ -210,81 +246,7 @@ throw new Exception("初始化表'LiquidMaterial'失败!"); } } - private static void _InitSoundConfig() - { - try - { - var text = _ReadConfigAsText("res://resource/config/Sound.json"); - Sound_List = JsonSerializer.Deserialize>(text); - Sound_Map = new Dictionary(); - foreach (var item in Sound_List) - { - Sound_Map.Add(item.Id, item); - } - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化表'Sound'失败!"); - } - } - private static void _InitWeaponBaseConfig() - { - try - { - var text = _ReadConfigAsText("res://resource/config/WeaponBase.json"); - WeaponBase_List = new List(JsonSerializer.Deserialize>(text)); - WeaponBase_Map = new Dictionary(); - foreach (var item in WeaponBase_List) - { - WeaponBase_Map.Add(item.Id, item); - } - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化表'WeaponBase'失败!"); - } - } - private static void _InitActivityBaseRef() - { - foreach (Ref_ActivityBase item in ActivityBase_List) - { - try - { - if (!string.IsNullOrEmpty(item.__Material)) - { - item.Material = ActivityMaterial_Map[item.__Material]; - } - - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化'ActivityBase'引用其他表数据失败, 当前行id: " + item.Id); - } - } - } - private static void _InitEnemyBaseRef() - { - foreach (Ref_EnemyBase item in EnemyBase_List) - { - try - { - if (!string.IsNullOrEmpty(item.__Activity)) - { - item.Activity = ActivityBase_Map[item.__Activity]; - } - - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化'EnemyBase'引用其他表数据失败, 当前行id: " + item.Id); - } - } - } private static void _InitWeaponBaseRef() { foreach (Ref_WeaponBase item in WeaponBase_List) @@ -353,6 +315,44 @@ } } } + private static void _InitEnemyBaseRef() + { + foreach (Ref_EnemyBase item in EnemyBase_List) + { + try + { + if (!string.IsNullOrEmpty(item.__Activity)) + { + item.Activity = ActivityBase_Map[item.__Activity]; + } + + } + catch (Exception e) + { + GD.PrintErr(e.ToString()); + throw new Exception("初始化'EnemyBase'引用其他表数据失败, 当前行id: " + item.Id); + } + } + } + private static void _InitActivityBaseRef() + { + foreach (Ref_ActivityBase item in ActivityBase_List) + { + try + { + if (!string.IsNullOrEmpty(item.__Material)) + { + item.Material = ActivityMaterial_Map[item.__Material]; + } + + } + catch (Exception e) + { + GD.PrintErr(e.ToString()); + throw new Exception("初始化'ActivityBase'引用其他表数据失败, 当前行id: " + item.Id); + } + } + } private static string _ReadConfigAsText(string path) { var file = FileAccess.Open(path, FileAccess.ModeFlags.Read); diff --git a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs index 73fd0e8..d19a1d9 100644 --- a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs @@ -318,10 +318,19 @@ /// private void OpenExportExcelFolder() { - var path = Environment.CurrentDirectory + "\\excel"; - System.Diagnostics.Process.Start("explorer.exe", path); + var path = Environment.CurrentDirectory + "/excel"; + var osName = OS.GetName(); + GD.Print("打开excel文件夹: " + path); + if (osName == "Windows") + { + System.Diagnostics.Process.Start("explorer.exe", path); + } + else + { + System.Diagnostics.Process.Start("open", path); + } } - + /// /// 在编辑器中打开一个提示窗口 ///