Beispiel #1
0
    public void Damage(IEnemyTargetable attacker)
    {
        Vector3 bloodDir = (GetPosition() - attacker.GetPosition()).normalized;

        Blood_Handler.SpawnBlood(GetPosition(), bloodDir);

        int damageAmount = 30;

        DamagePopup.Create(GetPosition(), damageAmount, false);
        healthSystem.Damage(damageAmount);
        if (IsDead())
        {
            FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir);
            Destroy(gameObject);
        }
        else
        {
            // Knockback
            transform.position += bloodDir * 5f;
            if (hitUnitAnim != null)
            {
                state = State.Busy;
                characterBase.PlayHitAnimation(bloodDir * (Vector2.one * -1f), SetStateNormal);
            }
        }
    }
Beispiel #2
0
    public void Damage(IEnemyTargetable attacker, int damageAmount)
    {
        Vector3 bloodDir = (GetPosition() - attacker.GetPosition()).normalized;

        Blood_Handler.SpawnBlood(4, GetPosition(), bloodDir);
        health -= damageAmount;
        if (IsDead())
        {
            FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir);
            Destroy(gameObject);
        }
        else
        {
            // Knockback

            /*transform.position += bloodDir * 5f;
             * if (hitUnitAnim != null) {
             *  state = State.Busy;
             *  unitAnimation.PlayAnimForced(hitUnitAnim, bloodDir * (Vector2.one * -1f), 1f, (UnitAnim unitAnim) => {
             *      state = State.Normal;
             *  }, null, null);
             * }*/
        }
    }
Beispiel #3
0
    public void Damage(IEnemyTargetable attacker)
    {
        Vector3 bloodDir = (GetPosition() - attacker.GetPosition()).normalized;

        //Blood_Handler.SpawnBlood(GetPosition(), bloodDir);
        health--;
        if (IsDead())
        {
            FlyingBody.Create(GameAssetsDefault.i.pfEnemyFlyingBody, GetPosition(), bloodDir);
            Destroy(gameObject);
        }
        else
        {
            // Knockback
            transform.position += bloodDir * 5f;
            if (hitUnitAnim != null)
            {
                state = State.Busy;
                unitAnimation.PlayAnimForced(hitUnitAnim, bloodDir * (Vector2.one * -1f), 1f, (UnitAnim unitAnim) => {
                    state = State.Normal;
                }, null, null);
            }
        }
    }