Example #1
0
        public void FinishPuzzle(bool solved)
        {
            int duration = (int)(Time.time - _startTime);

            if (duration < 3)
            {
                return;
            }

            _currentPuzzle = new PlayPuzzles
            {
                Time       = DateTime.Now,
                PlayerID   = Singleton.Instance.PlayerController.GetPlayerID ?? -1,
                Duration   = duration,
                HintCount1 = Hint1,
                HintCount2 = Hint2,
                HintCount3 = Hint3,
                PuzzleID   = Singleton.Instance.WordSpawner.PuzzleID,
                MoveCount  = 0,
                Success    = solved,
                Dirty      = true
            };

            if (_currentPuzzle.PuzzleID != -1)
            {
                LocalDBController.InsertOrReplace(_currentPuzzle);
            }
        }
 public List <UserPuzzle> GetUnregisteredPuzzles()
 {
     return(LocalDBController
            .Table <UserPuzzle>()
            .SqlWhere(p => p.ServerID == null)
            .ToList());
 }
Example #3
0
    public IEnumerator SyncPlayerInfo()
    {
        LocalDBController.DeleteAll <PlayerInfo>();
        LocalDBController.InsertOrReplace(_playerInfo);

        if (_playerInfo.PlayerID == null)
        {
            yield return(RegisterPlayerToServer());
        }
        if (_playerInfo.PlayerID != null)
        {
            yield return(ServerController.Post <string>(
                             $@"PlayerInfo/Update?id={GetPlayerID}",
                             _playerInfo,
                             // On Successfully connect to the account
                             respnse =>
            {
                if (respnse == "Success")
                {
                    _playerInfo.Dirty = false;
                }
            }));
        }

        LocalDBController.DeleteAll <PlayerInfo>();
        LocalDBController.InsertOrReplace(_playerInfo);
    }
Example #4
0
    public void OnEnable()
    {
        PlayerInfo info = LocalDBController.Table <PlayerInfo>().FirstOrDefault();

        GetComponent <Text>().text = PersianFixer.Fix(info.Name);
        IDText.text = "ID: # " + info.PlayerID;
    }
 public void HasUserPuzzle()
 {
     FollowMachine.SetOutput(
         !LocalDBController.Table <UserPuzzle>().Any() &&
         LocalDBController.Table <PlayPuzzles>().Count() > 10 &&
         Random.Range(0, 100) > 70 ? "Yes" : "No");
 }
Example #6
0
    public void CreatePlayerInfo(string playerName)
    {
        LocalDBController
        .DataService
        .Connection
        .DeleteAll <PlayerInfo>();
        LocalDBController
        .DataService
        .Connection
        .DeleteAll <PlayPuzzles>();
        LocalDBController
        .DataService
        .Connection
        .DeleteAll <UserPuzzle>();
        LocalDBController
        .DataService
        .Connection
        .DeleteAll <Purchases>();

        ZPlayerPrefs.DeleteAll();

        LocalDBController
        .InsertOrReplace(new PlayerInfo
        {
            Name = playerName,
        });
    }
    public void CheckPlayerInfo()
    {
        _playerInfo =
            LocalDBController
            .Table <PlayerInfo>()
            .FirstOrDefault();

        if (_playerInfo == null)
        {
            FollowMachine.SetOutput("No Player Info");
        }
        else if (_playerInfo.PlayerID == null || _playerInfo.PlayerID == -1)
        {
            if (_playerInfo.PlayerID == -1)
            {
                _playerInfo.PlayerID = null;
                LocalDBController.DeleteAll <PlayerInfo>();
                LocalDBController.InsertOrReplace(_playerInfo);
            }
            FollowMachine.SetOutput("No Player ID");
        }
        else
        {
            FollowMachine.SetOutput("Has Player ID");
        }
    }
    public IEnumerator FeedBack(float star)
    {
        string s  = ((int)star).ToString();
        int?   id = Singleton.Instance.PlayerController.GetPlayerID;

        if (!id.HasValue)
        {
            FollowMachine.SetOutput("Fail");
            yield break;
        }

        string trim = ServerRespond["Creator"].ToString().Trim();

        if (LocalDBController.Table <PlayerInfo>().FirstOrDefault().Name.Trim() == trim)
        {
            FollowMachine.SetOutput("Fail");
            yield break;
        }

        yield return(ServerController
                     .Post <string>($@"PuzzleRates/RegisterFeedback?puzzleID={_pID}&playerID={id}&star={s}",
                                    null,
                                    r => { FollowMachine.SetOutput("Success"); },
                                    request => { FollowMachine.SetOutput(request.isNetworkError ? "Network Error" : "Fail"); }
                                    ));
    }
