public void Fire(Vector2 direction, KillableUnit immuneCaster = null) { if (_lifeCoroutine == null) { if (immuneCaster != null) { _immunityList.Add(immuneCaster); } _moveDirection = direction; _lifeCoroutine = StartCoroutine(LifeCountdown()); } }
private void DealDamageToKillable(KillableUnit victim) { if (victim == null) { return; } if (!_victimHitCount.ContainsKey(victim)) { _victimHitCount.Add(victim, 0); } victim.RecieveDamage(_damage); ++_victimHitCount[victim]; if (!_immunityList.Contains(victim) && _victimHitCount[victim] >= _hitCount) { _immunityList.Add(victim); _victimHitCount.Remove(victim); } }