diff --git a/DungeonShooting_Godot/prefab/effect/weapon/FirePart.tscn b/DungeonShooting_Godot/prefab/effect/weapon/FirePart.tscn deleted file mode 100644 index 629586a..0000000 --- a/DungeonShooting_Godot/prefab/effect/weapon/FirePart.tscn +++ /dev/null @@ -1,13 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://bh6vo2i6x7lmj"] - -[sub_resource type="ParticleProcessMaterial" id="1"] -spread = 60.0 -gravity = Vector3(0, 0, 0) - -[node name="FirePart" type="GPUParticles2D"] -emitting = false -amount = 10 -process_material = SubResource("1") -lifetime = 0.2 -one_shot = true -explosiveness = 1.0 diff --git a/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs b/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs index 987771d..ed410f7 100644 --- a/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs +++ b/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs @@ -298,9 +298,10 @@ activityObject.StartCoroutine(OnActivityObjectBirth(activityObject)); activityObject.PutDown(GetDefaultLayer(activityMark)); - var effect1 = ResourceManager.LoadAndInstantiate(ResourcePath.prefab_effect_common_Effect1_tscn); + var effect1 = ObjectPool.GetItem(ResourcePath.prefab_effect_common_Effect1_tscn); effect1.Position = activityObject.Position + new Vector2(0, -activityMark.Altitude); effect1.AddToActivityRoot(RoomLayerEnum.YSortLayer); + effect1.PlayEffect(); } i++; diff --git a/DungeonShooting_Godot/src/framework/pool/IPoolItem.cs b/DungeonShooting_Godot/src/framework/pool/IPoolItem.cs index 8ff53da..73c66db 100644 --- a/DungeonShooting_Godot/src/framework/pool/IPoolItem.cs +++ b/DungeonShooting_Godot/src/framework/pool/IPoolItem.cs @@ -11,7 +11,7 @@ /// /// 对象唯一标识,用于在对象池中区分对象类型,可以是资源路径,也可以是配置表id /// - string Logotype { get; } + string Logotype { get; set; } /// /// 当物体被回收时调用,也就是进入对象池 /// diff --git a/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs b/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs index ae5d5c9..8cf2687 100644 --- a/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs +++ b/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs @@ -50,7 +50,7 @@ /// public void PlayBoom() { - var explode = ObjectManager.GetExplode(ResourcePath.prefab_bullet_explode_Explode0001_tscn); + var explode = ObjectManager.GetPoolItem(ResourcePath.prefab_bullet_explode_Explode0001_tscn); var pos = Position; explode.Position = pos; explode.RotationDegrees = Utils.Random.RandomRangeInt(0, 360); diff --git a/DungeonShooting_Godot/src/game/activity/role/Role_Animation.cs b/DungeonShooting_Godot/src/game/activity/role/Role_Animation.cs index 8de62e5..1dfcc68 100644 --- a/DungeonShooting_Godot/src/game/activity/role/Role_Animation.cs +++ b/DungeonShooting_Godot/src/game/activity/role/Role_Animation.cs @@ -43,13 +43,15 @@ GameCamera.Main.DirectionalShake(Vector2.FromAngle(Mathf.DegToRad(-r)) * 6); } //播放特效 - var sprite = ResourceManager.LoadAndInstantiate(ResourcePath.prefab_effect_weapon_MeleeAttack1_tscn); + var effect = ObjectManager.GetPoolItem(ResourcePath.prefab_effect_weapon_MeleeAttack1_tscn); + var sprite = (Node2D)effect; var localFirePosition = activeItem.GetLocalFirePosition() - activeItem.GripPoint.Position; localFirePosition *= 0.9f; sprite.Position = p1 + localFirePosition.Rotated(Mathf.DegToRad(r)); sprite.RotationDegrees = r; AddChild(sprite); - + effect.PlayEffect(); + //启用近战碰撞区域 MeleeAttackCollision.Disabled = false; })); diff --git a/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs b/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs index db74aef..a602808 100644 --- a/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs +++ b/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs @@ -127,10 +127,11 @@ var effPos = Position + new Vector2(0, -Altitude); //血液特效 - var blood = ResourceManager.LoadAndInstantiate(ResourcePath.prefab_effect_enemy_EnemyBloodEffect_tscn); + var blood = ObjectManager.GetPoolItem(ResourcePath.prefab_effect_enemy_EnemyBloodEffect_tscn); blood.Position = effPos - new Vector2(0, 12); blood.AddToActivityRoot(RoomLayerEnum.NormalLayer); - + blood.PlayEffect(); + //创建敌人碎片 var count = Utils.Random.RandomRangeInt(3, 6); for (var i = 0; i < count; i++) diff --git a/DungeonShooting_Godot/src/game/activity/weapon/gun/Gun.cs b/DungeonShooting_Godot/src/game/activity/weapon/gun/Gun.cs index 92a4cfe..76ed43c 100644 --- a/DungeonShooting_Godot/src/game/activity/weapon/gun/Gun.cs +++ b/DungeonShooting_Godot/src/game/activity/weapon/gun/Gun.cs @@ -17,13 +17,14 @@ //创建开火特效 if (!string.IsNullOrEmpty(Attribute.FireEffect)) { - var packedScene = ResourceManager.Load(Attribute.FireEffect); - var sprite = packedScene.Instantiate(); + var effect = ObjectManager.GetPoolItem(Attribute.FireEffect); + var sprite = (Node2D)effect; // sprite.GlobalPosition = FirePoint.GlobalPosition; // sprite.GlobalRotation = FirePoint.GlobalRotation; // sprite.AddToActivityRoot(RoomLayerEnum.YSortLayer); sprite.Position = GetLocalFirePosition(); AddChild(sprite); + effect.PlayEffect(); } } diff --git a/DungeonShooting_Godot/src/game/effects/AutoDestroyParticles.cs b/DungeonShooting_Godot/src/game/effects/AutoDestroyParticles.cs index e7aba73..e93d63e 100644 --- a/DungeonShooting_Godot/src/game/effects/AutoDestroyParticles.cs +++ b/DungeonShooting_Godot/src/game/effects/AutoDestroyParticles.cs @@ -4,7 +4,7 @@ /// /// 到期自动销毁的粒子特效 /// -public partial class AutoDestroyParticles : GpuParticles2D +public partial class AutoDestroyParticles : GpuParticles2D, IEffect { /// /// 延时销毁时间 @@ -12,11 +12,55 @@ [Export] public float DelayTime { get; set; } = 1f; - public override async void _Ready() + public bool IsDestroyed { get; private set; } + public bool IsRecycled { get; set; } + public string Logotype { get; set; } + + private double _timer; + private bool _isPlay; + + public virtual void PlayEffect() { Emitting = true; - var sceneTreeTimer = GetTree().CreateTimer(DelayTime); - await ToSignal(sceneTreeTimer, Timer.SignalName.Timeout); + _timer = 0; + _isPlay = true; + } + + public override void _Process(double delta) + { + if (!_isPlay) + { + return; + } + _timer += delta; + if (_timer >= DelayTime) + { + Emitting = false; + _isPlay = false; + ObjectPool.Reclaim(this); + } + } + + + public void Destroy() + { + if (IsDestroyed) + { + return; + } + + IsDestroyed = true; QueueFree(); } + + + public void OnReclaim() + { + GetParent().RemoveChild(this); + } + + public void OnLeavePool() + { + + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/effects/AutoDestroySprite.cs b/DungeonShooting_Godot/src/game/effects/AutoDestroySprite.cs index a24db0c..e3d24f9 100644 --- a/DungeonShooting_Godot/src/game/effects/AutoDestroySprite.cs +++ b/DungeonShooting_Godot/src/game/effects/AutoDestroySprite.cs @@ -4,7 +4,7 @@ /// /// 到期自动销毁的帧动画 /// -public partial class AutoDestroySprite : AnimatedSprite2D +public partial class AutoDestroySprite : AnimatedSprite2D, IEffect { /// /// 延时销毁时间 @@ -18,9 +18,15 @@ [Export] public Array Particles2D { get; set; } - public override async void _Ready() + public bool IsDestroyed { get; private set; } + public bool IsRecycled { get; set; } + public string Logotype { get; set; } + + private double _timer; + private bool _isPlay; + + public virtual void PlayEffect() { - var sceneTreeTimer = GetTree().CreateTimer(DelayTime); if (Particles2D != null) { foreach (var gpuParticles2D in Particles2D) @@ -28,7 +34,50 @@ gpuParticles2D.Emitting = true; } } - await ToSignal(sceneTreeTimer, Timer.SignalName.Timeout); + _timer = 0; + _isPlay = true; + } + + public override void _Process(double delta) + { + if (!_isPlay) + { + return; + } + _timer += delta; + if (_timer >= DelayTime) + { + if (Particles2D != null) + { + foreach (var gpuParticles2D in Particles2D) + { + gpuParticles2D.Emitting = false; + } + } + _isPlay = false; + ObjectPool.Reclaim(this); + } + } + + public void Destroy() + { + if (IsDestroyed) + { + return; + } + + IsDestroyed = true; QueueFree(); } + + + public void OnReclaim() + { + GetParent().RemoveChild(this); + } + + public void OnLeavePool() + { + + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/effects/Blood.cs b/DungeonShooting_Godot/src/game/effects/Blood.cs index 51c9832..ff21809 100644 --- a/DungeonShooting_Godot/src/game/effects/Blood.cs +++ b/DungeonShooting_Godot/src/game/effects/Blood.cs @@ -1,7 +1,7 @@ using Godot; /// -/// 血液溅射效果 +/// 血液溅射效果, 暂未用到 /// public partial class Blood : CpuParticles2D { diff --git a/DungeonShooting_Godot/src/game/effects/Effect1.cs b/DungeonShooting_Godot/src/game/effects/Effect1.cs index 485bd80..3d1902e 100644 --- a/DungeonShooting_Godot/src/game/effects/Effect1.cs +++ b/DungeonShooting_Godot/src/game/effects/Effect1.cs @@ -2,13 +2,19 @@ public partial class Effect1 : AutoDestroyParticles { - public override void _Ready() - { - var c = GetNode("GPUParticles2D"); - c.Amount = Utils.Random.RandomRangeInt(2, 6); - c.Emitting = true; + private GpuParticles2D _particles2D; + private bool _init; - base._Ready(); + public override void PlayEffect() + { + if (!_init) + { + _particles2D = GetNode("GPUParticles2D"); + _init = true; + } + + _particles2D.Amount = Utils.Random.RandomRangeInt(2, 6); + _particles2D.Emitting = true; + base.PlayEffect(); } - } diff --git a/DungeonShooting_Godot/src/game/effects/IEffect.cs b/DungeonShooting_Godot/src/game/effects/IEffect.cs new file mode 100644 index 0000000..2c0e231 --- /dev/null +++ b/DungeonShooting_Godot/src/game/effects/IEffect.cs @@ -0,0 +1,11 @@ + +/// +/// 特效接口 +/// +public interface IEffect : IPoolItem +{ + /// + /// 播放特效 + /// + void PlayEffect(); +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/manager/ObjectManager.cs b/DungeonShooting_Godot/src/game/manager/ObjectManager.cs index 84b03f7..4c5336e 100644 --- a/DungeonShooting_Godot/src/game/manager/ObjectManager.cs +++ b/DungeonShooting_Godot/src/game/manager/ObjectManager.cs @@ -1,16 +1,38 @@  +using Godot; + public static class ObjectManager { - public static Explode GetExplode(string resPath) + /// + /// 根据资源路径获取实例对象, 该对象必须实现 IPoolItem 接口 + /// + /// 资源路径 + public static IPoolItem GetPoolItem(string resPath) { - var explode = ObjectPool.GetItem(resPath); - if (explode == null) + var item = ObjectPool.GetItem(resPath); + if (item == null) { - explode = ResourceManager.LoadAndInstantiate(resPath); - explode.Logotype = resPath; + item = (IPoolItem)ResourceManager.LoadAndInstantiate(resPath); + item.Logotype = resPath; } - return explode; + return item; + } + + /// + /// 根据资源路径获取实例对象, 该对象必须实现 IPoolItem 接口 + /// + /// 资源路径 + public static T GetPoolItem(string resPath) where T : IPoolItem + { + var item = ObjectPool.GetItem(resPath); + if (item == null) + { + item = (T)(IPoolItem)ResourceManager.LoadAndInstantiate(resPath); + item.Logotype = resPath; + } + + return item; } public static Bullet GetBullet(string id) diff --git a/DungeonShooting_Godot/src/game/manager/ResourceManager.cs b/DungeonShooting_Godot/src/game/manager/ResourceManager.cs index 6119cda..c4d4962 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourceManager.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourceManager.cs @@ -130,6 +130,17 @@ /// /// 场景路径 /// 是否使用缓存中的资源 + public static Node LoadAndInstantiate(string path, bool useCache = true) + { + var packedScene = Load(path, useCache); + return packedScene.Instantiate(); + } + + /// + /// 加载并且实例化场景, 并返回 + /// + /// 场景路径 + /// 是否使用缓存中的资源 public static T LoadAndInstantiate(string path, bool useCache = true) where T : Node { var packedScene = Load(path, useCache); diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs index 03b63e2..8ad701a 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs @@ -21,7 +21,6 @@ public const string prefab_effect_enemy_EnemyBloodEffect_tscn = "res://prefab/effect/enemy/EnemyBloodEffect.tscn"; public const string prefab_effect_weapon_BulletDisappear_tscn = "res://prefab/effect/weapon/BulletDisappear.tscn"; public const string prefab_effect_weapon_BulletSmoke_tscn = "res://prefab/effect/weapon/BulletSmoke.tscn"; - public const string prefab_effect_weapon_FirePart_tscn = "res://prefab/effect/weapon/FirePart.tscn"; public const string prefab_effect_weapon_MeleeAttack1_tscn = "res://prefab/effect/weapon/MeleeAttack1.tscn"; public const string prefab_effect_weapon_MeleeAttack2_tscn = "res://prefab/effect/weapon/MeleeAttack2.tscn"; public const string prefab_effect_weapon_ShotFire_tscn = "res://prefab/effect/weapon/ShotFire.tscn"; @@ -43,12 +42,14 @@ public const string prefab_prop_buff_BuffProp0008_tscn = "res://prefab/prop/buff/BuffProp0008.tscn"; public const string prefab_prop_buff_BuffProp0009_tscn = "res://prefab/prop/buff/BuffProp0009.tscn"; public const string prefab_prop_buff_BuffProp0010_tscn = "res://prefab/prop/buff/BuffProp0010.tscn"; + public const string prefab_prop_buff_BuffProp0011_tscn = "res://prefab/prop/buff/BuffProp0011.tscn"; public const string prefab_role_Enemy0001_tscn = "res://prefab/role/Enemy0001.tscn"; public const string prefab_role_Role0001_tscn = "res://prefab/role/Role0001.tscn"; public const string prefab_role_RoleTemplate_tscn = "res://prefab/role/RoleTemplate.tscn"; public const string prefab_shell_Shell0001_tscn = "res://prefab/shell/Shell0001.tscn"; public const string prefab_shell_Shell0002_tscn = "res://prefab/shell/Shell0002.tscn"; public const string prefab_shell_Shell0003_tscn = "res://prefab/shell/Shell0003.tscn"; + public const string prefab_shell_Shell0004_tscn = "res://prefab/shell/Shell0004.tscn"; public const string prefab_test_MoveComponent_tscn = "res://prefab/test/MoveComponent.tscn"; public const string prefab_test_TestActivity_tscn = "res://prefab/test/TestActivity.tscn"; public const string prefab_ui_BottomTips_tscn = "res://prefab/ui/BottomTips.tscn"; @@ -119,11 +120,13 @@ public const string resource_sound_sfx_beLoaded_BeLoaded0015_ogg = "res://resource/sound/sfx/beLoaded/BeLoaded0015.ogg"; public const string resource_sound_sfx_beLoaded_BeLoaded0016_ogg = "res://resource/sound/sfx/beLoaded/BeLoaded0016.ogg"; public const string resource_sound_sfx_beLoaded_BeLoaded0017_ogg = "res://resource/sound/sfx/beLoaded/BeLoaded0017.ogg"; + public const string resource_sound_sfx_collision_Collision0001_ogg = "res://resource/sound/sfx/collision/Collision0001.ogg"; public const string resource_sound_sfx_explosion_Explosion0001_ogg = "res://resource/sound/sfx/explosion/Explosion0001.ogg"; public const string resource_sound_sfx_explosion_Explosion0002_ogg = "res://resource/sound/sfx/explosion/Explosion0002.ogg"; public const string resource_sound_sfx_explosion_Explosion0003_ogg = "res://resource/sound/sfx/explosion/Explosion0003.ogg"; public const string resource_sound_sfx_reloading_Reloading0001_ogg = "res://resource/sound/sfx/reloading/Reloading0001.ogg"; public const string resource_sound_sfx_reloading_Reloading0002_ogg = "res://resource/sound/sfx/reloading/Reloading0002.ogg"; + public const string resource_sound_sfx_reloading_Reloading0003_ogg = "res://resource/sound/sfx/reloading/Reloading0003.ogg"; public const string resource_sound_sfx_reloading_Reloading_begin0001_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0001.ogg"; public const string resource_sound_sfx_reloading_Reloading_begin0002_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0002.ogg"; public const string resource_sound_sfx_reloading_Reloading_begin0003_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0003.ogg"; @@ -135,9 +138,11 @@ public const string resource_sound_sfx_reloading_Reloading_begin0009_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0009.ogg"; public const string resource_sound_sfx_reloading_Reloading_begin0010_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0010.ogg"; public const string resource_sound_sfx_reloading_Reloading_begin0011_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0011.ogg"; + public const string resource_sound_sfx_reloading_Reloading_begin0012_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0012.ogg"; public const string resource_sound_sfx_reloading_Reloading_finish0001_ogg = "res://resource/sound/sfx/reloading/Reloading_finish0001.ogg"; public const string resource_sound_sfx_reloading_Reloading_finish0002_ogg = "res://resource/sound/sfx/reloading/Reloading_finish0002.ogg"; public const string resource_sound_sfx_reloading_Reloading_finish0003_ogg = "res://resource/sound/sfx/reloading/Reloading_finish0003.ogg"; + public const string resource_sound_sfx_reloading_Reloading_finish0004_ogg = "res://resource/sound/sfx/reloading/Reloading_finish0004.ogg"; public const string resource_sound_sfx_shooting_Shooting0001_ogg = "res://resource/sound/sfx/shooting/Shooting0001.ogg"; public const string resource_sound_sfx_shooting_Shooting0002_ogg = "res://resource/sound/sfx/shooting/Shooting0002.ogg"; public const string resource_sound_sfx_shooting_Shooting0003_ogg = "res://resource/sound/sfx/shooting/Shooting0003.ogg"; @@ -148,6 +153,7 @@ public const string resource_sound_sfx_shooting_Shooting0008_ogg = "res://resource/sound/sfx/shooting/Shooting0008.ogg"; public const string resource_sound_sfx_shooting_Shooting0009_ogg = "res://resource/sound/sfx/shooting/Shooting0009.ogg"; public const string resource_sound_sfx_shooting_Shooting0010_ogg = "res://resource/sound/sfx/shooting/Shooting0010.ogg"; + public const string resource_sound_sfx_shooting_Shooting0011_ogg = "res://resource/sound/sfx/shooting/Shooting0011.ogg"; public const string resource_sprite_bullet_laser_Laser0001_png = "res://resource/sprite/bullet/laser/Laser0001.png"; public const string resource_sprite_bullet_normal_arrow_png = "res://resource/sprite/bullet/normal/arrow.png"; public const string resource_sprite_bullet_normal_bullet0001_png = "res://resource/sprite/bullet/normal/bullet0001.png"; @@ -189,6 +195,7 @@ public const string resource_sprite_prop_buff_BuffProp0008_png = "res://resource/sprite/prop/buff/BuffProp0008.png"; public const string resource_sprite_prop_buff_BuffProp0009_png = "res://resource/sprite/prop/buff/BuffProp0009.png"; public const string resource_sprite_prop_buff_BuffProp0010_png = "res://resource/sprite/prop/buff/BuffProp0010.png"; + public const string resource_sprite_prop_buff_BuffProp0011_png = "res://resource/sprite/prop/buff/BuffProp0011.png"; public const string resource_sprite_role_role10_png = "res://resource/sprite/role/role10.png"; public const string resource_sprite_role_role3_png = "res://resource/sprite/role/role3.png"; public const string resource_sprite_role_role4_png = "res://resource/sprite/role/role4.png"; @@ -200,6 +207,7 @@ public const string resource_sprite_role_enemy0001_enemy0001_png = "res://resource/sprite/role/enemy0001/enemy0001.png"; public const string resource_sprite_role_enemy0001_enemy0001_Debris_png = "res://resource/sprite/role/enemy0001/enemy0001_Debris.png"; public const string resource_sprite_role_enemy0001_enemy0001_Icon_png = "res://resource/sprite/role/enemy0001/enemy0001_Icon.png"; + public const string resource_sprite_role_enemy0002_Enemy0002_png = "res://resource/sprite/role/enemy0002/Enemy0002.png"; public const string resource_sprite_role_role0001_Role0001_png = "res://resource/sprite/role/role0001/Role0001.png"; public const string resource_sprite_role_role0001_Role0001_Icon_png = "res://resource/sprite/role/role0001/Role0001_Icon.png"; public const string resource_sprite_role_role0001_idle_Sprite0002_png = "res://resource/sprite/role/role0001/idle/Sprite-0002.png"; @@ -228,6 +236,7 @@ public const string resource_sprite_shell_Shell0001_png = "res://resource/sprite/shell/Shell0001.png"; public const string resource_sprite_shell_Shell0002_png = "res://resource/sprite/shell/Shell0002.png"; public const string resource_sprite_shell_Shell0003_png = "res://resource/sprite/shell/Shell0003.png"; + public const string resource_sprite_shell_Shell0004_png = "res://resource/sprite/shell/Shell0004.png"; public const string resource_sprite_ui_font_bg_png = "res://resource/sprite/ui/font_bg.png"; public const string resource_sprite_ui_GUI_png = "res://resource/sprite/ui/GUI.png"; public const string resource_sprite_ui_commonIcon_Add_png = "res://resource/sprite/ui/commonIcon/Add.png"; @@ -300,6 +309,7 @@ public const string resource_sprite_weapon_weapon0008_Weapon0008_png = "res://resource/sprite/weapon/weapon0008/Weapon0008.png"; public const string resource_sprite_weapon_weapon0008_Weapon0008_reloading_png = "res://resource/sprite/weapon/weapon0008/Weapon0008_reloading.png"; public const string resource_sprite_weapon_weapon0009_weapon0009_png = "res://resource/sprite/weapon/weapon0009/weapon0009.png"; + public const string resource_sprite_weapon_weapon0009_Weapon0009_reload_png = "res://resource/sprite/weapon/weapon0009/Weapon0009_reload.png"; public const string resource_spriteFrames_bullet_Bullet0001_tres = "res://resource/spriteFrames/bullet/Bullet0001.tres"; public const string resource_spriteFrames_bullet_Bullet0002_tres = "res://resource/spriteFrames/bullet/Bullet0002.tres"; public const string resource_spriteFrames_bullet_Bullet0003_tres = "res://resource/spriteFrames/bullet/Bullet0003.tres"; @@ -323,11 +333,14 @@ public const string resource_spriteFrames_prop_buff_BuffProp0008_tres = "res://resource/spriteFrames/prop/buff/BuffProp0008.tres"; public const string resource_spriteFrames_prop_buff_BuffProp0009_tres = "res://resource/spriteFrames/prop/buff/BuffProp0009.tres"; public const string resource_spriteFrames_prop_buff_BuffProp0010_tres = "res://resource/spriteFrames/prop/buff/BuffProp0010.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0011_tres = "res://resource/spriteFrames/prop/buff/BuffProp0011.tres"; + public const string resource_spriteFrames_role_Enemy0001_tres = "res://resource/spriteFrames/role/Enemy0001.tres"; + public const string resource_spriteFrames_role_Enemy0002_tres = "res://resource/spriteFrames/role/Enemy0002.tres"; public const string resource_spriteFrames_role_Role0001_tres = "res://resource/spriteFrames/role/Role0001.tres"; - public const string resource_spriteFrames_role_Role1001_tres = "res://resource/spriteFrames/role/Role1001.tres"; public const string resource_spriteFrames_shell_Shell0001_tres = "res://resource/spriteFrames/shell/Shell0001.tres"; public const string resource_spriteFrames_shell_Shell0002_tres = "res://resource/spriteFrames/shell/Shell0002.tres"; public const string resource_spriteFrames_shell_Shell0003_tres = "res://resource/spriteFrames/shell/Shell0003.tres"; + public const string resource_spriteFrames_shell_Shell0004_tres = "res://resource/spriteFrames/shell/Shell0004.tres"; public const string resource_spriteFrames_weapon_Weapon0001_tres = "res://resource/spriteFrames/weapon/Weapon0001.tres"; public const string resource_spriteFrames_weapon_Weapon0002_tres = "res://resource/spriteFrames/weapon/Weapon0002.tres"; public const string resource_spriteFrames_weapon_Weapon0003_tres = "res://resource/spriteFrames/weapon/Weapon0003.tres";