Exemplo n.º 1
0
        private void EnemyMain_OnDamaged(object sender, EnemyMain.OnDamagedEventArgs e)
        {
            Vector3 bloodDir = (GetPosition() - e.attacker.GetPosition()).normalized;

            BloodParticleSystemHandler.Instance.SpawnBlood(5, GetPosition(), bloodDir);

            int damageAmount = Mathf.RoundToInt(30 * e.damageMultiplier * UnityEngine.Random.Range(.8f, 1.2f));

            DamagePopup.Create(GetPosition(), damageAmount, false);
            enemyMain.HealthSystem.Damage(damageAmount);

            //Sound_Manager.PlaySound(Sound_Manager.Sound.BodyHit_1, GetPosition());

            if (enemyMain.HealthSystem.IsDead())
            {
                FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir);
                enemyMain.DestroySelf();
                Sound_Manager.PlaySound(Sound_Manager.Sound.Minion_Dead, GetPosition());
            }
            else
            {
                // Knockback
                enemyMain.EnemyRigidbody2D.MovePosition(transform.position + bloodDir * 5f);
            }
        }
Exemplo n.º 2
0
        private void EnemyMain_OnDamaged(object sender, EnemyMain.OnDamagedEventArgs e)
        {
            Vector3 bloodDir = (GetPosition() - e.attacker.GetPosition()).normalized;

            Blood_Handler.SpawnBlood(5, GetPosition(), bloodDir);

            enemyMain.HealthSystem.Damage(Mathf.RoundToInt(30 * e.damageMultiplier));

            if (enemyMain.HealthSystem.IsDead())
            {
                //FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir);
                enemyMain.DestroySelf();
            }
        }