Exemplo n.º 1
0
 private void LogEyeOpen()
 {
     loggingManager.Log("BlinkLog", "Event", "EyeOpening");
     loggingManager.Log("BlinkLog", "BlinkNo", blinkNo);
     loggingManager.Log("BlinkLog", "DurationClosed_s", duration);
     loggingManager.SaveLog("BlinkLog");
     loggingManager.ClearLog("BlinkLog");
 }
Exemplo n.º 2
0
    // Start is called before the first frame update
    void Start()
    {
        // Find the logging Manager in the scene.
        loggingManager = GameObject.Find("Logging").GetComponent <LoggingManager>();

        // Tell the logging manager to store a piece of data into a column called "CoolData".
        // For SQL connections, make sure that the label matches the label in your JSON file.
        loggingManager.Log("MyLabel", "Highscore", highscore);

        // You can also send a dictionary with multiple data entries at once.
        Dictionary <string, object> otherData = new Dictionary <string, object>()
        {
            { "SoundVolume", soundvol },
            { "PlayerName", player }
        };

        loggingManager.Log("MyLabel", otherData);

        // Tell the logging manager to save the data (to disk and SQL by default).
        loggingManager.SaveLog("MyLabel");

        // After saving the data, you can tell the logging manager to clear its logs.
        // Now its ready to save more data. Saving data will append to the existing log.
        loggingManager.ClearLog("MyLabel");

        // If you want to start a new file, you can ask loggingManager to generate
        // a new file timestamp. Saving data hereafter will go to the new file.
        loggingManager.NewFilestamp();
    }
Exemplo n.º 3
0
    /**
     * make sure to save and clean up logs when the game is quit
     */
    private void OnApplicationQuit()
    {
        // tell the logging manager to save the data (to disk and SQL by default).
        loggingManager.SaveLog("TeleportData");

        // after saving the data, you can tell the logging manager to clear its logs.
        // now its ready to save more data. Saving data will append to the existing log.
        loggingManager.ClearLog("TeleportData");
    }
