// Наносим переодический урон IEnumerator PeriodicDamage() { while (botManager != null) { botManager.DoDamage(weaponMeta.PeriodicDamage, false); yield return(new WaitForSeconds(weaponMeta.DamageInterval)); } }
void OnCollisionEnter2D(Collision2D collision) { if (isDead) { return; } if (isAlly) { botManager = collision.transform.GetComponent <BotManager>(); if (botManager != null) { botManager.DoDamage(impactDamage); //Die(); // Если оружие поджигающего типа, начинаем наносить переодический урон if (weaponMeta.WeaponType == WeaponType.Fiery) { StartPeriodicDamage(); } // Если оружие замораживающего типа, останавливаем ход врагу на n раундов else if (weaponMeta.WeaponType == WeaponType.Frozen) { botManager.FreezeState(weaponMeta.SkipTurnsCount); } } } else { playerManager = collision.transform.GetComponent <PlayerManager>(); if (playerManager != null) { playerManager.DoDamage(impactDamage); //Die(); } } Die(); GameManager.Instance.OnMoveEnded(); }