Exemple #1
0
        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>();
            }
        }
Exemple #2
0
        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();
        }