Exemplo n.º 4
0
    private SequenceData CheckCapturedKeys()
    {
        //if (currentKeySequenceLogs["Event"].Count == 0) {
        // no sequence available, dont do anything.
        //return;
        //}
        SequenceData sequenceData = new SequenceData();

        sequenceData.sequenceValidity      = SequenceValidity.Accepted;
        sequenceData.sequenceSpeed         = SequenceSpeed.Fast;
        sequenceData.sequenceComposition   = SequenceComposition.Correct;
        sequenceData.sequenceType          = keyboardSequence;
        sequenceData.sequenceWindowClosure = sequenceWindowClosure;
        sequenceData.sequenceNumber        = sequenceNumber;
        sequenceData.keyCount = currentKeySequenceLogs["Event"].Count;

        // populate currentKeySequenceLogs with WrongKey values.
        for (int j = 0; j < currentKeySequenceLogs["Event"].Count; j++)
        {
            Debug.Log("Populating for Key: " + currentKeySequenceLogs["KeyCode"][j].ToString());
            currentKeySequenceLogs["KeyOrder"].Add("NA");
            currentKeySequenceLogs["KeyType"].Add("WrongKey");
            currentKeySequenceLogs["ExpectedKey1"].Add("NA");
            currentKeySequenceLogs["ExpectedKey2"].Add("NA");
        }

        for (int i = 0; i < keysToPress.GetLength(0); i++)
        {
            if (i >= currentKeySequenceLogs["KeyCode"].Count)
            {
                break;
            }

            // for each i, we need to check if the first key pressed, matches either keysToPress[i,0] or [i,1]
            Debug.Log("Checking Key: " + currentKeySequenceLogs["KeyCode"][i]);
            Debug.Log("i = " + i + ", keysToPress: " + keysToPress.GetLength(0) + " currentKeySequenceLogs: " + currentKeySequenceLogs["KeyCode"].Count);
            if (currentKeySequenceLogs["KeyCode"][i] == keysToPress[i, 0].ToString() || currentKeySequenceLogs["KeyCode"][i] == keysToPress[i, 1].ToString())
            {
                currentKeySequenceLogs["KeyOrder"][i]     = i.ToString();
                currentKeySequenceLogs["KeyType"][i]      = "CorrectKey";
                currentKeySequenceLogs["ExpectedKey1"][i] = keysToPress[i, 0].ToString();
                currentKeySequenceLogs["ExpectedKey2"][i] = keysToPress[i, 1].ToString();
            }
            else
            {
                // if any keys do not match the desired key, reject it.
                sequenceData.sequenceComposition          = SequenceComposition.Mistyped;
                sequenceData.sequenceValidity             = SequenceValidity.Rejected;
                currentKeySequenceLogs["KeyOrder"][i]     = "NA";
                currentKeySequenceLogs["KeyType"][i]      = "WrongKey";
                currentKeySequenceLogs["ExpectedKey1"][i] = keysToPress[i, 0].ToString();
                currentKeySequenceLogs["ExpectedKey2"][i] = keysToPress[i, 1].ToString();
            }
        }

        // If the sequence was played too slowly, reject it.
        Debug.Log("sequenceTime_ms: " + sequenceTime_ms + ", sequenceTimeLimit_ms: " + sequenceTimeLimit_ms);
        if (sequenceTime_ms > sequenceTimeLimit_ms)
        {
            sequenceData.sequenceSpeed    = SequenceSpeed.Slow;
            sequenceData.sequenceValidity = SequenceValidity.Rejected;
        }

        // If the sequence contains too many keys, reject it.
        if (currentKeySequenceLogs["Event"].Count > keysToPress.GetLength(0))
        {
            sequenceData.sequenceComposition = SequenceComposition.Mistyped;
            sequenceData.sequenceValidity    = SequenceValidity.Rejected;
        }
        else if (currentKeySequenceLogs["Event"].Count < keysToPress.GetLength(0))
        {
            sequenceData.sequenceSpeed    = SequenceSpeed.Slow;
            sequenceData.sequenceValidity = SequenceValidity.Rejected;
        }

        for (int j = 0; j < currentKeySequenceLogs["Event"].Count; j++)
        {
            currentKeySequenceLogs["SequenceNumber"].Add(sequenceData.sequenceNumber.ToString());
            currentKeySequenceLogs["SequenceComposition"].Add(System.Enum.GetName(typeof(SequenceComposition), sequenceData.sequenceComposition));
            currentKeySequenceLogs["SequenceSpeed"].Add(System.Enum.GetName(typeof(SequenceSpeed), sequenceData.sequenceSpeed));
            currentKeySequenceLogs["SequenceValidity"].Add(System.Enum.GetName(typeof(SequenceValidity), sequenceData.sequenceValidity));
            currentKeySequenceLogs["SequenceType"].Add(System.Enum.GetName(typeof(SequenceType), sequenceData.sequenceType));
            currentKeySequenceLogs["SequenceWindowClosure"].Add(System.Enum.GetName(typeof(SequenceWindowClosure), sequenceData.sequenceWindowClosure));
        }
        currentKeySequenceLogs["Event"].Add("KeySequenceStopped");
        currentKeySequenceLogs["Date"].Add(System.DateTime.Now.ToString("yyyy-MM-dd"));
        currentKeySequenceLogs["Timestamp"].Add(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff"));
        currentKeySequenceLogs["KeyCode"].Add("NA");
        currentKeySequenceLogs["SequenceTime_ms"].Add(sequenceTime_ms.ToString());
        currentKeySequenceLogs["TimeSinceLastKey_ms"].Add(timeSinceLastPress_ms.ToString());
        currentKeySequenceLogs["KeyOrder"].Add("NA");
        currentKeySequenceLogs["KeyType"].Add("NA");
        currentKeySequenceLogs["SequenceNumber"].Add(sequenceData.sequenceNumber.ToString());
        currentKeySequenceLogs["SequenceComposition"].Add(System.Enum.GetName(typeof(SequenceComposition), sequenceData.sequenceComposition));
        currentKeySequenceLogs["SequenceSpeed"].Add(System.Enum.GetName(typeof(SequenceSpeed), sequenceData.sequenceSpeed));
        currentKeySequenceLogs["SequenceValidity"].Add(System.Enum.GetName(typeof(SequenceValidity), sequenceData.sequenceValidity));
        currentKeySequenceLogs["SequenceType"].Add(System.Enum.GetName(typeof(SequenceType), sequenceData.sequenceType));
        currentKeySequenceLogs["SequenceWindowClosure"].Add(System.Enum.GetName(typeof(SequenceWindowClosure), sequenceData.sequenceWindowClosure));
        currentKeySequenceLogs["ExpectedKey1"].Add("NA");
        currentKeySequenceLogs["ExpectedKey2"].Add("NA");

        for (int k = 0; k < currentKeySequenceLogs["Event"].Count; k++)
        {
            loggingManager.Log("KeyLog", "Timestamp", currentKeySequenceLogs["Timestamp"][k]);
            loggingManager.Log("KeyLog", "Event", currentKeySequenceLogs["Event"][k]);
            loggingManager.Log("KeyLog", "KeyCode", currentKeySequenceLogs["KeyCode"][k]);
            loggingManager.Log("KeyLog", "SequenceTime_ms", currentKeySequenceLogs["SequenceTime_ms"][k]);
            loggingManager.Log("KeyLog", "TimeSinceLastKey_ms", currentKeySequenceLogs["TimeSinceLastKey_ms"][k]);
            loggingManager.Log("KeyLog", "KeyOrder", currentKeySequenceLogs["KeyOrder"][k]);
            loggingManager.Log("KeyLog", "KeyType", currentKeySequenceLogs["KeyType"][k]);
            loggingManager.Log("KeyLog", "ExpectedKey1", currentKeySequenceLogs["ExpectedKey1"][k]);
            loggingManager.Log("KeyLog", "ExpectedKey2", currentKeySequenceLogs["ExpectedKey2"][k]);
            loggingManager.Log("KeyLog", "SequenceNumber", currentKeySequenceLogs["SequenceNumber"][k]);
            loggingManager.Log("KeyLog", "SequenceComposition", currentKeySequenceLogs["SequenceComposition"][k]);
            loggingManager.Log("KeyLog", "SequenceSpeed", currentKeySequenceLogs["SequenceSpeed"][k]);
            loggingManager.Log("KeyLog", "SequenceValidity", currentKeySequenceLogs["SequenceValidity"][k]);
            loggingManager.Log("KeyLog", "SequenceType", currentKeySequenceLogs["SequenceType"][k]);
            loggingManager.Log("KeyLog", "SequenceWindowClosure", currentKeySequenceLogs["SequenceWindowClosure"][k]);
        }

        loggingManager.SaveLog("KeyLog");
        loggingManager.ClearLog("KeyLog");

        sequenceNumber++;

        sequenceData.keySequenceLogs = new Dictionary <string, List <string> >(currentKeySequenceLogs);

        /*foreach (string key in currentKeySequenceLogs.Keys)
         * {
         *   keySequenceLogs[key].AddRange(currentKeySequenceLogs[key]);
         *   Debug.Log("Key: " + key + ", Count: " + keySequenceLogs[key].Count.ToString());
         * }*/

        /*foreach (string key in currentKeySequenceLogs.Keys)
         * {
         *   Debug.Log("Key: " + key + ", Count: " + currentKeySequenceLogs[key].Count.ToString());
         *   currentKeySequenceLogs[key].Clear();
         * }*/
        CreateNewSequenceLogs();
        return(sequenceData);
    }
Exemplo n.º 5
0
    // Update is called once per frame
    void Update()
    {
        if (gameState == GameState.Preparation)
        {
        }
        else if (gameState == GameState.CountDown)
        {
            countDownTimer -= Time.deltaTime;

            if (countDownTimer < 1)
            {
                gameState = GameState.Playing;
                StartCoroutine(SampleLogger());
                populationManager.StartInfection(currentLevel.numberOfInfectedOnStart);
                onGameCountDown.Invoke((int)countDownTimer);
                onGameStateChanged.Invoke(gameTime, gameState);
                Dictionary <string, object> eventLog = new Dictionary <string, object>()
                {
                    { "Event", "Game" + System.Enum.GetName(typeof(GameState), gameState) },
                    { "EventType", "GameEvent" },
                    { "LevelPlayID", levelPlayID },
                };
                eventLogger.Log("Event", eventLog);
            }
            else if ((int)countDownTimer != prevTime)
            {
                Dictionary <string, object> eventLog = new Dictionary <string, object>()
                {
                    { "Event", "Countdown" + ((int)countDownTimer - 1).ToString() },
                    { "EventType", "GameEvent" },
                    { "LevelPlayID", levelPlayID },
                };
                eventLogger.Log("Event", eventLog);
                onGameCountDown.Invoke((int)countDownTimer);
                prevTime = (int)countDownTimer;
            }
        }
        else if (gameState == GameState.Playing)
        {
            gameTime          += Time.deltaTime;
            newInfectionTimer += Time.deltaTime;
            if (newInfectionTimer > currentLevel.newInfectionSeconds)
            {
                populationManager.AddNewInfected();
                newInfectionTimer = 0f;
                Dictionary <string, object> eventLog = new Dictionary <string, object>()
                {
                    { "Event", "AddNewInfected" },
                    { "EventType", "SubjectEvent" },
                    { "LevelPlayID", levelPlayID },
                };
                eventLogger.Log("Event", eventLog);
            }

            if (subjectsInfectedScore - subjectsIsolationScore < 1)
            {
                Debug.Log("There are no infected subjects left, create new infections and people.");
                Dictionary <string, object> eventLog = new Dictionary <string, object>()
                {
                    { "Event", "OutOfInfected" },
                    { "EventType", "SubjectEvent" },
                    { "LevelPlayID", levelPlayID },
                };
                eventLogger.Log("Event", eventLog);
                populationManager.StartInfection(1);
                populationManager.StartPopulation(1);
                currentLevel.numberOfSubjects++;
                eventLog = new Dictionary <string, object>()
                {
                    { "Event", "AddNewInfected" },
                    { "EventType", "SubjectEvent" },
                    { "LevelPlayID", levelPlayID },
                };
                eventLogger.Log("Event", eventLog);
            }

            if (populationScore > 0)
            {
                //Debug.Log("Gametime: " + gameTime.ToString());
                if (populationScore < currentLevel.gameOverScore)
                {
                    gameState = GameState.GameLost;
                    onGameOver.Invoke(GetGameStats(), gameState);
                    Dictionary <string, object> eventLog = new Dictionary <string, object>()
                    {
                        { "Event", System.Enum.GetName(typeof(GameState), gameState) },
                        { "EventType", "GameEvent" },
                        { "LevelPlayID", levelPlayID },
                    };
                    eventLogger.Log("Event", eventLog);
                    eventLogger.SaveLog("Event");
                    eventLogger.SaveLog("Sample");
                    eventLogger.ClearLog("Event");
                    eventLogger.ClearLog("Sample");
                }
                bool didWin = gameTime > currentLevel.gameWonScore;
                //Debug.Log("gameTime: " + gameTime + " gameWonScore: " + gameWonScore + "won: " + didWin );
                if (gameTime > currentLevel.gameWonScore)
                {
                    Debug.Log("Game Won!");
                    gameState = GameState.GameWon;
                    onGameOver.Invoke(GetGameStats(), gameState);
                    Dictionary <string, object> eventLog = new Dictionary <string, object>()
                    {
                        { "Event", System.Enum.GetName(typeof(GameState), gameState) },
                        { "EventType", "GameEvent" },
                        { "LevelPlayID", levelPlayID },
                    };
                    eventLogger.Log("Event", eventLog);
                    eventLogger.SaveLog("Event");
                    eventLogger.SaveLog("Sample");
                    eventLogger.ClearLog("Event");
                    eventLogger.ClearLog("Sample");
                }
            }
        }
        else if (gameState == GameState.GameLost)
        {
        }
        else if (gameState == GameState.GameWon)
        {
        }
        else if (gameState == GameState.Stopped)
        {
            //onGameStateChanged.Invoke(gameTime, gameState);
            //ResetGame();
        }
    }