Esempio n. 1
0
    private IEnumerator PlayIntro()
    {
        TableIntro table = DatabaseHandler.GetFromDatabaseIntro(Data.intros.intro);

        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);
        }

        Data.events eventCur = eventDeck[0];
        eventDeck.RemoveAt(0);
        StartCoroutine(PlayEvent(eventCur));
    }
    public static TableEvent GetFromDatabaseEvents(Data.events id)
    {
        IDbConnection databaseConnection;

        databaseConnection = new SqliteConnection("URI=file:" + Application.dataPath + "/Database/Events.db");
        databaseConnection.Open();

        IDbCommand databaseCommand = databaseConnection.CreateCommand();

        databaseCommand.CommandText = "SELECT nextevent, destroyedstructure, imagepath, text FROM " + "tableId_" + ((int)id).ToString() + " ORDER BY id ASC";
        IDataReader databaseResults = databaseCommand.ExecuteReader();

        RowEvent        rowIntro = new RowEvent(-1, -1, "", new string[0]);
        List <RowEvent> rowList  = new List <RowEvent>();
        bool            intro    = false;

        while (databaseResults.Read())
        {
            string[] textArray = databaseResults.GetString(3).Split(splitCharacters, 999);
            RowEvent row       = new RowEvent(databaseResults.GetInt32(0), databaseResults.GetInt32(1), databaseResults.GetString(2), textArray);

            if (!intro)
            {
                rowIntro = row;
                intro    = true;
            }
            else
            {
                rowList.Add(row);
            }
        }
        RowEvent[] rowArray = new RowEvent[rowList.Count];
        for (int i = 0; i < rowArray.Length; i++)
        {
            rowArray [i] = rowList [i];
        }

        databaseResults.Close();
        databaseResults = null;
        databaseCommand.Dispose();
        databaseCommand = null;
        databaseConnection.Close();
        databaseConnection = null;

        return(new TableEvent(rowIntro, rowArray));
    }
Esempio n. 3
0
    private IEnumerator PlayEvent(Data.events newEvent)
    {
        tableEvent = DatabaseHandler.GetFromDatabaseEvents(newEvent);
        displayManager.SetDisplayContainer(tableEvent.intro.imagePath);
        textManager.SetTextArray(tableEvent.intro.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);
        }

        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();
    }
Esempio n. 4
0
    private bool NewEventDeck()
    {
        if (eventDeck.Count <= 0)
        {
            eventDeck = new List <Data.events>();
            for (int i = 0; i < Data.eventsCount; i++)
            {
                eventDeck.Add((Data.events)i);
            }

            for (int i = 0; i < shuffleCount; i++)
            {
                int[] randomNumbers = new int[2] {
                    Random.Range(0, Data.eventsCount - 1), Random.Range(0, Data.eventsCount - 1)
                };
                Data.events eventTemp = eventDeck[randomNumbers[0]];
                eventDeck[randomNumbers[0]] = eventDeck [randomNumbers[1]];
                eventDeck[randomNumbers[1]] = eventTemp;
            }

            return(true);
        }
        return(false);
    }
Esempio n. 5
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));
        }
    }