Пример #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);
        }
    }
Пример #2
0
 public void SetValues(SkillsProperties sp)
 {
     damage         = sp.GetDamage();
     cooldown       = sp.GetCooldown();
     range          = sp.GetRange();
     effectDuration = sp.GetEffectDuration();
     burnRate       = sp.GetBurnRate();
     slowFactor     = sp.GetSlowFactor();
     rangeRadius    = sp.GetRangeRadius();
 }
Пример #3
0
 private void SetSpecificTowerProperties()
 {
     if (thisButton.kind == ShopManager.Kind.AttackTower)
     {
         skillProperties = thisButton.spell.GetComponent <SkillsProperties>();
         SetTowerAttackTowerProperties();
         upgradeProperty.SetActive(false);
     }
     else
     {
         SetUpgradeProperty();
         AttackTowerValues.transform.parent.gameObject.SetActive(false);
     }
 }
Пример #4
0
    // Function to instantiate a skill depending on what tower he is
    void Attack()
    {
        currentSkill.GetComponent <TowerSpell> ().Seek(currentTarget.transform);

        GameObject       currentSpell = (GameObject)Instantiate(currentSkill, shotSpawn.position, shotSpawn.rotation);
        SkillsProperties skillPro     = currentSpell.GetComponent <SkillsProperties> ();

        // Pass PropertiesManager's information to prefab's SkillsProperties
        skillPro.SetDamage(GetDamage());
        skillPro.SetCooldown(GetCooldown());
        skillPro.SetRange(GetRange());
        skillPro.SetSideEffectValues(GetBurnValue(), GetSlowFactor(), GetRangeRadius(), GetEffectDuration());

        // Spell need to know who instantiated him
        skillPro.SetInvoker(this.gameObject);
    }
Пример #5
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);
        }
    }
Пример #6
0
 public void SetValuesFromMasterTower(SkillsProperties sp)
 {
     masterTower.GetComponent <PropertiesManager>().SetValues(sp);
 }