Пример #1
0
    public void ClickedOnNeutralUnit(PointerEventData ptrED, NeutralUnitController unit)
    {
        //Attack neutral unit event
        PlayerUnitController selectedUnit = gameManager.turnManager.currentPlayer.selectedUnit;

        if (selectedUnit.Mode == "action" || ptrED.button == PointerEventData.InputButton.Right)
        {
            if (selectedUnit != null)
            {
                selectedUnit.Attack(unit);
                gameManager.uiManager.HighlightStep();
            }
        }
    }
Пример #2
0
    public void EndTurn()
    {
        //Turn counter control
        bool skip;

        do
        {
            playerTurn++;
            skip = true;
            foreach (Player p in gameManager.Players)
            {
                if (p.playerID == playerTurn)
                {
                    skip = false;
                }
            }
        }while(skip == true && gameManager.numberOfPlayers >= playerTurn);
        if (gameManager.numberOfPlayers < playerTurn)
        {
            playerTurn = 1;

            //Neutral units turn control
            List <Transform> neutrals = new List <Transform>();
            foreach (Transform u in gameManager.mapManager.neutralUnitsContainer.transform)
            {
                neutrals.Add(u);
            }
            foreach (Transform u in neutrals)
            {
                NeutralUnitController Unit = u.GetComponent <NeutralUnitController>();
                foreach (Utility.Resource r in Unit.Resources)
                {
                    r.value++;
                }
                Unit.movesLeft = Unit.maxMoves;
                Unit.AI();
            }

            //Resources turn control
            foreach (Transform t in gameManager.mapManager.transform)
            {
                if (t.GetComponent <ResourceSpawner>() != null)
                {
                    t.GetComponent <ResourceSpawner>().Spawn();
                }
            }

            //Player resource income
            foreach (Player t in gameManager.Players)
            {
                foreach (Transform tr in t.unitManager)
                {
                    foreach (Utility.Resource r in t.Resources)
                    {
                        foreach (Utility.Resource re in tr.GetComponent <PlayerUnitController>().resourcesIncome)
                        {
                            if (r.name == re.name)
                            {
                                r.value += re.value;
                            }
                        }
                    }
                }
            }
        }
        skip = true;
        foreach (Player p in gameManager.Players)
        {
            if (p.playerID == playerTurn)
            {
                skip = false;
            }
        }

        if (skip == true)
        {
            do
            {
                playerTurn++;
                skip = true;
                foreach (Player p in gameManager.Players)
                {
                    if (p.playerID == playerTurn)
                    {
                        skip = false;
                    }
                }
            }while(skip == true && gameManager.numberOfPlayers >= playerTurn);
        }

        //Player units turn control
        foreach (Player t in gameManager.Players)
        {
            foreach (Transform tr in t.unitManager)
            {
                PlayerUnitController Unit = tr.GetComponent <PlayerUnitController>();
                Unit.movesLeft = Unit.maxMoves;
                Unit.Mode      = "";
                gameManager.uiManager.SetBack();
            }
            //Resource gain
            if (t == currentPlayer)
            {
                Utility.Resource.Modify(t.Resources, t.resourcesIncome, 1);
            }
        }

        //Reset turn timer
        remainingTime = turnTime;
    }