Esempio n. 1
0
    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];
                    }
                }
            }
        }
    }
Esempio n. 2
0
    public void Act(TowerInstance t)
    {
        int[] tilePos = t.GetPosition();

        Vector3 center = new Vector3(tilePos[0], 2.5f, tilePos[1]);

        Collider[] hitColliders = Physics.OverlapSphere(center, range);

        for (int i = 0; i < hitColliders.Length; i++)
        {
            hitColliders[i].SendMessage("AddHealth", -damage, SendMessageOptions.DontRequireReceiver);
        }
    }
Esempio n. 3
0
 //Override so that priorities work
 public virtual double GetPriority(TowerInstance ti, Vector3 pos)
 {
     return(ti.GetPriority() * 20 / Math.Pow(Vector3.Distance(ti.GetPosition(), pos), 2));
 }