diff --git a/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs b/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs index 25686e2..0c41e93 100644 --- a/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs +++ b/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs @@ -80,6 +80,7 @@ namespace Code.App containerBuilder.AddSingleton(staticDataService.DrunkenGrandpaConfig, typeof(DrunkenGrandpaConfig)); containerBuilder.AddSingleton(staticDataService.CockroachConfig, typeof(CockroachConfig)); + containerBuilder.AddSingleton(staticDataService.FogConfig, typeof(FogConfig)); containerBuilder.AddSingleton(staticDataService.AudioMixerConfig, typeof(AudioMixerConfig)); containerBuilder.AddSingleton(staticDataService.SoundtrackListConfig, typeof(SoundtrackListConfig)); diff --git a/Game/CourierOld/Assets/Code/Configs/FogConfig.cs b/Game/CourierOld/Assets/Code/Configs/FogConfig.cs new file mode 100644 index 0000000..1bd6c6c --- /dev/null +++ b/Game/CourierOld/Assets/Code/Configs/FogConfig.cs @@ -0,0 +1,29 @@ +using UnityEngine; +using UnityEngine.AddressableAssets; + +namespace Code.Configs +{ + [CreateAssetMenu(menuName = "Config/Enemies/Fog", fileName = "FogConfig")] + public class FogConfig : ScriptableObject + { + public AssetReference fogPrefab; + + public int damage = int.MaxValue; + public float attackCooldown; + + public float detectionRange; + public float attackRange = 5f; + + public float speed = 1.5f; + + public bool isStunnable; + public float stunDuration; + + public bool usesIdleMovement; + public float idleWanderRadius; + public float idleMoveDurationMin; + public float idleMoveDurationMax; + public float idlePauseDurationMin; + public float idlePauseDurationMax; + } +} \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/Configs/FogConfig.cs.meta b/Game/CourierOld/Assets/Code/Configs/FogConfig.cs.meta new file mode 100644 index 0000000..c537ce3 --- /dev/null +++ b/Game/CourierOld/Assets/Code/Configs/FogConfig.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: aa4dd2a5cce24902a2918488b5751f2f +timeCreated: 1763581410 \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/Gameplay/Enemies/Cockroach.cs b/Game/CourierOld/Assets/Code/Gameplay/Enemies/Cockroach.cs index f9ffb4e..da657d5 100644 --- a/Game/CourierOld/Assets/Code/Gameplay/Enemies/Cockroach.cs +++ b/Game/CourierOld/Assets/Code/Gameplay/Enemies/Cockroach.cs @@ -49,10 +49,7 @@ namespace Code.Gameplay.Enemies if (!(distance <= AttackRange)) return; - if (Player.CustomCharacterController.IsSliding) - ApplyStun(); - else - DealDamage(); + DealDamage(); } } } \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/Gameplay/Enemies/FogEnemy.cs b/Game/CourierOld/Assets/Code/Gameplay/Enemies/Fog.cs similarity index 51% rename from Game/CourierOld/Assets/Code/Gameplay/Enemies/FogEnemy.cs rename to Game/CourierOld/Assets/Code/Gameplay/Enemies/Fog.cs index b3bd3ea..c06d35f 100644 --- a/Game/CourierOld/Assets/Code/Gameplay/Enemies/FogEnemy.cs +++ b/Game/CourierOld/Assets/Code/Gameplay/Enemies/Fog.cs @@ -1,9 +1,35 @@ +using Code.Configs; +using Reflex.Attributes; using UnityEngine; namespace Code.Gameplay.Enemies { - public class FogEnemy : BaseEnemy + public class Fog : BaseEnemy { + [Inject] + private void Construct(FogConfig fogConfig) + { + Damage = fogConfig.damage; + AttackCooldown = fogConfig.attackCooldown; + + DetectionRange = fogConfig.detectionRange; + AttackRange = fogConfig.attackRange; + + Speed = fogConfig.speed; + + IsStunnable = fogConfig.isStunnable; + StunDuration = fogConfig.stunDuration; + + UsesIdleMovement = fogConfig.usesIdleMovement; + IdleWanderRadius = fogConfig.idleWanderRadius; + IdleMoveDurationMin = fogConfig.idleMoveDurationMin; + IdleMoveDurationMax = fogConfig.idleMoveDurationMax; + IdleMoveDurationMin = fogConfig.idleMoveDurationMin; + IdleMoveDurationMax = fogConfig.idleMoveDurationMax; + IdlePauseDurationMin = fogConfig.idlePauseDurationMin; + IdlePauseDurationMax = fogConfig.idlePauseDurationMax; + } + protected override void Awake() { base.Awake(); diff --git a/Game/CourierOld/Assets/Code/Gameplay/Enemies/FogEnemy.cs.meta b/Game/CourierOld/Assets/Code/Gameplay/Enemies/Fog.cs.meta similarity index 100% rename from Game/CourierOld/Assets/Code/Gameplay/Enemies/FogEnemy.cs.meta rename to Game/CourierOld/Assets/Code/Gameplay/Enemies/Fog.cs.meta diff --git a/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs b/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs index b1b8692..da615ed 100644 --- a/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs +++ b/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs @@ -23,6 +23,7 @@ namespace Code.StaticData EnemiesSoundListConfig EnemiesSoundListConfig { get; } DrunkenGrandpaConfig DrunkenGrandpaConfig { get; } CockroachConfig CockroachConfig { get; } + FogConfig FogConfig { get; } void Load(); Task InstantiateAsset(AssetReference assetReference) where T : Behaviour; } diff --git a/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs b/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs index 9c109e1..ae108bd 100644 --- a/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs +++ b/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs @@ -22,6 +22,7 @@ namespace Code.StaticData public EnemiesSoundListConfig EnemiesSoundListConfig { get; private set; } public DrunkenGrandpaConfig DrunkenGrandpaConfig {get; private set;} public CockroachConfig CockroachConfig { get; private set; } + public FogConfig FogConfig { get; private set; } public void Load() { @@ -49,6 +50,7 @@ namespace Code.StaticData { DrunkenGrandpaConfig = Resources.Load(string.Format(StringPaths.ConfigSingle, "Enemies", "DrunkenGrandpaConfig")); CockroachConfig = Resources.Load(string.Format(StringPaths.ConfigSingle, "Enemies", "CockroachConfig")); + FogConfig = Resources.Load(string.Format(StringPaths.ConfigSingle, "Enemies", "FogConfig")); } public async Task InstantiateAsset(AssetReference assetReference) where T : Behaviour diff --git a/Game/CourierOld/Assets/Resources/Configs/Enemies/FogConfig.asset b/Game/CourierOld/Assets/Resources/Configs/Enemies/FogConfig.asset new file mode 100644 index 0000000..f173317 --- /dev/null +++ b/Game/CourierOld/Assets/Resources/Configs/Enemies/FogConfig.asset @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: aa4dd2a5cce24902a2918488b5751f2f, type: 3} + m_Name: FogConfig + m_EditorClassIdentifier: Assembly-CSharp::Code.Configs.FogConfig + fogPrefab: + m_AssetGUID: + m_SubObjectName: + m_SubObjectType: + m_SubObjectGUID: + m_EditorAssetChanged: 0 + damage: 2147483647 + attackCooldown: 0 + detectionRange: 0 + attackRange: 10 + speed: 1.5 + isStunnable: 0 + stunDuration: 0 + usesIdleMovement: 0 + idleWanderRadius: 0 + idleMoveDurationMin: 0 + idleMoveDurationMax: 0 + idlePauseDurationMin: 0 + idlePauseDurationMax: 0 diff --git a/Game/CourierOld/Assets/Resources/Configs/Enemies/FogConfig.asset.meta b/Game/CourierOld/Assets/Resources/Configs/Enemies/FogConfig.asset.meta new file mode 100644 index 0000000..de1d19a --- /dev/null +++ b/Game/CourierOld/Assets/Resources/Configs/Enemies/FogConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 367017c1e176ddbbd9135cb82dbd94d2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/Resources/Scenes/Gameplay.unity b/Game/CourierOld/Assets/Resources/Scenes/Gameplay.unity index 23065da..a9ceb50 100644 --- a/Game/CourierOld/Assets/Resources/Scenes/Gameplay.unity +++ b/Game/CourierOld/Assets/Resources/Scenes/Gameplay.unity @@ -229,28 +229,14 @@ GameObject: - component: {fileID: 471754163} - component: {fileID: 471754162} - component: {fileID: 471754161} - - component: {fileID: 471754159} + - component: {fileID: 471754164} m_Layer: 0 m_Name: Fog m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!114 &471754159 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 471754158} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4c70370426e4457aa9a56c77689158ff, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::Code.Gameplay.Enemies.FogEnemy - agent: {fileID: 0} - enemyCollider: {fileID: 0} + m_IsActive: 1 --- !u!23 &471754161 MeshRenderer: m_ObjectHideFlags: 0 @@ -322,6 +308,20 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &471754164 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471754158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4c70370426e4457aa9a56c77689158ff, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Code.Gameplay.Enemies.Fog + agent: {fileID: 0} + enemyCollider: {fileID: 0} --- !u!1 &522518533 GameObject: m_ObjectHideFlags: 0 @@ -517,7 +517,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!23 &599793082 MeshRenderer: m_ObjectHideFlags: 0