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); } }
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(); }
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); } }
// 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); }
// 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); } }
public void SetValuesFromMasterTower(SkillsProperties sp) { masterTower.GetComponent <PropertiesManager>().SetValues(sp); }