Example #1
0
 void killTeam()
 {
     Object[] g = FindObjectsOfType(typeof(TowerCode));
     for (int h = 0; h < g.Length; h++)
     {
         TowerCode temp = (TowerCode)g[h];
         temp.teamDie(c);
     }
 }
Example #2
0
    void FixedUpdate()
    {
        TowerCode nextTarget = getNextTarget();

        if (!(nextTarget == null))
        {
            MoveTo(nextTarget);
            shoot();
        }
        buildTower();
        checkForDeath();
    }
Example #3
0
 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);
 }
Example #4
0
    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);
    }
Example #5
0
    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;
        }
    }
Example #6
0
    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;
        }
    }