//    public void Populate()
    //    {
    //        foreach (var defense in defenses)
    //        {
    //            GameObject buttonObject = Instantiate(defensePlaceButtonPrefab) as GameObject;
    //            TextMeshProUGUI text = buttonObject.GetComponentInChildren<TextMeshProUGUI>();
    //            text.text = defense.name;
    //            buttonObject.transform.parent = contentParent;

    //            Button btn = buttonObject.GetComponent<Button>();
    //            EventTrigger eventTrigger = buttonObject.GetComponent<EventTrigger>();

    //            DefensePlacement placementManager = FindObjectOfType<DefensePlacement>();

    //            btn.onClick.AddListener(() => placementManager.BeginPlacingObject(defense));

    //            EventTrigger.Entry pointerEnterEntry = new EventTrigger.Entry();
    //            pointerEnterEntry.eventID = EventTriggerType.PointerEnter;
    //            //pointerEnterEntry.callback.AddListener((eventData) => placementManager.ShowInfo(defense));

    //            EventTrigger.Entry pointerExitEntry = new EventTrigger.Entry();
    //            pointerExitEntry.eventID = EventTriggerType.PointerExit;
    //           // pointerExitEntry.callback.AddListener((eventData) => FindObjectOfType<DefenseSelectionInfoBox>().HideInfo());

    //            eventTrigger.triggers.Add(pointerEnterEntry);
    //            eventTrigger.triggers.Add(pointerExitEntry);
    //        }
    //    }
    //}

    private void Populate()
    {
        DefensePlacement defenseManager = FindObjectOfType <DefensePlacement>();
        var defenses = new List <DefenseContainer>();

        foreach (var defense in defenseManager.containers)
        {
            defenses.Add(defense);
        }

        defenses.Sort((a, b) => a.price.CompareTo(b.price));

        Debug.Log("Populating defense placement with " + defenseManager.containers.Length + " defenses");
        foreach (var defenseContainer in defenses)
        {
            GameObject btnObject = Instantiate(defensePlaceButtonPrefab) as GameObject;
            Button     btn       = btnObject.GetComponent <Button>();
            btn.onClick.AddListener(() => BeginPlacingDefense(defenseContainer));
            btn.onClick.AddListener(() => Debug.Log(defenseContainer.defenseName + " has been clicked"));
            btnObject.GetComponent <DefenseButtonData>().defense = defenseContainer;
            btnObject.GetComponent <Image>().sprite = defenseContainer.icon;
            btnObject.transform.SetParent(contentParent);
        }
    }
Ejemplo n.º 2
0
    void Update()
    {
        //print(playerTurn);
        //HANDLE PIECE MOVING
        if (isMovingPiece)
        {
            GameObject piece = this.selectedSpace.GetComponent <TerritoryHandler>().getPopulatedPiece();
            //print(selectedSpace);
            //print(newPiecePosition);
            piece.transform.position = Vector3.Lerp(piece.transform.position, new Vector3(newPiecePosition.x, newPiecePosition.y, piece.transform.position.z), Time.deltaTime * 4);
        }

        //END HANDLE PIECE MOVING

        //HANDLE TURN SIGN
        switch (playerTurn)
        {
        case PlayerTurn.Attack:
            if (!didShowPlayerTurnSign)
            {
                presentTurnSign(PlayerTurn.Attack);
            }
            break;

        case PlayerTurn.Defense:
            if (!didShowPlayerTurnSign)
            {
                print("updateSign");
                if (finishedSetup)
                {
                    turnsLeft--;     //finished one whole turn

                    if (turnsLeft == 0)
                    {
                        presentWinner(PlayerTurn.Defense);
                    }

                    updateTurnsSign();
                }
                presentTurnSign(PlayerTurn.Defense);
            }
            break;
        }
        //END HANDLE TURN SIGN

        if (isFinishedShowingSign)
        {
            //SETUP
            if (action == Action.DefenseSetup)
            {
                if (!hasPickedNext)
                {
                    populateUpNext();
                }
                nextUpSignPanel.SetActive(true);
                //print("Defender, choose your five territories");
                if (defensePlacement == DefensePlacement.Troop)
                {
                    //print(defenseTroopPlacement);
                    if (defenseTroopPlacement == 5)
                    {
                        print("toTraps");
                        defensePlacement = DefensePlacement.Trap;
                    }
                }
                else if (defensePlacement == DefensePlacement.Trap)
                {
                    if (defenseTrapPlacement == 3)
                    {
                        nextUpSignPanel.SetActive(false);
                        hasPickedNext = false;
                        print("toAttack");
                        defensePlacement = DefensePlacement.Troop;
                        switchPlayer();
                        action     = Action.AttackSetup;
                        playerTurn = PlayerTurn.Attack;
                        spawnSpace = GameObject.FindGameObjectWithTag("Respawn").GetComponent <TerritoryHandler>();
                        spawnSpace.playParticle();
                    }
                }
            }
            if (action == Action.AttackSetup)
            {
                if (!hasPickedNext)
                {
                    populateUpNext();
                }
                nextUpSignPanel.SetActive(true);
                //print("Attacker, choose your one territory");
                if (attackHasPlacedTroop)
                {
                    nextUpSignPanel.SetActive(false);
                    print("troop placed");
                    spawnSpace.stopParticle();
                    action               = Action.SelectOwn;
                    gameMode             = GameMode.SelectTerritory;
                    hasPickedNext        = false;
                    attackHasPlacedTroop = false;
                    finishedSetup        = true;
                    //switchPlayer();
                }
            }

            //END SETUP

            switch (gameMode)
            {
            case GameMode.SelectTerritory:

                didStartParticles = false;                      //reset bool
                if (selectedSpace != null && !didStopParticles) //if deselecting selected space
                {
                    stopAdjacentParticles();
                }
                break;

            case GameMode.SelectAdjacent:

                didStopParticles = false;                        //reset bool

                if (selectedSpace != null && !didStartParticles) //this is immediately after a space is selected in SelectTerritory state
                {
                    startAdjacentParticles();
                }
                break;
            }
        }
        else //if sign is still showing, we want to pause everything else
        {
            //stopAdjacentParticles();
        }
    }
Ejemplo n.º 3
0
 private void Awake()
 {
     instance = this;
 }