Example #9
0
    public void ShowLastPlayedPuzzle()
    {
        int lastPuzzleID = ZPlayerPrefs.GetInt("LastPlayedPuzzle");

        if (lastPuzzleID == 0)
        {
            FollowMachine.SetOutput("No Last Puzzle");
            return;
        }

        Puzzle puzzle = LocalDBController.Table <Puzzle>().
                        SqlWhere(p => p.ID == lastPuzzleID).
                        FirstOrDefault();

        int?categoryID = puzzle?.CategoryID;

        if (categoryID != null)
        {
            int      id       = categoryID.Value;
            Category category =
                LocalDBController.
                Table <Category>().
                SqlWhere(c => c.ID == id).
                FirstOrDefault();

            Debug.Log(category.ID);
            PuzzleList.CategoryWindow.Select(category);
            FollowMachine.SetOutput("Play");
            return;
        }
        FollowMachine.SetOutput("No Last Puzzle");
    }
Example #10
0
    public void SaveToLocalDB()
    {
        LocalDBController
        .DataService
        .Connection.DeleteAll <PlayerInfo>();

        LocalDBController.InsertOrReplace(_playerInfo);
    }
Example #11
0
 public void Back()
 {
     if (PlayingCategory.ParentID != null)
     {
         CategoryWindow.Select(
             LocalDBController.Table <Category>().SqlWhere(c => c.ID == PlayingCategory.ParentID).ToList()[0]//.ElementAt(_playingCategory.ParentID.Value)
             );
     }
 }
Example #12
0
    public override void Refresh()
    {
        PlayingCategory   = CategoryWindow.SelectedCategory;
        CategoryName.text = PlayingCategory != null?PersianFixer.Fix(PlayingCategory.Name) : PersianFixer.Fix("جدول های اصلی");

        var puzzles = LocalDBController.Table <Puzzle>().SqlWhere(p => p.CategoryID == PlayingCategory.ID).ToList();

        puzzles.Sort((p1, p2) => p1.Row.CompareTo(p2.Row));
        UpdateItems(puzzles.Cast <object>());
    }
Example #13
0
    public void RestoreUserPuzzles(List <UserPuzzle> userPuzzles)
    {
        // clear user puzzle table
        LocalDBController.DataService.Connection.DeleteAll <UserPuzzle>();

        foreach (UserPuzzle puzzle in userPuzzles)
        {
            LocalDBController.InsertOrReplace(puzzle);
        }
    }
 public void ListToShow()
 {
     if (LocalDBController.Table <Category>().SqlWhere(c => c.ParentID == SelectedCategory.ID).ToList().Count == 0)
     {
         FollowMachine.SetOutput("Puzzle List");
     }
     else
     {
         FollowMachine.SetOutput("Child Category List");
     }
 }
Example #15
0
    public void UnlockCategoryPuzzles()
    {
        Purchases purchase = new Purchases
        {
            LastUpdate = DateTime.Now,
            PlayerID   = LocalDBController.Table <PlayerInfo>().FirstOrDefault().PlayerID,
            PurchaseID = "C-P-" + PlayingCategory.ID
        };

        LocalDBController.InsertOrReplace(purchase);
    }
    public void UnlockCategory()
    {
        Purchases purchase = new Purchases
        {
            LastUpdate = DateTime.Now,
            PlayerID   = LocalDBController.Table <PlayerInfo>().FirstOrDefault().PlayerID,
            PurchaseID = "C-" + _clickedCategory.ID,
            Dirty      = true
        };

        LocalDBController.InsertOrReplace(purchase);
    }
Example #17
0
    public void SendPuzzlesToServer()
    {
        List <Puzzle> puzzles = new List <Puzzle>();

        puzzles.AddRange(LocalDBController.Table <Puzzle>().ToList());
        Debug.Log(puzzles.Count);

        foreach (Puzzle p in puzzles)
        {
            ServerEditor.Post(@"Puzzles/Create", p, "Update Puzzle", "Update");
        }
    }
Example #18
0
    public void ShouldLike()
    {
        if (PlayerPrefs.GetInt("Liked", 0) == 0 &&
            LocalDBController.Table <PlayPuzzles>().Count() > 20 &&
            Random.Range(0.1f, 1f) > 0.5f &&
            GetComponent <CheckMarket>().BazzarMarket)
        {
            FollowMachine.SetOutput("Yes");
            return;
        }

        FollowMachine.SetOutput("No");
    }
Example #19
0
        private void UpdatePlayerId(int newplayerid)
        {
            List <PlayPuzzles> table = new List <PlayPuzzles>();

            table = LocalDBController.Table <PlayPuzzles>().ToList();
            LocalDBController.DeleteAll <PlayPuzzles>();
            foreach (PlayPuzzles playPuzzle in table)
            {
                playPuzzle.PlayerID = newplayerid;
                playPuzzle.Dirty    = true;
                LocalDBController.InsertOrReplace(playPuzzle);
            }
            StartCoroutine(Sync());
        }
