private bool invadeTower(TowerBehavior tower)
 {
     if (tower.getTowerOwner() == TowerBehavior.TOWEROWNER.PEASANT)
     {
         if (Vector3.Distance(transform.position, tower.getExactTowerLoc()) < convertDistance)
         {
             myClass = setClass(tower);
             setColor();
             targetPos = middleEarth;
         }
         else
         {
             targetPos = tower.getExactTowerLoc();
         }
         return true;
     }
     return false;
 }
    // Use this for initialization
    void Start()
    {
        mMainCamera = Camera.main;

        myClass = PEASANTCLASS.PEASANT;
        MeleeTower = GameObject.Find("MeleeTower");
        RangedTower = GameObject.Find("RangedTower");
        MagicTower = GameObject.Find("MagicTower");
        //		EliteTower = GameObject.Find("EliteTower");
        //		BossTower = GameObject.Find("BossTower");
        HealTower = GameObject.Find("HealTower");

        MeleeTowerBehavior = MeleeTower.GetComponent<TowerBehavior>();
        RangedTowerBehavior = RangedTower.GetComponent<TowerBehavior>();
        MagicTowerBehavior = MagicTower.GetComponent<TowerBehavior>();
        //		EliteTowerBehavior = EliteTower.GetComponent<TowerBehavior>();
        //		BossTowerBehavior = BossTower.GetComponent<TowerBehavior>();
        UpdateWorldWindowBound();
        transform.position = new Vector3((float)(mWorldMin.x + mWorldMax.x),
                                         mWorldMin.y,0f);
        //transform.up = middleEarth - transform.position;
    }
    // Use this for initialization
    void Start()
    {
        mMainCamera = Camera.main;

        myClass = PEASANTCLASS.PEASANT;
        MeleeTower = GameObject.Find("MeleeTower");
        RangedTower = GameObject.Find("RangedTower");
        MagicTower = GameObject.Find("MagicTower");
        //		EliteTower = GameObject.Find("EliteTower");
        //		BossTower = GameObject.Find("BossTower");
        HealTower = GameObject.Find("HealTower");

        MeleeTowerBehavior = MeleeTower.GetComponent<TowerBehavior>();
        RangedTowerBehavior = RangedTower.GetComponent<TowerBehavior>();
        MagicTowerBehavior = MagicTower.GetComponent<TowerBehavior>();
        //		EliteTowerBehavior = EliteTower.GetComponent<TowerBehavior>();
        //		BossTowerBehavior = BossTower.GetComponent<TowerBehavior>();
        UpdateWorldWindowBound();
        transform.position = new Vector3((float)(mWorldMin.x + mWorldMax.x),
                                         mWorldMin.y,0f);

        float myTarget = Random.value;
        if (myTarget < 0.3f)
            targetPos = MeleeTowerBehavior.getExactTowerLoc();
        else if (myTarget < 0.6f)
            targetPos = RangedTowerBehavior.getExactTowerLoc();
        else
            targetPos = MagicTowerBehavior.getExactTowerLoc();

        targetPos.z = 0f;
    }
    // Update is called once per frame
    void Update()
    {
        if (myClass == PEASANTCLASS.PEASANT)
        {
            if (MagicTowerBehavior.getTowerOwner() == TowerBehavior.TOWEROWNER.PEASANT)
            {
                float temp = Vector3.Distance(transform.position, MagicTowerBehavior.getExactTowerLoc());
                if ( Vector3.Distance(transform.position, MagicTowerBehavior.getExactTowerLoc()) < convertDistance)
                {
                    myClass = PEASANTCLASS.MAGIC;
                    this.renderer.material.color = Color.blue;
                    transform.up = middleEarth - transform.position;
                }
                else
                {
                    transform.up = MagicTowerBehavior.getExactTowerLoc() - transform.position;
                }
            }
            else if (RangedTowerBehavior.getTowerOwner() == TowerBehavior.TOWEROWNER.PEASANT)
            {
                if (Vector3.Distance(transform.position, RangedTowerBehavior.getExactTowerLoc()) < convertDistance)
                {
                    myClass = PEASANTCLASS.RANGED;
                    this.renderer.material.color = Color.green;
                    transform.up = middleEarth - transform.position;
                }
                else
                {
                    transform.up = RangedTowerBehavior.getExactTowerLoc() - transform.position;
                }
            }
            else if (MeleeTowerBehavior.getTowerOwner() == TowerBehavior.TOWEROWNER.PEASANT)
            {
                if (Vector3.Distance(transform.position, MeleeTowerBehavior.getExactTowerLoc()) < convertDistance)
                {
                    myClass = PEASANTCLASS.MELEE;
                    this.renderer.material.color = Color.red;
                    transform.up = middleEarth - transform.position;
                }
                else
                {
                    transform.up = MeleeTowerBehavior.getExactTowerLoc() - transform.position;
                }
            }
        }
        else
            transform.up = middleEarth - transform.position;

        transform.position += transform.up * (peasantSpeed * Time.smoothDeltaTime);
    }