void InsertNodeInfo(int rpMapID, SortieNodeInfo rpNode) { using (var rCommand = Connection.CreateCommand()) { rCommand.CommandText = "INSERT OR IGNORE INTO sortie_node(map, id, type, subtype) VALUES(@map, @id, @type, @subtype);"; rCommand.Parameters.AddWithValue("@map", rpMapID); rCommand.Parameters.AddWithValue("@id", rpNode.ID); rCommand.Parameters.AddWithValue("@type", (int)rpNode.EventType); rCommand.Parameters.AddWithValue("@subtype", rpNode.EventSubType); rCommand.ExecuteNonQuery(); } }
void ProcessReward(SQLiteCommand rpCommand, SortieNodeInfo rpNode, RewardEventBase rpEvent) { StringBuilder rBuilder = null; switch (rpNode.EventType) { case SortieEventType.Reward: var rRewards = ((RewardEvent)rpEvent).Rewards; if (rRewards == null || rRewards.Count == 0) { return; } foreach (var rReward in rRewards) { if (!IsRewardValid(rReward.ID)) { continue; } if (rBuilder == null) { rBuilder = new StringBuilder(256); rBuilder.AppendLine("INSERT OR IGNORE INTO sortie_reward_pending(type) VALUES(0);"); } var rSetter = GetRewardSetter(rReward.ID, rReward.Quantity); rBuilder.Append("UPDATE sortie_reward_pending SET "); rBuilder.Append(rSetter); rBuilder.AppendLine(" WHERE type = 0;"); } break; case SortieEventType.AviationReconnaissance: if (((AviationReconnaissanceEvent)rpEvent).Result == AviationReconnaissanceResult.Failure || !IsRewardValid(rpEvent.ID)) { return; } rBuilder = new StringBuilder(256); rBuilder.AppendLine("INSERT OR IGNORE INTO sortie_reward_pending(type) VALUES(1);"); rBuilder.Append("UPDATE sortie_reward_pending SET "); rBuilder.Append(GetRewardSetter(rpEvent.ID, rpEvent.Quantity)); rBuilder.AppendLine(" WHERE type = 1;"); break; case SortieEventType.EscortSuccess: if (!IsRewardValid(rpEvent.ID)) { return; } rBuilder = new StringBuilder(256); rBuilder.AppendLine("INSERT OR IGNORE INTO sortie_reward(id) VALUES(@id);"); rBuilder.Append("UPDATE sortie_reward SET "); rBuilder.Append(GetRewardSetter(rpEvent.ID, rpEvent.Quantity)); rBuilder.AppendLine(" WHERE id = @id;"); break; default: return; } if (rBuilder == null) { return; } rpCommand.CommandText += rBuilder.ToString(); }