From 6420ddb1e1b93ccbe2cb92dd4cf7379534df68a4 Mon Sep 17 00:00:00 2001 From: kittyegg Date: Sat, 4 Jul 2026 01:52:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=81=D0=BF=D0=B0=D0=B2=D0=BD=20=D0=B2=D1=80=D0=B0=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Enemy.cs | 21 ++++++++++++++++----- Assets/Scripts/EnemySpawner.cs | 9 +++++++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Assets/Scripts/Enemy.cs b/Assets/Scripts/Enemy.cs index 1adacdd..43a63b5 100644 --- a/Assets/Scripts/Enemy.cs +++ b/Assets/Scripts/Enemy.cs @@ -34,11 +34,11 @@ public class Enemy : MonoBehaviour remove => _onDestroyed.RemoveListener(value); } - public SandPathBuildService PathBuildService - { - get => _pathService; - set => _pathService = value; - } + //public SandPathBuildService PathBuildService + //{ + // get => _pathService; + // set => _pathService = value; + //} public int PathLenght => _path?.Count ?? -1; @@ -54,6 +54,17 @@ public class Enemy : MonoBehaviour public float Damage { get => _damage; set => _damage = value; } + public Enemy Spawn(float healthMultiplier, float speedMultiplier, float damageMultiplier, SandPathBuildService pathBuildService, Transform spawnPoint, Transform parent) + { + var enemy = Instantiate(this, spawnPoint.position, spawnPoint.rotation, parent); + enemy.Health = _health * healthMultiplier; + enemy._speed = _speed * speedMultiplier; + enemy.Damage = _damage * damageMultiplier; + enemy._pathService = pathBuildService; + + return enemy; + } + private void Start() { _path = new Queue(_pathService.GetPath()); diff --git a/Assets/Scripts/EnemySpawner.cs b/Assets/Scripts/EnemySpawner.cs index fd3c9a6..262ed5b 100644 --- a/Assets/Scripts/EnemySpawner.cs +++ b/Assets/Scripts/EnemySpawner.cs @@ -43,8 +43,13 @@ public class EnemySpawner : MonoBehaviour foreach (var prefab in level.EnemiesPrefabs) { - var enemy = Instantiate(prefab, _spawnPoint.position, _spawnPoint.rotation, _enemyHolder); - enemy.PathBuildService = _pathBuildService; + var enemy = prefab.Spawn( + level.EnemiesHealthMultiplier, + level.EnemiesSpeedMultiplier, + level.EnemiesDamagingMultiplier, + _pathBuildService, + _spawnPoint, + _enemyHolder); _onEnemySpawned?.Invoke(enemy); yield return wait;