Exemple #1
0
 public void SetFullPackCompleted(Pack pack, bool isCompleted)
 {
     using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH))
     {
         dbHelper.SetFullPackCompleted(pack, isCompleted);
     }
 }
Exemple #2
0
 public Pack GetPackById(int id)
 {
     using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH))
     {
         return(dbHelper.GetPackById(id));
     }
 }
Exemple #3
0
 public void SetIsMediaCompleted(Media media, Pack pack, bool isCompleted)
 {
     using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH))
     {
         dbHelper.SetIsCompleted(media, pack, isCompleted);
     }
 }
Exemple #4
0
        public List <BaseLevel> GetBaseLevels()
        {
            List <BaseLevel> levels = new List <BaseLevel>();

            using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH))
            {
                var installedLevels = dbHelper.GetLevels();
                levels.AddRange(installedLevels.Values.Where(m => m.Language.Equals(LanguagesUtils.GetCurrentLanguageOnQuizzAppFormat(), StringComparison.InvariantCultureIgnoreCase)));
            }

            //// Debug purpose
            //levels.Add(levels[0]);
            //levels.Add(levels[0]);
            //levels.Add(levels[0]);
            //levels.Add(levels[0]);
            //levels.Add(levels[0]);
            //levels.Add(levels[0]);
            //levels.Add(levels[0]);
            //levels.Add(levels[0]);
            //levels.Add(levels[0]);
            //levels.Add(levels[0]);
            //levels.Add(levels[0]);

            return(levels);
        }
Exemple #5
0
        public List <Difficulty> GetDifficulties()
        {
            //List<Difficulty> difficulties = new List<Difficulty>();
            //if (this.LastInitInfosRep != null)
            //    difficulties = this.LastInitInfosRep.Difficulties.Where(m => m.Language.Value.Equals(Utils.GetCurrentLanguageOnQuizzAppFormat(), StringComparison.InvariantCultureIgnoreCase)).ToList();

            using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH))
            {
                var installedDifficulties = dbHelper.GetDifficulties();
                return(installedDifficulties.Values.Where(m => m.Language.Equals(LanguagesUtils.GetCurrentLanguageOnQuizzAppFormat(), StringComparison.InvariantCultureIgnoreCase)).ToList());
            }
        }
Exemple #6
0
        private async Task <bool> RefreshInitInfosAsync(bool updateIndicatorOfAllPacks)
        {
            try
            {
                JsonWebClient client = new JsonWebClient();
                InitInfosRep  resp   = await client.DoRequestJsonAsync <InitInfosRep>(QUIZZ_APP_INIT_BASE_URL + "/" + QUIZZ_APP_SERVICE_INFO + "/" + QUIZZ_APP_MEDIA_TYPE_IDENTIFIER);

                this.LastInitInfosRep     = resp;
                this.LastInitInfosRepTime = DateTime.Now;

                // Inject dificulties
                if (this.LastInitInfosRep == null)
                {
                    return(false);
                }

                var difficulties = this.LastInitInfosRep.Difficulties.Where(m => m.Language.Value.Equals(LanguagesUtils.GetCurrentLanguageOnQuizzAppFormat(), StringComparison.InvariantCultureIgnoreCase)).ToList();
                using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH))
                {
                    var installedDifficulties = dbHelper.GetDifficulties();
                    foreach (var item in difficulties)
                    {
                        if (!installedDifficulties.ContainsKey(item.Difficulty.Id))
                        {
                            dbHelper.AddDifficulty(item);
                        }
                    }

                    var toto = dbHelper.GetDifficulties();
                }



                //if (updateIndicatorOfAllPacks)
                //    this.UpdateIndicatorNewOfPacks();

                return(true);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Error doing 'init' on server!!", ex);
                return(false);
            }
        }
Exemple #7
0
        public Level GetLevel(int levelId)
        {
            Level level = new Level();

            using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH))
            {
                BaseLevel baseLevel = dbHelper.GetLevelById(levelId);
                if (baseLevel == null)
                {
                    return(null);
                }

                // Copying values from base level type
                level.Id           = baseLevel.Id;
                level.DifficultyId = baseLevel.DifficultyId;
                level.Language     = baseLevel.Language;
                level.Md5          = baseLevel.Md5;
                level.PackIds      = baseLevel.PackIds;
                level.ReleaseDate  = baseLevel.ReleaseDate;
                level.Val          = baseLevel.Val;
                level.ZipSize      = baseLevel.ZipSize;

                var packs             = dbHelper.GetPacks(levelId);
                int nbPacksTerminated = 0;
                foreach (var item in packs.Values)
                {
                    if (item.IsTerminated)
                    {
                        nbPacksTerminated++;
                    }

                    level.Packs.Add(item);
                }

                //if (level.Packs.Count == 0)
                //    level.Progression = 0;
                //else
                //    level.Progression = nbPacksTerminated / level.Packs.Count;

                level.NbPacksTerminated = nbPacksTerminated;
            }
            return(level);
        }
