Esempio n. 1
0
    public void Fire(Vector3 firingLocation, Vector3 direction, Vector3 fxLocation)
    {
        Debug.Log("PierceBulletEffect: Firing!");
        RaycastHit[] targets = Physics.RaycastAll(firingLocation, direction, maxDistance);
        for (int i = 0; i < targets.Length; i++)
        {
            IDamageComponent target = targets[i].collider.GetComponent <IDamageComponent>();
            if (target != null)
            {
                target.TakeDamage(damage);
            }
        }

        if (targets.Length > 0)
        {
            if (BulletHit != null)
            {
                BulletHit();
            }
        }

        Debug.Log("PierceBulletEffect: Firing line from " + firingLocation + " to " + firingLocation + direction.normalized * maxDistance);
        line.SetPosition(0, fxLocation);
        line.SetPosition(1, firingLocation + direction.normalized * maxDistance);
        StartCoroutine(StartFireEffect());
    }
Esempio n. 2
0
    protected virtual void OnHit(IDamageComponent target)
    {
        target.TakeDamage(damage);
        gameObject.SetActive(false);

        if (BulletHit != null)
        {
            BulletHit();
        }
    }
Esempio n. 3
0
    void OnCollisionEnter(Collision collision)
    {
        Debug.Log("EnemyScript: I'm colliding with something");
        IDamageComponent player = collision.gameObject.GetComponent <IDamageComponent>();

        if (player != null)
        {
            Debug.Log("EnemyScript: It was the player, attacking!");
            player.TakeDamage(attackDamage);
        }
    }