Esempio n. 1
0
 void PendingTowerAt(BuildSiteController site)
 {
     newTowerPicture = Instantiate(towerPicture);         //Create tower
     newTowerPicture.transform.SetParent(site.transform); //Set parent
     newTowerPicture.transform.position           = site.transform.position + new Vector3(1.5f, 0, 0);
     site.GetComponent <SpriteRenderer>().enabled = true; //Highlight site
     pendingTowerOnSite = site;
 }
Esempio n. 2
0
    //---- SUCCESS/FAIL METHODS ----
    void PendingTowerSuccess()
    {
        List <Transform> paymentTroops = pendingTowerOnSite.GetTroops();

        for (int i = 0; i < towerCost; i++)
        {
            Destroy(paymentTroops[i].gameObject);
        }
        pendingTowerOnSite.CreateTower();
        Destroy(newTowerPicture);
        pendingTowerOnSite.GetComponent <SpriteRenderer>().enabled = false; //Un hightlight
        pendingTowerOnSite = null;
        potentialMove      = null;
    }
Esempio n. 3
0
    // ################ UPDATE METHODS ################
    void Update()
    {
        if (!gameOver)
        {
            //---- PENDING MOVE becomes PENDING TOWER
            if (potentialMove && potentialMove.tag == "BuildSite" && !pendingTowerOnSite)
            {
                BuildSiteController site = potentialMove.GetComponent <BuildSiteController>();
                if (site.CanBuild() && site.GetOwner() == BuildSiteController.Owner.Player && site.GetTroops().Count >= towerCost)
                {
                    PendingTowerAt(site);
                }
            }

            //---- PENDING AND MOUSE DOWN ----
            if ((potentialMove || pendingTowerOnSite) && Input.GetMouseButtonDown(0))
            {
                Transform clickedObject = MouseHit().transform;
                if (potentialMove)
                {
                    if (MouseDownOn("BuildSite"))
                    {
                        // Get controller
                        BuildSiteController clickedSite = MouseHit().transform
                                                          .GetComponent <BuildSiteController>();
                        if (clickedSite.transform != potentialMove)
                        {
                            MoveSuccess(clickedSite.transform);
                        }
                        else
                        {
                            MoveFailed();
                        }
                    }
                }

                if (pendingTowerOnSite)
                {
                    if (MouseDownOn("PlayerTower") && ParentSiteCtrl(clickedObject) == pendingTowerOnSite)
                    {
                        PendingTowerSuccess();
                    }
                    else
                    {
                        PendingTowerFail();
                    }
                }
            }

            //---- PENDING AND MOUSE UP ----
            else if ((potentialMove || pendingTowerOnSite) && Input.GetMouseButtonUp(0))
            {
                Transform upedObject = MouseHit().transform;
                if (potentialMove)
                {
                    if (MouseUpOn("BuildSite") && upedObject != potentialMove) //If upedObject != potentialMove
                    {
                        MoveSuccess(MouseHit().transform);
                    }
                    else if (MouseUpOnNothing() || upedObject != potentialMove)
                    {
                        MoveFailed();
                    }
                }

                if (pendingTowerOnSite)
                {
                    if (MouseUpOn("PlayerTower") && ParentSiteCtrl(upedObject) == pendingTowerOnSite)
                    {
                        PendingTowerSuccess();
                    }
                    else if (MouseUpOnNothing() || ParentSiteCtrl(upedObject) != pendingTowerOnSite)
                    {
                        PendingTowerFail();
                    }
                }
            }

            //---- BUILD SITE CLICKED ----
            else if (MouseDownOn("BuildSite"))
            {
                BuildSiteController clickedSite = MouseHit().transform.GetComponent <BuildSiteController>();
                if (clickedSite.GetOwner() == BuildSiteController.Owner.Player)   //If friendly troops on site
                {
                    PotentialMoveFrom(clickedSite.transform);
                    GetComponent <AudioSource>().Play();
                }

                if (clickedSite.CanBuild())   //If site empty
                {
                    if (clickedSite.GetTroops().Count >= towerCost && clickedSite.GetOwner() == BuildSiteController.Owner.Player)
                    {
                        PendingTowerAt(clickedSite);
                        GetComponent <AudioSource>().Play();
                    }
                }
            }

            //---- MOVE ALL CLICKED ----
            else if (MouseDownOn("MoveAll") && aiBrain.GetPlayerSites().Count > 0)
            {
                PotentialMoveFrom(MouseHit().transform);
                GetComponent <AudioSource>().Play();
            }

            //---- LINE ----
            if (Input.GetMouseButtonUp(0))   //if line, destroy
            {
                if (newLine != null)
                {
                    Destroy(newLine);
                }
            }

            //---- DRAG ----
            if (Input.GetMouseButton(0) && newLine)   //line follow mouse
            {
                Vector2 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                newLine.GetComponent <LineRenderer>().SetPosition(1, pos);
            }
        }
    }
Esempio n. 4
0
 void PendingTowerFail()
 {
     pendingTowerOnSite.GetComponent <SpriteRenderer>().enabled = false; //Un hightlight
     pendingTowerOnSite = null;
     Destroy(newTowerPicture);
 }