예제 #1
0
        /// <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;
            }
        }
예제 #2
0
        /// <summary>
        /// アイテム名を得る。
        /// </summary>
        /// <param name="rewardItem">報酬アイテムエントリ</param>
        /// <returns>報酬アイテム名</returns>
        private string GetRewardItemName(RewardItem rewardItem)
        {
            int kind = rewardItem.Kind;
            int id   = rewardItem.DataId;

            if ((kind == 1) && (id > 0) && (id < items.Count))
            {
                return(items[id].Name);
            }
            else if ((kind == 2) && (id > 0) && (id < weapons.Count))
            {
                return(weapons[id].Name);
            }
            else if ((kind == 3) && (id > 0) && (id < armors.Count))
            {
                return(armors[id].Name);
            }

            return(null);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
 /// <summary>
 /// rowにrewardItemをを設定する。
 /// </summary>
 /// <param name="row">行</param>
 /// <param name="rewardItem">RewardItemオブジェクト</param>
 private void SetRewardItemRow(DataRow row, RewardItem rewardItem)
 {
     row[0] = GetItemName(rewardItem.Kind, rewardItem.DataId);
     row[1] = rewardItem.Value;
 }