From 70af4f69e6c2a20cf5bda95646f81eeb79a7bea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=9D=8Exl?= <1911159016@qq.com> Date: Sat, 30 Mar 2024 13:42:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=BA=97=E5=BC=80=E5=8F=91=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DungeonShooting_Godot/excel/ActivityBase.xlsx | Bin 19595 -> 19668 bytes .../prefab/role/{ => enemy}/Enemy0001.tscn | 2 +- .../prefab/role/{ => enemy}/Enemy0002.tscn | 2 +- .../prefab/role/shopBoss/ShopBoss0001.tscn | 58 +++ .../{EnemyTemplate.tscn => AiTemplate.tscn} | 9 +- .../prefab/role/template/RoleTemplate.tscn | 16 +- DungeonShooting_Godot/project.godot | 2 +- .../resource/config/ActivityBase.json | 18 +- .../spriteFrames/role/ShopBoss0001.tres | 14 + DungeonShooting_Godot/scene/Hall.tscn | 32 +- .../src/config/ExcelConfig.cs | 442 +++++++++--------- .../activity/ActivityObject_Create.cs | 15 +- .../framework/activity/ActivityObject_Init.cs | 5 + .../map/preinstall/RoomPreinstall.cs | 3 + 14 files changed, 360 insertions(+), 258 deletions(-) rename DungeonShooting_Godot/prefab/role/{ => enemy}/Enemy0001.tscn (98%) rename DungeonShooting_Godot/prefab/role/{ => enemy}/Enemy0002.tscn (98%) create mode 100644 DungeonShooting_Godot/prefab/role/shopBoss/ShopBoss0001.tscn rename DungeonShooting_Godot/prefab/role/template/{EnemyTemplate.tscn => AiTemplate.tscn} (88%) create mode 100644 DungeonShooting_Godot/resource/spriteFrames/role/ShopBoss0001.tres diff --git a/DungeonShooting_Godot/excel/ActivityBase.xlsx b/DungeonShooting_Godot/excel/ActivityBase.xlsx index 9ec1b0bdf6381d58d52d1693c9d3bf69cc7d942f..9b52007138f6c1686cdf79ad16a2718e0b7b9913 100644 GIT binary patch delta 10997 zcmaiabyVAJvn>hk?i5no-QC@xXz@^7ihFPf5D0`qp}3R^EmEv#v7)6|aVb{Ztw4br z`o7<}=iEQeWi1xJ#hRICX74?dd6FdO048$))dc{8TRX9Rc>oHEED!~S7zH7qL5k=A z5JGA-sf+jJ9Zd<)xRL@NOUx(f&}29_W{{T1T7=sRdZ zXLIup^b%|ZV&}0ziz*yH%WrEONqL(VC$E3#7x9P-bLr{%*u8Y-c{)E8c`nk#4zF|Q zB6Hqvv!jx#!RWOjp_5D;n&Ld@p7>b3vYHO5Leaw-s0My#xuiRctf7WF%WDcSenWVK zM3Pa_=ohth3m5;M-|ghQ+?21PlX$Y<$hsihBlAqFhEnbF>yOf!-R3f_8>+{0y_d=F zU)@bMO|^VPEApAv>&~}{<;)i8KlQjezPrA<$XHv}`0EY|T;2f0}1*HRy7=28Q7(v5^Fg2!zFTcAb?x4LDr?ZAMHw8g{*Mu&$7arOK@(G`K++VcHjLI#y+q8DH?>E?3mTy)h4{U6l z_nuxHJFfHmISWXF-8Ooq5w`T+tz2#{4t3H7&&zla*45| z!O+^o+Dg@wmG$UBQGl$h?1-H8@^=R7E>6biuVR!fN>?{GcK59_^bMuo3+J%@oCF+S zO-!rVkHy{Xd0g&$o}K=#_!i_NQIbw^Dwo!hcDZ%=srzE6s-7am&&jr6~K6`Ptu%kW0GO%=DYp?2P*Uv9t zro%H}nPB4piYE;Azwr+G<8X=VvH)w}BV6zApzpXBuY(4IW*ZxCms_#}e(bOIGi(Cx zBYypArcF1m%A!6sS*-jD(Hs@_z3%

