protected void SpawnProjectile(BasicEnemy enemy) { var player = FindPlayer(enemy.transform.position); var direction = Vector2.zero; if (player == null) { direction = rand.RandomDirection2D(); } else { direction = player.transform.position - enemy.transform.position; direction = direction.normalized; } var spawned = Instantiate(projectiles[rand.RandomIntLessThan(projectiles.Length)]); spawned.transform.position = enemy.basicSpawnAnchor.transform.position; spawned.transform.parent = GameManager.Instance.holder.transform; var proj = spawned.GetComponent <Projectile>(); if (proj != null) { proj.SetVelocity(direction * speed); proj.doNotHitLayers = enemy.gameObject.layer; proj.doNotHit = enemy.GetComponent <Resources>(); } }
public void OnHit(int damage) { if (damage > 0) { return; } if (rand.RandomChance(chanceLosePowerupOnHit * Mathf.Abs(damage)) && effects.Count != 0) { effects.RemoveAt(rand.RandomIntLessThan(effects.Count)); losePowerup.Play(); } takeDamage.Play(); }