Esempio n. 1
0
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject == target)
        {
            return;
        }

        if (other.tag != "Enemy")
        {
            return;
        }

        Vector3 colDir = other.transform.position - transform.position;

        //Debug.Log(gameObject.name + " atingiu " + other.gameObject.name); /////////////////////////////////

        Quaternion colQua = Quaternion.FromToRotation(transform.forward, colDir);

        GameObject       spellGO    = Instantiate(normalBullet, transform.position, colQua);
        TowerSpell       towerSpell = spellGO.GetComponent <TowerSpell>();
        SkillsProperties skillPro   = spellGO.GetComponent <SkillsProperties> ();

        // Spell need to know who instantiated him
        skillPro.SetInvoker(gameObject.GetComponent <SkillsProperties>().GetInvoker());

        if (towerSpell != null)
        {
            towerSpell.Seek(other.transform);
        }
    }
Esempio n. 2
0
    // Will instantiete the shot and make it fallow the target
    private void Shoot()
    {
        GameObject       spellGO    = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
        TowerSpell       towerSpell = spellGO.GetComponent <TowerSpell>();
        SkillsProperties skillPro   = spellGO.GetComponent <SkillsProperties> ();

        // Set tower values in SkillProperties script on instantiated prefab
        skillPro.SetDamage(GetDamage());
        skillPro.SetCooldown(GetCooldown());
        skillPro.SetRange(GetRange());
        skillPro.SetSideEffectValues(GetBurnValue(), GetSlowFactor(), GetRangeRadius(), GetEffectDuration());

        // Spell need to know who instantiated him
        skillPro.SetInvoker(gameObject);

        if (towerSpell != null)
        {
            towerSpell.Seek(target);
        }
    }