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);
+ }
}
-
+
///
/// 在编辑器中打开一个提示窗口
///