void killTeam() { Object[] g = FindObjectsOfType(typeof(TowerCode)); for (int h = 0; h < g.Length; h++) { TowerCode temp = (TowerCode)g[h]; temp.teamDie(c); } }
void FixedUpdate() { TowerCode nextTarget = getNextTarget(); if (!(nextTarget == null)) { MoveTo(nextTarget); shoot(); } buildTower(); checkForDeath(); }
TowerCode[] GetTowerCode() { Object[] g = FindObjectsOfType(typeof(TowerCode)); TowerCode[] t = new TowerCode[g.Length]; for (int h = 0; h < g.Length; h++) { TowerCode temp = (TowerCode)g[h]; if (!temp.color.Equals(this.color)) { t[h] = temp; } else { t[h] = null; } } return(t); }
TowerCode getNextTarget() { TowerCode[] t = GetTowerCode(); TowerCode nextTarget = null; float dist = Mathf.Infinity; for (int h = 0; h < t.Length; h++) { if (t[h] != null) { float d = Vector3.Distance(this.transform.position, t[h].transform.position); if (nextTarget == null || d < dist) { nextTarget = t[h]; dist = d; } } } return(nextTarget); }
void buildTower() { if (towerCooldown <= 0) { Transform tra = GetComponent <Transform>(); float x = transform.position.x; float y = transform.position.y; tra.transform.position.Set(x, y, 0); TowerCode tc = tower.GetComponent <TowerCode>(); tc.color = color; tc.col = c; tc.setColor(); Instantiate(tower, this.transform.position, this.transform.rotation); towerCooldown = towerPlaceCooldown; } else { towerCooldown -= Time.deltaTime; } }
void MoveTo(TowerCode nextTarget) { Vector2 v = nextTarget.transform.position - this.transform.position; float angle = Mathf.Atan2(v.y, v.x) * Mathf.Rad2Deg; Quaternion rot = Quaternion.AngleAxis(angle - 90, Vector3.forward); transform.rotation = Quaternion.Slerp(transform.rotation, rot, turnSpeed * Time.deltaTime); if (Vector2.Distance(transform.position, nextTarget.transform.position) < toCloseRange) { transform.position = Vector2.MoveTowards(transform.position, nextTarget.transform.position, -speed * Time.deltaTime); } else if (Vector2.Distance(transform.position, nextTarget.transform.position) > shootRange) { transform.position = Vector2.MoveTowards(transform.position, nextTarget.transform.position, speed * Time.deltaTime); } else { transform.position = this.transform.position; } }
void placeTower() { if (Input.GetButton("Fire3") && buildCoolDown <= 0) { Transform t = GetComponent <Transform>(); float x = rb.transform.position.x; float y = rb.transform.position.y; t.transform.position.Set(x, y, 0); TowerCode tc = tower.GetComponent <TowerCode>(); tc.color = color; tc.col = c; tc.setColor(); Instantiate(tower, this.transform.position, this.transform.rotation); buildCoolDown = BuildCoolDown; } else { buildCoolDown -= Time.deltaTime; } }