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();
            }
        }
Exemplo n.º 2
0
        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();
        }