/// <summary> /// 報酬メッセージ生成ボタンがクリックされたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnButtonGenerateRewardMessage(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); DataQuest quest = GetCurrentQuest(); if (quest == null) { return; } if (quest.RewardGold > 0) { sb.Append(quest.RewardGold).Append("\\G"); } foreach (RewardItem rewardItem in quest.RewardItems) { string itemName = GetRewardItemName(rewardItem); int itemCount = rewardItem.Value; if (sb.Length > 0) { sb.Append("\r\n"); } sb.Append(itemName).Append('×').Append(itemCount); } textBoxRewardMsg.Text = (sb.Length > 0) ? sb.ToString() : "なし"; }
/// <summary> /// 報酬グリッドビューのセルが変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnDataGridViewRewardItemsCellValueChanged(object sender, DataGridViewCellEventArgs e) { DataQuest quest = GetCurrentQuest(); if (quest == null) { return; } var index = e.RowIndex; if ((index < 0) || (index >= quest.RewardItems.Count)) { return; } RewardItem rewardItem = quest.RewardItems[e.RowIndex]; DataRow row = ((DataTable)(dataGridViewRewardItems.DataSource)).Rows[index]; switch (e.ColumnIndex) { case 1: { if (DBNull.Value.Equals(row[1])) { row[1] = rewardItem.Value; } else { int value = (int)(row[1]); rewardItem.Value = value; } } break; } }
/// <summary> /// クエストタイプのラジオボタン選択状態が変更されたときに通知を受け取る。 /// 本メソッドはradioButtonQtSubjugation/radioButtonQtCollection/radioButtonQtEventの /// イベントを一括で処理する。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnRadioButtonQtCheckedChanged(object sender, EventArgs e) { RadioButton rb = (RadioButton)(sender); if (rb.Checked) { // OFF->ON時のみ処理する。 DataQuest quest = GetCurrentQuest(); if (quest != null) { if (rb == radioButtonQtSubjugation) { quest.QuestType = 1; } else if (rb == radioButtonQtCollection) { quest.QuestType = 2; } else if (rb == radioButtonQtEvent) { quest.QuestType = 3; } } radioButtonQtSubjugation.Checked = (rb == radioButtonQtSubjugation); radioButtonQtCollection.Checked = (rb == radioButtonQtCollection); radioButtonQtEvent.Checked = (rb == radioButtonQtEvent); } flowLayoutPanelQtSubjugation.Enabled = radioButtonQtSubjugation.Checked; flowLayoutPanelQtCollection.Enabled = radioButtonQtCollection.Checked; flowLayoutPanelQtEvent.Enabled = radioButtonQtEvent.Checked; }
/// <summary> /// 達成条件テキスト欄の内容が変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnTextBoxAchieveMsgTextChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); if (quest != null) { quest.AchieveMessage = textBoxAchieveMsg.Text; } }
/// <summary> /// 数値入力欄の数値が変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnNumericUpDownRewardGoldValueChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); if (quest != null) { quest.RewardGold = (int)(numericUpDownRewardGold.Value); } }
/// <summary> /// ギルド経験値欄の入力値が変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnNumericUpDownGuildExpValueChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); if (quest != null) { quest.GuildExp = (int)(numericUpDownGuildExp.Value); } }
/// <summary> /// 詳細情報入力欄のテキストが変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnTextBoxDescriptionTextChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); if (quest != null) { quest.Description = textBoxDescription.Text; } }
/// <summary> /// スイッチ番号入力欄の値が変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnNumericUpDownSwitchValueChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); if ((quest != null) && (quest.QuestType == 3)) { quest.Achieve[0] = (int)(numericUpDownSwitch.Value); } }
/// <summary> /// アイテム数入力欄の選択内容が変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnNumericUpDownItemCountValueChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); if ((quest != null) && (quest.QuestType == 2)) { quest.Achieve[1] = (int)(numericUpDownItemCount.Value); } }
/// <summary> /// アイテム選択コンボボックスの選択内容が変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnComboBoxItemSelectedItemChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); if ((quest != null) && (quest.QuestType == 2)) { quest.Achieve[0] = comboBoxItem.SelectedIndex; } }
/// <summary> /// 委託条件テキストボックスの内容が変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnTextBoxEntrustConditionTextChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); if (quest != null) { quest.EntrustCondition = textBoxEntrustCondition.Text; } }
/// <summary> /// コンボボックスの選択が変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnComboBoxGuildRankSelectedValueChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); if (quest != null) { quest.GuildRank = comboBoxGuildRank.SelectedIndex; } }
/// <summary> /// 名前テキストボックスの内容が変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnTextBoxNameTextChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); if (quest != null) { quest.Name = textBoxName.Text; var rows = dataGridViewQuests.SelectedRows; int index = rows[0].Index; DataTable dt = (DataTable)(dataGridViewQuests.DataSource); var row = dt.Rows[index]; row.SetField(0, string.Format("{0,4:D}:{1}", quest.Id, quest.Name)); } }
/// <summary> /// 報酬画面で行が削除されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnDataGridViewRewardItemsRowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e) { DataQuest quest = GetCurrentQuest(); if (quest == null) { return; } int index = e.RowIndex; for (int count = 0; count < e.RowCount; count++) { if (index < quest.RewardItems.Count) { quest.RewardItems.RemoveAt(index); } } }
/// <summary> /// アイテムが選択された時に通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnItemListItemSelected(object sender, EventArgs e) { IItem item = itemListForm.SelectedItem; DataQuest quest = GetCurrentQuest(); if ((item == null) || (quest == null)) { return; } RewardItem rewardItem = new RewardItem(); rewardItem.DataId = item.Id; rewardItem.Kind = GetItemKind(item); rewardItem.Value = 1; quest.RewardItems.Add(rewardItem); DataTable dt = (DataTable)(dataGridViewRewardItems.DataSource); var row = dt.NewRow(); SetRewardItemRow(row, rewardItem); dt.Rows.Add(row); }
/// <summary> /// 編集対象のクエストが選択変更されたときに通知を受け取る。 /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> private void OnDataGridViewQuestsSelectionChanged(object sender, EventArgs e) { DataQuest quest = GetCurrentQuest(); textBoxName.Text = quest?.Name ?? string.Empty; comboBoxGuildRank.SelectedIndex = quest?.GuildRank ?? 0; textBoxEntrustCondition.Text = quest?.EntrustCondition ?? string.Empty; if (quest != null) { radioButtonQtSubjugation.Checked = (quest.QuestType == 1); radioButtonQtCollection.Checked = (quest.QuestType == 2); radioButtonQtEvent.Checked = (quest.QuestType == 3); if (quest.QuestType == 1) { comboBoxEnemy.SelectedIndex = quest.Achieve[0]; quest.Achieve[1] = Math.Max(1, Math.Min(100, quest.Achieve[1])); numericUpDownEnemyCount.Value = quest.Achieve[1]; } else if (quest.QuestType == 2) { comboBoxItem.SelectedIndex = quest.Achieve[0]; quest.Achieve[1] = Math.Max(1, Math.Min(99, quest.Achieve[1])); numericUpDownItemCount.Value = quest.Achieve[1]; } else if (quest.QuestType == 3) { quest.Achieve[0] = Math.Max(1, Math.Min(9999, quest.Achieve[0])); numericUpDownSwitch.Value = quest.Achieve[0]; } } else { radioButtonQtSubjugation.Checked = false; radioButtonQtCollection.Checked = false; radioButtonQtEvent.Checked = false; } textBoxAchieveMsg.Text = quest?.AchieveMessage ?? string.Empty; textBoxDescription.Text = quest?.Description ?? string.Empty; textBoxRewardMsg.Text = quest?.RewardsMessage ?? string.Empty; if (quest != null) { quest.GuildExp = Math.Max(1, Math.Min(10000, quest.GuildExp)); numericUpDownGuildExp.Value = quest.GuildExp; quest.RewardGold = Math.Max(0, Math.Min(1000000, quest?.RewardGold ?? 0)); numericUpDownRewardGold.Value = quest.RewardGold; } else { numericUpDownGuildExp.Value = numericUpDownGuildExp.Minimum; numericUpDownRewardGold.Value = numericUpDownRewardGold.Minimum; } DataTable dt = (DataTable)(dataGridViewRewardItems.DataSource); dt.Rows.Clear(); if (quest != null) { foreach (var rewardItem in quest.RewardItems) { var row = dt.NewRow(); SetRewardItemRow(row, rewardItem); dt.Rows.Add(row); } } panelEdit.Enabled = (quest != null); }