Exemplo n.º 1
0
    private IEnumerator PlayEpilogue(Data.succesRate succes)
    {
        TableIntro table = new TableIntro();

        switch (succes)
        {
        case Data.succesRate.positive:
            table = DatabaseHandler.GetFromDatabaseIntro(Data.intros.epiloguePositive);
            break;

        case Data.succesRate.neutral:
            table = DatabaseHandler.GetFromDatabaseIntro(Data.intros.epilogueNeutral);
            break;

        case Data.succesRate.negative:
            table = DatabaseHandler.GetFromDatabaseIntro(Data.intros.epilogueNegative);
            break;
        }
        displayManager.SetDisplayContainer(table.imagePath);
        textManager.SetTextArray(table.text);
        textManager.Next();

        while (true)
        {
            if (InputHandler.GetInput().accept)
            {
                if (textManager.textLength <= 0)
                {
                    break;
                }
                else
                {
                    textManager.Next();
                }
            }
            yield return(null);
        }

        while (textManager.isPrinting || !InputHandler.GetInput().acceptKeyDown)
        {
            yield return(null);
        }

        SceneManager.LoadScene("Menu");
    }
Exemplo n.º 2
0
    private IEnumerator ActionComplete(Data.succesRate succesRate)
    {
        Data.actionsTaken++;
        if (offer == Data.offers.boar)
        {
            Data.killsCommited++;
        }

        TableActions table        = DatabaseHandler.GetFromDatabaseActions((Data.actions)offer);
        int          randomNumber = Random.Range(0, table.rows.Length - 1);

        switch (succesRate)
        {
        case Data.succesRate.positive:
            textManager.SetTextArray(table.rows [randomNumber].positive);
            Data.towerStage++;
            break;

        case Data.succesRate.neutral:
            textManager.SetTextArray(table.rows[randomNumber].neutral);
            break;

        case Data.succesRate.negative:
            textManager.SetTextArray(table.rows [randomNumber].negative);
            Data.destroyedStructures++;
            break;
        }
        textManager.Next();

        while (true)
        {
            if (InputHandler.GetInput().accept)
            {
                if (textManager.textLength <= 0)
                {
                    break;
                }
                else
                {
                    textManager.Next();
                }
            }
            yield return(null);
        }

        while (textManager.isPrinting || !InputHandler.GetInput().acceptKeyDown)
        {
            yield return(null);
        }

        actionManager.gameObject.SetActive(false);
        RowEvent row = tableEvent.result((int)guardian, (int)succesRate);

        displayManager.gameObject.SetActive(true);
        displayManager.SetDisplayContainer(row.imagePath);
        textManager.SetTextArray(row.text);
        textManager.Next();

        while (true)
        {
            if (InputHandler.GetInput().accept)
            {
                if (textManager.textLength <= 0)
                {
                    break;
                }
                else
                {
                    textManager.Next();
                }
            }
            yield return(null);
        }

        while (textManager.isPrinting || !InputHandler.GetInput().acceptKeyDown)
        {
            yield return(null);
        }

        if (Data.towerStage >= Data.winningCount)
        {
            if (Data.killsCommited / Data.actionsTaken < Data.neutralThreshold)
            {
                StartCoroutine(PlayEpilogue(Data.succesRate.positive));
            }
            else
            {
                StartCoroutine(PlayEpilogue(Data.succesRate.neutral));
            }
        }
        else if (Data.destroyedStructures >= Data.losingCount)
        {
            StartCoroutine(PlayEpilogue(Data.succesRate.negative));
        }
        else if (row.nextEvent != -1)
        {
            tableEvent = DatabaseHandler.GetFromDatabaseEvents((Data.events)row.nextEvent);

            textManager.SetTextArray(new string[1] {
                "To which guardian would you like to make the offering?"
            });
            textManager.Next();

            displayManager.gameObject.SetActive(false);
            choiceManager.gameObject.SetActive(true);
            choiceManager.Reset();
        }
        else
        {
            NewEventDeck();
            Data.events eventCur = eventDeck[0];
            eventDeck.RemoveAt(0);
            StartCoroutine(PlayEvent(eventCur));
        }
    }
Exemplo n.º 3
0
 public void actionComplete(Data.succesRate succesRate)
 {
     StartCoroutine(ActionComplete(succesRate));
 }