Exemple #8
0
        private void InstallLevelOnMainDb(string levelDbPath, Action <int> installProgress, CancellationToken cancellationToken)
        {
            using (GameDBHelper gameDbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH))
                using (LevelDBHelper levelDb = new LevelDBHelper(levelDbPath))
                {
                    int percent = 0;

                    Dictionary <int, BaseLevel> levels = gameDbHelper.GetLevels();

                    foreach (var aLevel in levelDb.GetLevels())
                    {
                        // Retrieve packs
                        cancellationToken.ThrowIfCancellationRequested();
                        var newPacks = levelDb.GetPacks(aLevel.Value.Id);

                        var existingPacks  = gameDbHelper.GetPacks(aLevel.Value.Id);
                        var existingMedias = gameDbHelper.GetAllMediasIds();


                        // Copy level on main DB
                        cancellationToken.ThrowIfCancellationRequested();
                        if (!levels.ContainsKey(aLevel.Key))
                        {
                            gameDbHelper.AddLevel(aLevel.Value);
                        }



                        // for each newPacks, generate thumbnails...
                        double i = 0;
                        foreach (var pack in newPacks)
                        {
                            i = i + 1;

                            // Generate thumbnails
                            cancellationToken.ThrowIfCancellationRequested();
                            GenerateThumbnails(pack.Value);
                            cancellationToken.ThrowIfCancellationRequested();

                            percent = (int)((i / (newPacks.Count * 2)) * 100); // multiply by 2 because the newpack list will be iterated twice

                            Debug.WriteLine("Generate thum percent : " + percent);
                            if (installProgress != null)
                            {
                                installProgress.Invoke(percent);
                            }

                            /* ORIGINAL CODE COMMENTED FOR CANCELLATION OPTIM
                             * // Copy values on Main Db
                             * if (!existingPacks.ContainsKey(pack.Key))
                             *  gameDbHelper.AddPack(pack.Value);
                             *
                             *
                             * // Add media off pack
                             * foreach (var aMedia in pack.Value.Medias)
                             * {
                             *  if (!existingMedias.Contains(aMedia.Id))
                             *  {
                             *      gameDbHelper.AddMedia(aMedia);
                             *      gameDbHelper.AddPackMediaAssoc(pack.Value.Id, aMedia.Id, aMedia.Position, aMedia.IsCompleted);
                             *  }
                             * }
                             */
                        }

                        // .. then add them to main DB if nor cancelled
                        cancellationToken.ThrowIfCancellationRequested();
                        Debug.WriteLine("Registering packs on main DB");
                        foreach (var pack in newPacks)
                        {
                            // Copy values on Main Db
                            if (!existingPacks.ContainsKey(pack.Key))
                            {
                                gameDbHelper.AddPack(pack.Value);
                            }


                            // Add media off pack
                            foreach (var aMedia in pack.Value.Medias)
                            {
                                if (!existingMedias.Contains(aMedia.Id))
                                {
                                    gameDbHelper.AddMedia(aMedia);
                                    gameDbHelper.AddPackMediaAssoc(pack.Value.Id, aMedia.Id, aMedia.Position, aMedia.IsCompleted);
                                }
                            }

                            i       = i + 1;
                            percent = (int)((i / (newPacks.Count * 2)) * 100);
                            Debug.WriteLine("Packs registered on DB, percent : " + percent);
                            if (installProgress != null)
                            {
                                installProgress.Invoke(percent);
                            }
                        }
                    }
                }
        }
        private static void TestGameDB()
        {
            var db = new UserDBHelper();

            using (var gamedb = new GameDBHelper())
            {
                List <GameUnitsTable> GetCoreArmy(int coreId)
                {
                    var result = new List <GameUnitsTable>();

                    var warriorUnit        = gamedb.GetUnitProperty("Warrior");
                    var attackAircraftUnit = gamedb.GetUnitProperty("AttackAircraft");

                    var numberWarriors       = gamedb.CasernGetNumberOfWarriors(coreId);
                    var numberAttackAircraft = gamedb.CasernGetNumberOfAttackAircraft(coreId);

                    for (int i = 0; i < numberWarriors; i++)
                    {
                        result.Add(
                            new GameUnitsTable()
                        {
                            GameUnitId          = warriorUnit.GameUnitId,
                            GameUnitType        = warriorUnit.GameUnitType,
                            GameUnitName        = warriorUnit.GameUnitName,
                            GameUnitHP          = warriorUnit.GameUnitHP,
                            GameUnitAttack      = warriorUnit.GameUnitAttack,
                            GameUnitDefence     = warriorUnit.GameUnitDefence,
                            GameUnitGoldIncome  = warriorUnit.GameUnitGoldIncome,
                            GameUnitGoldOutcome = warriorUnit.GameUnitGoldOutcome
                        });
                    }
                    for (int i = 0; i < numberAttackAircraft; i++)
                    {
                        result.Add(new GameUnitsTable()
                        {
                            GameUnitId          = attackAircraftUnit.GameUnitId,
                            GameUnitType        = attackAircraftUnit.GameUnitType,
                            GameUnitName        = attackAircraftUnit.GameUnitName,
                            GameUnitHP          = attackAircraftUnit.GameUnitHP,
                            GameUnitAttack      = attackAircraftUnit.GameUnitAttack,
                            GameUnitDefence     = attackAircraftUnit.GameUnitDefence,
                            GameUnitGoldIncome  = attackAircraftUnit.GameUnitGoldIncome,
                            GameUnitGoldOutcome = attackAircraftUnit.GameUnitGoldOutcome
                        });
                    }

                    return(result);
                }

                bool run = true;
                while (run)
                {
                    Console.WriteLine(
                        "1. Show all\n" +
                        "2. Show battle\n" +
                        "3. Random registration\n" +
                        "4. Show all cores\n" +
                        "5. Build casern test\n" +
                        "6. Core info\n"
                        );
                    var key = Console.ReadKey().Key;
                    Console.WriteLine();
                    switch (key)
                    {
                    case ConsoleKey.D1:
                    {
                        break;
                    }

                    case ConsoleKey.D2:
                    {
                        Console.WriteLine();

                        Console.WriteLine("Battle begins");

                        List <GameUnitsTable> attackers = GetCoreArmy(1);
                        List <GameUnitsTable> defenders = GetCoreArmy(2);

                        var result = 0;        // GameEngine.Battle(attackers, defenders);
                        Console.WriteLine(result == 0 ?
                                          "Attackers won the battle!" :
                                          "Defenders won the battle!");
                        break;
                    }

                    case ConsoleKey.D3:
                    {
                        Console.WriteLine();
                        RandomUserRegistration(
                            db.RegisterUserToTable,
                            db.RemoveUserByIdFromTable,
                            db.FindUserByNickname);
                        break;
                    }

                    case ConsoleKey.D4:
                    {
                        Console.WriteLine();
                        Console.WriteLine("Cores: ");

                        var coreList = gamedb.GetAllCores()
                                       .FromJson <List <SessionCoresTable> >();
                        foreach (var el in coreList)
                        {
                            var elmap = gamedb
                                        .FindCoreMapByMapIdAsNoTracking(el.CoreMapId)
                                        .FromJson <SessionMapTable>();
                            Console.WriteLine(
                                $"userid: {el.UserId} " +
                                $"mapid: {el.CoreMapId} "
                                + $"map [{elmap.XCoord}, {elmap.YCoord}]"
                                );
                        }
                        break;
                    }

                    case ConsoleKey.D5:
                    {
                        Console.Clear();
                        Console.WriteLine("Build casern");
                        gamedb.CoreBuildCasern(1);
                        Console.Read();
                        break;
                    }

                    case ConsoleKey.D6:
                    {
                        Console.Clear();
                        Console.WriteLine("Core info");
                        var list = db.GetAllUsers();
                        foreach (var el in list)
                        {
                            var coreId = UserDBHelper.GetCoreIdByUserId(el.UserId);
                            if (coreId != -1)
                            {
                                var coreInfo = gamedb
                                               .GetCoreInfoById(coreId)
                                               .FromJson <CoreInfo>();

                                //var coreMap = gamedb
                                //    .FindCoreMapByMapIdAsNoTracking(coreInfo.CoreMapId)
                                //    .FromJson<SessionMapTable>();
                                //
                                //Console.WriteLine($"Core info [UserId={el.UserId}]");
                                //Console.WriteLine($"coreid: {coreInfo.CoreId} " +
                                //    $"money: {coreInfo.Money} " +
                                //    $"base capacity: {coreInfo.BaseCapacity}"+
                                //    $"map[{coreMap.XCoord}, {coreMap.YCoord}]");
                            }
                            else
                            {
                                Console
                                .WriteLine($"Can not find core id for userid: {el.UserId}");
                            }
                        }
                        Console.WriteLine();
                        break;
                    }

                    case ConsoleKey.C: { Console.Clear(); break; }

                    case ConsoleKey.Escape: { run = false; break; }

                    default: { break; }
                    }
                }
            }
        }