private void StartParticles(TowerInstance t) { GameObject obj = t.GetGameObject(); if (obj != null) { ParticleSystem[] psArray = obj.GetComponentsInChildren <ParticleSystem>(); if (psArray.Length > 0 && psArray[0].isStopped) { psArray[0].Play(); } } }
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); } } Game.AddLumber(gain); }
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 Clicked() { TowerInstance ti = Game.GetSelectedTower(); if (ti != null) { Tile tile = ti.GetTile(); if (tile.GetHeld() != null) { tile.SetUsed(false); Destroy(ti.GetGameObject()); tile.Hold(null); Game.SelectTower(null); Game.AddLumber((int)Math.Round(ti.GetCost() / 3.0)); } } }
// Update is called once per frame void Update() { if (tower.GetData() != null) { transform.localPosition = Camera.main.WorldToScreenPoint(tower.GetGameObject().transform.position + new Vector3(0, 12f, 0)) - new Vector3(Screen.width / 2, Screen.height / 2, 0); if (tower.GetData() is Tower) { progressBar.transform.localScale = new Vector3((float)TechTree.GetProgress(tower.GetData() as Tower) / ((tower.GetData() as Tower).GetCost()), 1f, 1f); } else { progressBar.transform.localScale = new Vector3((float)TechTree.GetProgress(tower.GetData() as Upgrade) / ((tower.GetData() as Upgrade).GetCost()), 1f, 1f); } } else { transform.position = new Vector3(-1000f, -1000f, 0f); } }
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); } }
void FixedUpdate() { if (enemy.IsDead()) { System.Random r = new System.Random(); if (r.NextDouble() < chance) { Game.AddMP((int)Math.Round(enemy.GetMaxHealth() * .20)); } Enemies.KillEnemy(enemy); Destroy(healthBar); GameObject.Destroy(gameObject); // Make this dependent on enemy type Game.IncreaseScore(1); } enemy.Update(); if (enemy.GetAttackState()) { if (hitTower == null) { enemy.SetAttackState(false); } else if (enemy.GetCooldown() <= 0) { if (enemy.GetTypeName() == Enemy.EnemyType.Boomer) { hitTower.SendMessageUpwards("DestroyAll"); } else { enemy.SetCooldown((int)Math.Round(120 / ((30 + enemy.GetAttackSpeed() / 3) * 0.01))); hitTower.SendMessageUpwards("AddHealth", -enemy.GetDamage()); } } } else { float step = enemy.GetSpeed() * Time.deltaTime; // calculate distance to move if (towerTarget != null) { float distance = Vector3.Distance(transform.position, towerTarget.position + new Vector3(0, 8f, 0)); if (distance < enemy.GetAttackRange()) { enemy.SetAttackState(true); } transform.position = Vector3.MoveTowards(transform.position, towerTarget.position + new Vector3(0, 8f, 0), step); } else { transform.position = Vector3.MoveTowards(transform.position, Game.baseTower.GetPosition() + new Vector3(0, 8f, 0), step); } Collider[] hitColliders = Physics.OverlapSphere(transform.position, enemy.GetDetectionRange()); double highest = -9999; for (int i = 0; i < hitColliders.Length; i++) { if (hitColliders[i].tag == "tower" || hitColliders[i].tag == "base") { TowerInstance ti = hitColliders[i].GetComponentInParent <TowerScript>().tower; if (ti != null) { double thisValue = enemy.GetPriority(ti, enemy.GetPosition()); if (thisValue > highest) { towerTarget = ti.GetGameObject().transform; highest = thisValue; hitTower = hitColliders[i]; } } } } } }