Example #1
0
    public async Task <PlayerStatBlock> GetUserStatsFromDBAsync()
    {
        //ConnectionManager.OpenInstanceConnection();

        DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand();

        string selectQuery = "SELECT nodesHarvested, distanceTraveled, goldEarned FROM UserStats WHERE UserID = @ID;";

        ConnectionManager.CreateNamedParamater("@ID", UserSessionManager.GetID(), dbCommand);

        dbCommand.CommandText = selectQuery;
        Task <DbDataReader> readerTask = dbCommand.ExecuteReaderAsync();

        PlayerStatBlock statBlock = new PlayerStatBlock();


        DbDataReader reader = await readerTask;

        while (reader.Read())
        {
            statBlock.totalGatheringPointsHarvested = reader.GetInt32(0);
            statBlock.totalDistanceTraveled         = reader.GetFloat(1);
            statBlock.totalGoldCollected            = reader.GetInt32(2);
        }
        reader.Close();
        reader.Dispose();
        dbCommand.Dispose();

        //ConnectionManager.CloseInstanceConnection();

        return(statBlock);
    }
Example #2
0
    public async Task UpdatePlayerAchievementUnlockAsync(EAchievements achievement, bool unlocked)
    {
        //ConnectionManager.OpenInstanceConnection();
        DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand();

        Debug.Log("Unlock Attempt");
        Debug.Log((int)achievement);
        int dbbool = 0;

        if (unlocked)
        {
            dbbool = 1;
        }

        string updateQuery = "UPDATE PlayerAchievements SET unlocked = @unlocked WHERE playerID = @uID AND achievementID = @aID;";

        ConnectionManager.CreateNamedParamater("@unlocked", dbbool, dbCommand);
        ConnectionManager.CreateNamedParamater("@uID", UserSessionManager.GetID(), dbCommand);
        ConnectionManager.CreateNamedParamater("@aID", (int)achievement, dbCommand);

        dbCommand.CommandText = updateQuery;
        await Task.Run(() => dbCommand.ExecuteNonQuery());

        dbCommand.Dispose();
        //ConnectionManager.CloseInstanceConnection();
    }
Example #3
0
    public async Task UpdatePlayerStatAsync(EUserStats userStat, PlayerStatBlock statBlock)
    {
        DbCommand dbCommand   = ConnectionManager.GetConnection().CreateCommand();
        string    updateQuery = "UPDATE UserStats SET " + userStat.ToString() + " = @" + userStat.ToString() + " WHERE userID = @ID;";

        ConnectionManager.CreateNamedParamater("@ID", UserSessionManager.GetID(), dbCommand);
        switch (userStat)
        {
        case EUserStats.distanceTraveled:
            ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalDistanceTraveled, dbCommand);
            break;

        case EUserStats.goldEarned:
            ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalGoldCollected, dbCommand);
            break;

        case EUserStats.nodesHarvested:
            ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalGatheringPointsHarvested, dbCommand);
            break;

        default:
            break;
        }


        dbCommand.CommandText = updateQuery;
        await Task.Run(() => dbCommand.ExecuteNonQuery());

        dbCommand.Dispose();
    }
Example #4
0
    public async Task SaveFullPlayerStatusAsync()
    {
        var playerPos  = playerObject.GetComponent <Transform>().position;
        var playerGold = playerObject.GetComponent <PlayerData>().GetGoldHeld();

        string updateQuery = "UPDATE PlayerStatus SET posX = @posX, posY = @posY, posZ = @posZ, goldCount = @currentGold WHERE playerID = @id;";

        //ConnectionManager.OpenInstanceConnection();

        DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand();

        ConnectionManager.CreateNamedParamater("@posX", playerPos.x, dbCommand);
        ConnectionManager.CreateNamedParamater("@posY", playerPos.y, dbCommand);
        ConnectionManager.CreateNamedParamater("@posZ", playerPos.z, dbCommand);
        ConnectionManager.CreateNamedParamater("@currentGold", playerGold, dbCommand);
        ConnectionManager.CreateNamedParamater("id", UserSessionManager.GetID(), dbCommand);

        dbCommand.CommandText = updateQuery;

        await Task.Run(() => dbCommand.ExecuteNonQuery());

        dbCommand.Dispose();

        //ConnectionManager.CloseInstanceConnection();
    }
Example #5
0
 void DEBUGTestUserInfoInput()
 {
     if (Input.GetKeyDown(KeyCode.G))
     {
         Debug.Log(UserSessionManager.GetUsername());
         Debug.Log(UserSessionManager.GetID());
     }
 }
Example #6
0
    public async void ClickVerify()
    {
        _mHandler    = GameObject.FindObjectOfType <MenuHandler>();
        _aConnection = GameObject.FindObjectOfType <AccountConnection>();
        InputField codeInputField = null;
        InputField nameInputField = null;

        var test = GameObject.FindObjectsOfType <InputField>();

        foreach (InputField x in test)
        {
            switch (x.name)
            {
            case nameof(EInputFieldNames.UsernameInputField):
                nameInputField = x;
                break;

            case nameof(EInputFieldNames.PasswordInputField):
                codeInputField = x;
                break;
            }
        }

        try
        {
            _username = nameInputField.text;
            _passcode = codeInputField.text;
        }
        catch (NullReferenceException)
        {
            throw new NullReferenceException("ClickVerify: Use of unassigned InputField.");
        }

        //Now that we have the input field info, we can toggle off the login canvas
        _mHandler.ToggleCanvas(_mHandler.GetLoginCanvas());

        Task <BoolStringResult> verifyAccountTask = _aConnection.VerifyAccountAsync(_username, _passcode);
        var result = await verifyAccountTask;

        Debug.Log(result._successful);
        Task authTask = _aConnection.GrantAuthAsync(result._successful, _username);


        _mHandler.UpdateConfirmationMessageText(result._stringMessage + " Login", result._successful);
        if (result._successful)
        {
            _mHandler.SetPrevCanvas(_mHandler.GetMainMenuCanvas());
        }
        _mHandler.ToggleCanvas(_mHandler.GetLoadingCanvas());
        _mHandler.ToggleCanvas(_mHandler.GetMessageCanvas());

        if (authTask.IsCompleted)
        {
            Debug.Log(UserSessionManager.GetUsername());
            Debug.Log(UserSessionManager.GetID());
        }
    }
