public void Execute(MySqlConnection connection, MySqlTransaction transaction)
        {
            string stmt = "SELECT * FROM battles ORDER BY dungeon ASC, id ASC";

            using (MySqlCommand command = new MySqlCommand(stmt, connection, transaction))
            {
                using (MySqlDataReader reader = command.ExecuteReader())
                {
                    uint   current_dungeon           = 0;
                    ushort current_stam_to_reach     = 0;
                    DataCache.Battles.Data last_data = null;
                    while (reader.Read())
                    {
                        DataCache.Battles.Key  key  = new DataCache.Battles.Key();
                        DataCache.Battles.Data data = new DataCache.Battles.Data();

                        key.BattleId      = (uint)reader["id"];
                        data.DungeonId    = (uint)reader["dungeon"];
                        data.Name         = (string)reader["name"];
                        data.Stamina      = (ushort)reader["stamina"];
                        data.Samples      = (uint)reader["samples"];
                        data.HistoSamples = (uint)reader["histo_samples"];
                        data.Repeatable   = true;

                        if (current_dungeon != data.DungeonId)
                        {
                            // We just went to a new dungeon.  Stamina to reach is 0.
                            current_stam_to_reach = 0;

                            // The previous battle is not repeatable.
                            if (last_data != null)
                            {
                                last_data.Repeatable = false;
                            }
                        }
                        else
                        {
                            current_stam_to_reach += data.Stamina;
                        }

                        data.StaminaToReach = current_stam_to_reach;
                        mBattles.Update(key, data);

                        current_dungeon = data.DungeonId;
                        last_data       = data;
                    }
                    last_data.Repeatable = false;
                }
            }
        }
Example #2
0
        public void Execute(MySqlConnection connection, MySqlTransaction transaction)
        {
            string stmt = "SELECT i.id, i.name, i.rarity, i.series, i.type, i.subtype, " +
                          "       s.base_atk, s.base_mag, s.base_acc, s.base_def, s.base_res, s.base_eva, s.base_mnd, " +
                          "       s.max_atk, s.max_mag, s.max_acc, s.max_def, s.max_res, s.max_eva, s.max_mnd " +
                          "FROM   items i LEFT OUTER JOIN equipment_stats s ON s.equipment_id = i.id";

            using (MySqlCommand command = new MySqlCommand(stmt, connection, transaction))
            {
                using (MySqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        DataCache.Items.Key  key  = new DataCache.Items.Key();
                        DataCache.Items.Data data = new DataCache.Items.Data();
                        key.ItemId   = (uint)reader["id"];
                        data.Name    = (string)reader["name"];
                        data.Rarity  = (byte)reader["rarity"];
                        data.Series  = reader.GetValueOrNull <uint>("series");
                        data.Type    = (byte)reader["type"];
                        data.Subtype = (byte)reader["subtype"];

                        data.BaseStats     = new GameData.EquipStats();
                        data.BaseStats.Atk = reader.GetValueOrNull <short>("base_atk");
                        data.BaseStats.Mag = reader.GetValueOrNull <short>("base_mag");
                        data.BaseStats.Acc = reader.GetValueOrNull <short>("base_acc");
                        data.BaseStats.Def = reader.GetValueOrNull <short>("base_def");
                        data.BaseStats.Res = reader.GetValueOrNull <short>("base_res");
                        data.BaseStats.Eva = reader.GetValueOrNull <short>("base_eva");
                        data.BaseStats.Mnd = reader.GetValueOrNull <short>("base_mnd");

                        data.MaxStats     = new GameData.EquipStats();
                        data.MaxStats.Atk = reader.GetValueOrNull <short>("max_atk");
                        data.MaxStats.Mag = reader.GetValueOrNull <short>("max_mag");
                        data.MaxStats.Acc = reader.GetValueOrNull <short>("max_acc");
                        data.MaxStats.Def = reader.GetValueOrNull <short>("max_def");
                        data.MaxStats.Res = reader.GetValueOrNull <short>("max_res");
                        data.MaxStats.Eva = reader.GetValueOrNull <short>("max_eva");
                        data.MaxStats.Mnd = reader.GetValueOrNull <short>("max_mnd");
                        mItems.Update(key, data);
                    }
                }
            }
        }
Example #3
0
        public void Execute(MySqlConnection connection, MySqlTransaction transaction)
        {
            string stmt = "SELECT * FROM worlds";

            using (MySqlCommand command = new MySqlCommand(stmt, connection, transaction))
            {
                using (MySqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        DataCache.Worlds.Key  key  = new DataCache.Worlds.Key();
                        DataCache.Worlds.Data data = new DataCache.Worlds.Data();
                        key.WorldId = (uint)reader["id"];
                        data.Name   = (string)reader["name"];
                        data.Series = (uint)reader["series"];
                        data.Type   = (SchemaConstants.WorldType)reader["type"];
                        mWorlds.Update(key, data);
                    }
                }
            }
        }