+!Xx^X9&O;q&sqNgNU7{Rp#(hX}Ho3;#=x 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 v&ag$LXB7YaQX>Mw)Bj - /// ActivePropBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 + /// BuffPropBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 /// - public static List ActivePropBase_List { get; private set; } + public static List BuffPropBase_List { get; private set; } ///

- /// ActivePropBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id + /// BuffPropBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id /// - public static Dictionary ActivePropBase_Map { get; private set; } + public static Dictionary BuffPropBase_Map { get; private set; } /// - /// 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 表相同 @@ -43,15 +52,6 @@ public static partial class ExcelConfig /// public static Dictionary AiAttackAttr_Map { get; private set; } - /// - /// BuffPropBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 - /// - public static List BuffPropBase_List { get; private set; } - /// - /// BuffPropBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id - /// - public static Dictionary BuffPropBase_Map { get; private set; } - /// /// BulletBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 /// @@ -61,6 +61,15 @@ public static partial class ExcelConfig /// public static Dictionary BulletBase_Map { get; private set; } + /// + /// ActivePropBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 + /// + public static List ActivePropBase_List { get; private set; } + /// + /// ActivePropBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id + /// + public static Dictionary ActivePropBase_Map { get; private set; } + /// /// EnemyBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同 /// @@ -70,6 +79,15 @@ public static partial class ExcelConfig /// 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 表相同 /// @@ -79,24 +97,6 @@ public static partial class ExcelConfig /// 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; /// @@ -107,94 +107,22 @@ public static partial class ExcelConfig if (_init) return; _init = true; - _InitActivePropBaseConfig(); - _InitActivityBaseConfig(); - _InitActivityMaterialConfig(); - _InitAiAttackAttrConfig(); _InitBuffPropBaseConfig(); - _InitBulletBaseConfig(); - _InitEnemyBaseConfig(); - _InitLiquidMaterialConfig(); _InitSoundConfig(); _InitWeaponBaseConfig(); + _InitActivityMaterialConfig(); + _InitAiAttackAttrConfig(); + _InitBulletBaseConfig(); + _InitActivePropBaseConfig(); + _InitEnemyBaseConfig(); + _InitActivityBaseConfig(); + _InitLiquidMaterialConfig(); - _InitActivePropBaseRef(); - _InitActivityBaseRef(); _InitBuffPropBaseRef(); - _InitEnemyBaseRef(); _InitWeaponBaseRef(); - } - private static void _InitActivePropBaseConfig() - { - try - { - var text = _ReadConfigAsText("res://resource/config/ActivePropBase.json"); - ActivePropBase_List = new List(JsonSerializer.Deserialize>(text)); - ActivePropBase_Map = new Dictionary(); - foreach (var item in ActivePropBase_List) - { - ActivePropBase_Map.Add(item.Id, item); - } - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化表'ActivePropBase'失败!"); - } - } - 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 _InitActivityMaterialConfig() - { - try - { - var text = _ReadConfigAsText("res://resource/config/ActivityMaterial.json"); - ActivityMaterial_List = JsonSerializer.Deserialize>(text); - ActivityMaterial_Map = new Dictionary(); - foreach (var item in ActivityMaterial_List) - { - ActivityMaterial_Map.Add(item.Id, item); - } - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化表'ActivityMaterial'失败!"); - } - } - private static void _InitAiAttackAttrConfig() - { - try - { - var text = _ReadConfigAsText("res://resource/config/AiAttackAttr.json"); - AiAttackAttr_List = JsonSerializer.Deserialize>(text); - AiAttackAttr_Map = new Dictionary(); - foreach (var item in AiAttackAttr_List) - { - AiAttackAttr_Map.Add(item.Id, item); - } - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化表'AiAttackAttr'失败!"); - } + _InitActivePropBaseRef(); + _InitEnemyBaseRef(); + _InitActivityBaseRef(); } private static void _InitBuffPropBaseConfig() { @@ -214,60 +142,6 @@ public static partial class ExcelConfig throw new Exception("初始化表'BuffPropBase'失败!"); } } - private static void _InitBulletBaseConfig() - { - try - { - var text = _ReadConfigAsText("res://resource/config/BulletBase.json"); - BulletBase_List = JsonSerializer.Deserialize>(text); - BulletBase_Map = new Dictionary(); - foreach (var item in BulletBase_List) - { - BulletBase_Map.Add(item.Id, item); - } - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化表'BulletBase'失败!"); - } - } - private static void _InitEnemyBaseConfig() - { - try - { - var text = _ReadConfigAsText("res://resource/config/EnemyBase.json"); - EnemyBase_List = new List(JsonSerializer.Deserialize>(text)); - EnemyBase_Map = new Dictionary(); - foreach (var item in EnemyBase_List) - { - EnemyBase_Map.Add(item.Id, item); - } - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化表'EnemyBase'失败!"); - } - } - private static void _InitLiquidMaterialConfig() - { - try - { - var text = _ReadConfigAsText("res://resource/config/LiquidMaterial.json"); - LiquidMaterial_List = JsonSerializer.Deserialize>(text); - LiquidMaterial_Map = new Dictionary(); - foreach (var item in LiquidMaterial_List) - { - LiquidMaterial_Map.Add(item.Id, item); - } - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化表'LiquidMaterial'失败!"); - } - } private static void _InitSoundConfig() { try @@ -304,45 +178,133 @@ public static partial class ExcelConfig throw new Exception("初始化表'WeaponBase'失败!"); } } - - private static void _InitActivePropBaseRef() + private static void _InitActivityMaterialConfig() { - foreach (Ref_ActivePropBase item in ActivePropBase_List) + try { - try + var text = _ReadConfigAsText("res://resource/config/ActivityMaterial.json"); + ActivityMaterial_List = JsonSerializer.Deserialize>(text); + ActivityMaterial_Map = new Dictionary(); + foreach (var item in ActivityMaterial_List) { - if (!string.IsNullOrEmpty(item.__Activity)) - { - item.Activity = ActivityBase_Map[item.__Activity]; - } - - } - catch (Exception e) - { - GD.PrintErr(e.ToString()); - throw new Exception("初始化'ActivePropBase'引用其他表数据失败, 当前行id: " + item.Id); + ActivityMaterial_Map.Add(item.Id, item); } } - } - private static void _InitActivityBaseRef() - { - foreach (Ref_ActivityBase item in ActivityBase_List) + catch (Exception e) { - 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); - } + GD.PrintErr(e.ToString()); + throw new Exception("初始化表'ActivityMaterial'失败!"); } } + private static void _InitAiAttackAttrConfig() + { + try + { + var text = _ReadConfigAsText("res://resource/config/AiAttackAttr.json"); + AiAttackAttr_List = JsonSerializer.Deserialize>(text); + AiAttackAttr_Map = new Dictionary(); + foreach (var item in AiAttackAttr_List) + { + AiAttackAttr_Map.Add(item.Id, item); + } + } + catch (Exception e) + { + GD.PrintErr(e.ToString()); + throw new Exception("初始化表'AiAttackAttr'失败!"); + } + } + private static void _InitBulletBaseConfig() + { + try + { + var text = _ReadConfigAsText("res://resource/config/BulletBase.json"); + BulletBase_List = JsonSerializer.Deserialize>(text); + BulletBase_Map = new Dictionary(); + foreach (var item in BulletBase_List) + { + BulletBase_Map.Add(item.Id, item); + } + } + catch (Exception e) + { + GD.PrintErr(e.ToString()); + throw new Exception("初始化表'BulletBase'失败!"); + } + } + private static void _InitActivePropBaseConfig() + { + try + { + var text = _ReadConfigAsText("res://resource/config/ActivePropBase.json"); + ActivePropBase_List = new List(JsonSerializer.Deserialize>(text)); + ActivePropBase_Map = new Dictionary(); + foreach (var item in ActivePropBase_List) + { + ActivePropBase_Map.Add(item.Id, item); + } + } + catch (Exception e) + { + GD.PrintErr(e.ToString()); + throw new Exception("初始化表'ActivePropBase'失败!"); + } + } + private static void _InitEnemyBaseConfig() + { + try + { + var text = _ReadConfigAsText("res://resource/config/EnemyBase.json"); + EnemyBase_List = new List(JsonSerializer.Deserialize>(text)); + EnemyBase_Map = new Dictionary(); + foreach (var item in EnemyBase_List) + { + EnemyBase_Map.Add(item.Id, item); + } + } + catch (Exception e) + { + GD.PrintErr(e.ToString()); + 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 + { + var text = _ReadConfigAsText("res://resource/config/LiquidMaterial.json"); + LiquidMaterial_List = JsonSerializer.Deserialize>(text); + LiquidMaterial_Map = new Dictionary(); + foreach (var item in LiquidMaterial_List) + { + LiquidMaterial_Map.Add(item.Id, item); + } + } + catch (Exception e) + { + GD.PrintErr(e.ToString()); + throw new Exception("初始化表'LiquidMaterial'失败!"); + } + } + private static void _InitBuffPropBaseRef() { foreach (Ref_BuffPropBase item in BuffPropBase_List) @@ -362,25 +324,6 @@ public static partial class ExcelConfig } } } - 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) @@ -449,6 +392,63 @@ public static partial class ExcelConfig } } } + private static void _InitActivePropBaseRef() + { + foreach (Ref_ActivePropBase item in ActivePropBase_List) + { + try + { + if (!string.IsNullOrEmpty(item.__Activity)) + { + item.Activity = ActivityBase_Map[item.__Activity]; + } + + } + catch (Exception e) + { + GD.PrintErr(e.ToString()); + throw new Exception("初始化'ActivePropBase'引用其他表数据失败, 当前行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 _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/framework/activity/ActivityObject_Create.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Create.cs index 3805d0f7..f8d9e049 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Create.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Create.cs @@ -14,9 +14,18 @@ public partial class ActivityObject { throw new Exception("实例化 ActivityObject 前请先调用 'GameApplication.Instance.DungeonManager.CreateNewWorld()' 初始化 World 对象"); } - var instance = ResourceManager.LoadAndInstantiate(config.Prefab); - instance._InitNode(config, world); - return instance; + + try + { + var instance = ResourceManager.LoadAndInstantiate(config.Prefab); + instance._InitNode(config, world); + return instance; + } + catch (Exception e) + { + Debug.LogError($"创建实例'{config.Id}'失败, 错误信息: {e.Message}\n{e.StackTrace}"); + throw; + } } /// diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs index fd0e5d5a..1e93b25c 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs @@ -24,6 +24,11 @@ public partial class ActivityObject /// public const string Id_enemy0002 = "enemy0002"; /// + /// 名称: 商店老板
+ /// 简介: 商店老板 + ///
+ public const string Id_shopBoss0001 = "shopBoss0001"; + /// /// 名称: 步枪
/// 简介: ///
diff --git a/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs b/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs index d9425d2c..97f2e5a8 100644 --- a/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs +++ b/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs @@ -229,6 +229,9 @@ public class RoomPreinstall : IDestroy mark.Id = ActivityObject.Ids.Id_treasure_box0001; mark.ActivityType = ActivityType.Treasure; mark.Altitude = 0; + + // mark.Id = ActivityObject.Ids.Id_shopBoss0001; + // mark.ActivityType = ActivityType.Enemy; } private void HandlerTreasureMark(World world, MarkInfo markInfo, ActivityMark mark)