Example #20
0
    public virtual void OnNewPlayerID()
    {
        LocalDBController
        .DataService
        .Connection.DeleteAll <PlayerInfo>();

        LocalDBController
        .InsertOrReplace(_playerInfo);

        if (_playerInfo.PlayerID != null)
        {
            NewPlayerID?.Invoke(_playerInfo.PlayerID.Value);
        }
    }
        private void UpdatePlayerId(int newplayerid)
        {
            List <Purchases> purchaseses = new List <Purchases>();

            purchaseses = LocalDBController.Table <Purchases>().ToList();
            LocalDBController.DeleteAll <Purchases>();
            foreach (Purchases purchases in purchaseses)
            {
                purchases.PlayerID = newplayerid;
                purchases.Dirty    = true;
                LocalDBController.InsertOrReplace(purchases);
            }
            StartCoroutine(SyncPurchases());
        }
    private void AddCategories(JToken dataToken)
    {
        // Get new categories from json
        List <Category> newcategories = dataToken.Select(ct => ct.ToObject <Category>()).ToList();

        // Add or update local db
        foreach (Category newcategory in newcategories)
        {
            newcategory.Visit = false;

            LocalDBController.InsertOrReplace(newcategory);
        }

        CommandController.LastCmdTime = newcategories.Max(c => c.LastUpdate);
    }
Example #23
0
    public void PuzzleSolved()
    {
        var puzzles = LocalDBController.Table <Puzzle>().
                      SqlWhere(p => p.CategoryID == _puzzle.CategoryID);

        Puzzle nextPuzzle = puzzles.FirstOrDefault(p => p.Row == _puzzleIndex);

        if (nextPuzzle == null || nextPuzzle.Solved)
        {
            FollowMachine.SetOutput("No Next Puzzle");
            return;
        }

        FollowMachine.SetOutput("Play Next");
    }
Example #24
0
    public void AddPuzzle(UserPuzzle puzzle)
    {
        var userPuzzles = LocalDBController.Table <UserPuzzle>().ToList();

        if (userPuzzles.Count > 0)
        {
            puzzle.ID = userPuzzles.Max(p => p.ID) + 1;
        }
        else
        {
            puzzle.ID = 1;
        }

        LocalDBController.InsertOrReplace(puzzle);
    }
Example #25
0
 public override void Select()
 {
     if (IsCategoryAvalable())
     {
         if (!_category.Visit)
         {
             _category.Visit = true;
             LocalDBController.InsertOrReplace(_category);
         }
         base.Select();
     }
     else
     {
         ((LocalCategorySelectionWindow)_list).LockSelect(_category);
     }
 }
Example #26
0
    private IEnumerator LoginToDB()
    {
        yield return(LocalDBController.AddLogin(_playerInfo.PlayerID));

        if (_playerInfo.PlayerID != null)
        {
            yield return(FlashOutLocalLogins());
        }

        NameText nameText = FindObjectOfType <NameText>();

        if (nameText != null)
        {
            nameText.SetName(_playerInfo.Name);
        }
    }
Example #27
0
    private IEnumerator FlashOutLocalLogins()
    {
        List <LogIn> logIns =
            LocalDBController.Table <LogIn>().ToList();

        yield return(ServerController.Post <int>(
                         @"/api/Login/AddRange",
                         logIns,
                         r =>
        {
            if (logIns.Count == r)
            {
                LocalDBController.DeleteAll <LogIn>();
            }
        }));
    }
 public override void Select()
 {
     if (IsCategoryAvalable())
     {
         if (!_category.Visit)
         {
             _category.Visit = true;
             LocalDBController.InsertOrReplace(_category);
         }
         Singleton.Instance.Table.SetBackground(_iconIndex);
         base.Select();
     }
     else
     {
         ((LocalCategorySelectionWindow)_list).LockSelect(_category);
     }
 }
    public override void Refresh()
    {
        int?parentID = 3;

        if (SelectedCategory != null)
        {
            parentID = SelectedCategory?.ID;
        }


        var categories = LocalDBController.Table <Category>().SqlWhere(c => c.ParentID == parentID).ToList();

        categories.Sort((p1, p2) => p1.Row.CompareTo(p2.Row));
        CategoryName.text = SelectedCategory != null?PersianFixer.Fix(SelectedCategory.Name) : PersianFixer.Fix("جدول های اصلی");

        UpdateItems(categories.Cast <object>());
    }
        public IEnumerator SyncPurchases()
        {
            var purchases = LocalDBController
                            .Table <Purchases>()
                            .SqlWhere(p => p.Dirty)
                            .SqlWhere(p => p.PlayerID != -1)
                            .ToList();

            if (purchases.Count == 0)
            {
                yield break;
            }
            string resualt = "";

            yield return(ServerController.Post <string>(
                             $@"Purchases/AddPurchases",
                             purchases,
                             respond =>
            {
                resualt = respond;
                //FollowMachine.SetOutput(respond);
            },
                             request =>
            {
                if (request.isNetworkError)
                {
                    //FollowMachine.SetOutput("No Network");
                    resualt = "No Network";
                }
                else if (request.isHttpError)
                {
                    //FollowMachine.SetOutput("Fail");
                    resualt = "Fail";
                }
            }));

            if (resualt == "Success")
            {
                purchases.ForEach(pp =>
                {
                    pp.Dirty = false;
                    LocalDBController.InsertOrReplace(pp);
                });
            }
        }