Ejemplo n.º 1
0
        private void DealAreaDamage(Core.GameObject toIgnore)
        {
            List <BaseAlien> aliens = SceneManager.Instance.currScene.GetObjectsByClass <Assets.Objects.BaseAlien>();

            foreach (BaseAlien alien in aliens)
            {
                if (toIgnore == alien)
                {
                    continue;
                }

                float distance = (alien.transform.position - transform.position).Length();
                if (distance > areaRange)
                {
                    continue;
                }

                Gameplay.Health health = alien.GetComponent <Gameplay.Health>();
                if (health == null)
                {
                    continue;
                }


                health.DealDamage(new Gameplay.DamageInfo()
                {
                    damageDealer = Damage.damageDealer, value = (int)(Damage.value * 0.5)
                });
            }

            RocketExplosion explosion = new RocketExplosion(new Transform(transform));

            GameManager.SpawnObject(explosion);
        }
Ejemplo n.º 2
0
 protected virtual void OnHit(Collider thisCollider, Collider otherCollider)
 {
     Gameplay.Health enemyHealth = otherCollider.Parent.GetComponent <Gameplay.Health>();
     if (enemyHealth != null)
     {
         enemyHealth.DealDamage(Damage);
     }
     else
     {
         return;
     }
     Destroy();
 }
Ejemplo n.º 3
0
        private void CheckCollision(Collider thisCollider, Collider otherCollider)
        {
            GameObject other  = otherCollider.Parent;
            Player     player = other as Player;

            if (player == null)
            {
                return;
            }

            Gameplay.Health health = player.GetComponent <Gameplay.Health>();
            health.Restore(80);
            Destroy();
        }
Ejemplo n.º 4
0
        protected virtual void Load(Core.Transform transform)
        {
            // Physics
            AddComponent(new Body(this));
            AddComponent(new CircleCollider(this, CollisionChanell.Enemy, colliderOffset, colliderRadius));

            // HealthBar
            healthComponent           = AddComponent(new Gameplay.Health(this));
            healthComponent.MaxHealth = maxHealth;
            healthBar = AddComponent(new UI.HealthBar(this, healthBarOffset));
            healthComponent.OnDamageTaken += healthBar.Refresh;
            healthComponent.OnDamageTaken += OnDamage;
            healthComponent.OnDepleted    += Die;

            // AI
            aiAttack   = AddComponent(new Gameplay.AIAttack(this));
            movement   = AddComponent(new Navigation.MovementComponent(this));
            navigation = AddComponent(new Navigation.NavigationAgent(this));

            // Visual
            anim = AddComponent(new Graphics.StackAnimator(this));
        }
Ejemplo n.º 5
0
 private void Die(Gameplay.Health damaged, Gameplay.DamageInfo damageInfo)
 {
     SpawnCorpse();
     Destroy();
 }
Ejemplo n.º 6
0
 private void OnDamage(Gameplay.Health damaged, Gameplay.DamageInfo damageInfo)
 {
     hitSFX.Stop();
     hitSFX.Play();
 }
Ejemplo n.º 7
0
 public void Refresh(Gameplay.Health damaged, Gameplay.DamageInfo dmgInfo)
 {
     SetValue(damaged.GetPercentage());
 }