Example #7
0
    public async Task <PlayerAchievementBlock> GetUserAchievementsFromDBAsync()
    {
        PlayerAchievementBlock achievementBlock = new PlayerAchievementBlock();

        //ConnectionManager.OpenInstanceConnection();
        DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand();

        string selectQuery = "SELECT achievementID, unlocked FROM PlayerAchievements WHERE playerID = @ID;";

        ConnectionManager.CreateNamedParamater("@ID", UserSessionManager.GetID(), dbCommand);

        dbCommand.CommandText = selectQuery;

        Task <DbDataReader> readerTask = dbCommand.ExecuteReaderAsync();
        DbDataReader        reader     = await readerTask;

        while (reader.Read())
        {
            bool isUnlocked  = false;
            int  achieveID   = reader.GetInt32(0);
            int  unlockedint = reader.GetInt32(1);
            //Bool is stored as int in SQLite, convert
            if (unlockedint == 1)
            {
                isUnlocked = true;
            }

            switch (achieveID)
            {
            case (int)EAchievements.TotalGathers:
                achievementBlock.totalGathersUnlocked = isUnlocked;
                break;

            case (int)EAchievements.DistanceTraveled:
                achievementBlock.totalDistanceUnlocked = isUnlocked;
                break;

            case (int)EAchievements.TotalGold:
                achievementBlock.totalGoldUnlocked = isUnlocked;
                break;
            }
        }
        reader.Close();
        reader.Dispose();
        dbCommand.Dispose();

        //ConnectionManager.CloseInstanceConnection();

        return(achievementBlock);
    }
Example #8
0
    public async Task UpdatePlayerStatsAllAsync(PlayerStatBlock statBlock)
    {
        //ConnectionManager.OpenInstanceConnection();
        DbCommand dbCommand   = ConnectionManager.GetConnection().CreateCommand();
        string    updateQuery = "UPDATE UserStats SET nodesHarvested = @nodesHarvested, distanceTraveled = @distanceTraveled, goldEarned = @goldEarned WHERE userID = @ID;";

        ConnectionManager.CreateNamedParamater("@nodesHarvested", statBlock.totalGatheringPointsHarvested, dbCommand);
        ConnectionManager.CreateNamedParamater("@distanceTraveled", statBlock.totalDistanceTraveled, dbCommand);
        ConnectionManager.CreateNamedParamater("@goldEarned", statBlock.totalGoldCollected, dbCommand);
        ConnectionManager.CreateNamedParamater("@ID", UserSessionManager.GetID(), dbCommand);

        dbCommand.CommandText = updateQuery;

        await Task.Run(() => dbCommand.ExecuteNonQuery());

        dbCommand.Dispose();
        //ConnectionManager.CloseInstanceConnection();
    }
Example #9
0
    //public async Task AsyncSavePlayerGoldStatus()
    //{
    //    var playerGold = playerObject.GetComponent<PlayerData>().GetGoldHeld();

    //    string updateQuery = "UPDATE PlayerStatus SET goldCount = @currentGold WHERE playerID = @id;";

    //    //ConnectionManager.OpenInstanceConnection();

    //    DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand();
    //    ConnectionManager.CreateNamedParamater("@currentGold", playerGold, dbCommand);
    //    ConnectionManager.CreateNamedParamater("@id", UserSessionManager.GetID(), dbCommand);

    //    dbCommand.CommandText = updateQuery;

    //    await Task.FromResult(dbCommand.ExecuteNonQuery());

    //    dbCommand.Dispose();

    //    //ConnectionManager.CloseInstanceConnection();
    //}


    async public Task LoadPlayerStatusAsync()
    {
        //Default pos
        Vector3 loadPos     = new Vector3(150, 1, 150);
        int     loadGold    = 0;
        string  selectQuery = "SELECT * FROM PlayerStatus WHERE playerID = @id;";

        //ConnectionManager.OpenInstanceConnection();

        DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand();

        ConnectionManager.CreateNamedParamater("@id", UserSessionManager.GetID(), dbCommand);

        dbCommand.CommandText = selectQuery;

        Task <DbDataReader> readerTask = dbCommand.ExecuteReaderAsync();
        DbDataReader        reader     = await readerTask;

        while (reader.Read())
        {
            //Columns are: Id, posx, posy, posz, gold
            loadPos  = new Vector3(reader.GetFloat(1), reader.GetFloat(2), reader.GetFloat(3));
            loadGold = reader.GetInt32(4);
        }
        reader.Close();
        reader.Dispose();
        dbCommand.Dispose();

        //ConnectionManager.CloseInstanceConnection();

        var pData       = playerObject.GetComponent <PlayerData>();
        int initGoldVal = pData.GetGoldHeld();

        if (initGoldVal != 0)
        {
            pData.UpdatePlayerGold(-initGoldVal);
        }

        pData.UpdatePlayerGold(loadGold);
        playerObject.GetComponent <Transform>().position = loadPos;
    }