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; } } }
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); } } } }
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); } } } }