private void GetCollider(TowerInstance t) { float rangeWithBonus = range * (float)t.GetTotalUpgrades(Upgrade.UpgradeType.Range); Vector3 center = t.GetPosition() + new Vector3(0, 8f, 0); Collider[] hitColliders = Physics.OverlapSphere(center, rangeWithBonus); double max = -9999; attackCollider = null; for (int i = 0; i < hitColliders.Length; i++) { if (hitColliders[i].tag == "enemy") { EnemyInstance ei = hitColliders[i].GetComponentInParent <EnemyScript>().enemy; if (ei != null) { double thisValue = Math.Pow(ei.GetAttackPriority(), 2); if (thisValue > max) { max = thisValue; attackCollider = hitColliders[i]; } } } } }
public void Act(TowerInstance t) { GameObject obj = t.GetGameObject(); if (obj != null) { ParticleSystem[] psArray = obj.GetComponentsInChildren <ParticleSystem>(); if (psArray.Length > 0) { psArray[0].Emit(15); } } int gainWithUpgrades = (int)Math.Round(gain * t.GetTotalUpgrades(Upgrade.UpgradeType.Gain)); Game.AddLumber(gainWithUpgrades); }
public void Act(TowerInstance t) { GetCollider(t); if (attackCollider != null) { int damageWithBonus = (int)Math.Round(damage * t.GetTotalUpgrades(Upgrade.UpgradeType.Damage)); GameObject proj = UnityEngine.Object.Instantiate(projectilePrefab, t.GetGameObject().transform); proj.transform.position += new Vector3(0, 8f, 0); GameObject bullet; if (projectile != null) { bullet = UnityEngine.Object.Instantiate(projectile, proj.transform); proj.GetComponent <ProjectileScript>().bullet = bullet.transform; } proj.GetComponent <ProjectileScript>().target = attackCollider.transform; proj.GetComponent <ProjectileScript>().damage = damageWithBonus; } else { t.SetCooldown(0); } }
public void OnMouseOver() { if (tower.GetTower() is AttackTower) { if (attackRenderer != null) { if (attackRing != null) { int range = (int)Math.Round((tower.GetTower() as AttackTower).GetRange() * tower.GetTotalUpgrades(Upgrade.UpgradeType.Range)); attackRing.transform.localScale = new Vector3(range, range, range); } attackRenderer.enabled = true; } } else if (tower.GetTower() is UpgradeTower && upgradeBar == null) { upgradeBar = Instantiate(upgradeBarPrefab, Game.progressCanvas.transform); upgradeBar.GetComponent <ProgressScript>().tower = tower; } }