コード例 #1
0
        /// <summary>
        /// 一覧ビューを更新します。
        /// </summary>
        private void UpdateView()
        {
            var ships            = KCDatabase.Instance.Ships.Values;
            var equipments       = KCDatabase.Instance.Equipments.Values;
            var masterEquipments = KCDatabase.Instance.MasterEquipments;
            int masterCount      = masterEquipments.Values.Count(eq => !eq.IsAbyssalEquipment);

            var allCount = equipments.GroupBy(eq => eq.EquipmentID).ToDictionary(group => group.Key, group => group.Count());

            var remainCount = new Dictionary <int, int>(allCount);


            //剰余数計算
            foreach (var eq in ships
                     .SelectMany(s => s.AllSlotInstanceMaster)
                     .Where(eq => eq != null))
            {
                remainCount[eq.EquipmentID]--;
            }

            foreach (var eq in KCDatabase.Instance.BaseAirCorps.Values
                     .SelectMany(corps => corps.Squadrons.Values.Select(sq => sq.EquipmentInstance))
                     .Where(eq => eq != null))
            {
                remainCount[eq.EquipmentID]--;
            }

            foreach (var eq in KCDatabase.Instance.RelocatedEquipments.Values
                     .Where(eq => eq.EquipmentInstance != null))
            {
                remainCount[eq.EquipmentInstance.EquipmentID]--;
            }



            //表示処理
            EquipmentView.SuspendLayout();

            EquipmentView.Enabled = false;
            EquipmentView.Rows.Clear();


            var rows = new List <DataGridViewRow>(allCount.Count);
            var ids  = allCount.Keys;

            foreach (int id in ids)
            {
                var row = new DataGridViewRow();
                row.CreateCells(EquipmentView);
                row.SetValues(
                    id,
                    masterEquipments[id].IconType,
                    masterEquipments[id].Name,
                    allCount[id],
                    remainCount[id]
                    );

                rows.Add(row);
            }

            for (int i = 0; i < rows.Count; i++)
            {
                rows[i].Tag = i;
            }

            EquipmentView.Rows.AddRange(rows.ToArray());

            EquipmentView.Sort(EquipmentView_Name, ListSortDirection.Ascending);


            EquipmentView.Enabled = true;
            EquipmentView.ResumeLayout();

            if (EquipmentView.Rows.Count > 0)
            {
                EquipmentView.CurrentCell = EquipmentView[0, 0];
            }
        }
コード例 #2
0
        /// <summary>
        /// 一覧ビューを更新します。
        /// </summary>
        private void UpdateView()
        {
            var ships            = KCDatabase.Instance.Ships.Values;
            var equipments       = KCDatabase.Instance.Equipments.Values;
            var masterEquipments = KCDatabase.Instance.MasterEquipments;
            int masterCount      = masterEquipments.Values.Count(eq => !eq.IsAbyssalEquipment);

            var allCount = new Dictionary <int, int>(masterCount);

            //全個数計算
            foreach (var e in equipments)
            {
                if (!allCount.ContainsKey(e.EquipmentID))
                {
                    allCount.Add(e.EquipmentID, 1);
                }
                else
                {
                    allCount[e.EquipmentID]++;
                }
            }


            var remainCount = new Dictionary <int, int>(allCount);


            //剰余数計算
            foreach (var ship in ships)
            {
                int[] eqids = ship.SlotInstance.Select(i => i != null ? i.EquipmentID : -1).ToArray();


                for (int i = 0; i < eqids.Length; i++)
                {
                    if (eqids[i] == -1)
                    {
                        continue;
                    }

                    remainCount[eqids[i]]--;
                }
            }


            //表示処理
            EquipmentView.SuspendLayout();

            EquipmentView.Enabled = false;
            EquipmentView.Rows.Clear();


            var rows = new List <DataGridViewRow>(allCount.Count);
            var ids  = allCount.Keys;

            foreach (int id in ids)
            {
                var row = new DataGridViewRow();
                row.CreateCells(EquipmentView);
                row.SetValues(
                    id,
                    masterEquipments[id].IconType,
                    masterEquipments[id].Name,
                    allCount[id],
                    remainCount[id]
                    );

                rows.Add(row);
            }

            for (int i = 0; i < rows.Count; i++)
            {
                rows[i].Tag = i;
            }

            EquipmentView.Rows.AddRange(rows.ToArray());

            EquipmentView.Sort(EquipmentView_Name, ListSortDirection.Ascending);


            EquipmentView.Enabled = true;
            EquipmentView.ResumeLayout();

            if (EquipmentView.Rows.Count > 0)
            {
                EquipmentView.CurrentCell = EquipmentView[0, 0];
            }
        }
コード例 #3
0
        public DialogAlbumMasterEquipment()
        {
            InitializeComponent();

            TitleFirepower.ImageList                                                                      =
                TitleTorpedo.ImageList                                                                    =
                    TitleAA.ImageList                                                                     =
                        TitleArmor.ImageList                                                              =
                            TitleASW.ImageList                                                            =
                                TitleEvasion.ImageList                                                    =
                                    TitleLOS.ImageList                                                    =
                                        TitleAccuracy.ImageList                                           =
                                            TitleBomber.ImageList                                         =
                                                TitleSpeed.ImageList                                      =
                                                    TitleRange.ImageList                                  =
                                                        TitleAircraftCost.ImageList                       =
                                                            TitleAircraftDistance.ImageList               =
                                                                Rarity.ImageList                          =
                                                                    MaterialFuel.ImageList                =
                                                                        MaterialAmmo.ImageList            =
                                                                            MaterialSteel.ImageList       =
                                                                                MaterialBauxite.ImageList =
                                                                                    ResourceManager.Instance.Icons;

            EquipmentType.ImageList = ResourceManager.Instance.Equipments;

            TitleFirepower.ImageIndex        = (int)ResourceManager.IconContent.ParameterFirepower;
            TitleTorpedo.ImageIndex          = (int)ResourceManager.IconContent.ParameterTorpedo;
            TitleAA.ImageIndex               = (int)ResourceManager.IconContent.ParameterAA;
            TitleArmor.ImageIndex            = (int)ResourceManager.IconContent.ParameterArmor;
            TitleASW.ImageIndex              = (int)ResourceManager.IconContent.ParameterASW;
            TitleEvasion.ImageIndex          = (int)ResourceManager.IconContent.ParameterEvasion;
            TitleLOS.ImageIndex              = (int)ResourceManager.IconContent.ParameterLOS;
            TitleAccuracy.ImageIndex         = (int)ResourceManager.IconContent.ParameterAccuracy;
            TitleBomber.ImageIndex           = (int)ResourceManager.IconContent.ParameterBomber;
            TitleSpeed.ImageIndex            = (int)ResourceManager.IconContent.ParameterSpeed;
            TitleRange.ImageIndex            = (int)ResourceManager.IconContent.ParameterRange;
            TitleAircraftCost.ImageIndex     = (int)ResourceManager.IconContent.ParameterAircraftCost;
            TitleAircraftDistance.ImageIndex = (int)ResourceManager.IconContent.ParameterAircraftDistance;
            MaterialFuel.ImageIndex          = (int)ResourceManager.IconContent.ResourceFuel;
            MaterialAmmo.ImageIndex          = (int)ResourceManager.IconContent.ResourceAmmo;
            MaterialSteel.ImageIndex         = (int)ResourceManager.IconContent.ResourceSteel;
            MaterialBauxite.ImageIndex       = (int)ResourceManager.IconContent.ResourceBauxite;


            BasePanelEquipment.Visible = false;


            ControlHelper.SetDoubleBuffered(TableEquipmentName);
            ControlHelper.SetDoubleBuffered(TableParameterMain);
            ControlHelper.SetDoubleBuffered(TableParameterSub);
            ControlHelper.SetDoubleBuffered(TableArsenal);

            ControlHelper.SetDoubleBuffered(EquipmentView);


            //Initialize EquipmentView
            EquipmentView.SuspendLayout();

            EquipmentView_ID.AutoSizeMode   = DataGridViewAutoSizeColumnMode.None;
            EquipmentView_Icon.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
            //EquipmentView_Type.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;


            EquipmentView.Rows.Clear();

            List <DataGridViewRow> rows = new List <DataGridViewRow>(KCDatabase.Instance.MasterEquipments.Values.Count(s => s.Name != "なし"));

            foreach (var eq in KCDatabase.Instance.MasterEquipments.Values)
            {
                if (eq.Name == "なし")
                {
                    continue;
                }

                DataGridViewRow row = new DataGridViewRow();
                row.CreateCells(EquipmentView);
                row.SetValues(eq.EquipmentID, eq.IconType, eq.CategoryTypeInstance.Name, eq.Name);
                rows.Add(row);
            }
            EquipmentView.Rows.AddRange(rows.ToArray());

            EquipmentView_ID.AutoSizeMode   = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
            EquipmentView_Icon.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
            //EquipmentView_Type.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;

            EquipmentView.Sort(EquipmentView_ID, ListSortDirection.Ascending);
            EquipmentView.ResumeLayout();
        }
コード例 #4
0
        /// <summary>
        /// 一覧ビューを更新します。
        /// </summary>
        private void UpdateView()
        {
            var ships            = KCDatabase.Instance.Ships.Values;
            var equipments       = KCDatabase.Instance.Equipments.Values;
            var masterEquipments = KCDatabase.Instance.MasterEquipments;
            int masterCount      = masterEquipments.Values.Count(eq => !eq.IsAbyssalEquipment);

            var allCount = equipments.GroupBy(eq => eq.EquipmentID).ToDictionary(group => group.Key, group => group.Count());

            var remainCount = new Dictionary <int, int>(allCount);


            //剰余数計算
            foreach (var eq in ships
                     .SelectMany(s => s.AllSlotInstanceMaster)
                     .Where(eq => eq != null))
            {
                remainCount[eq.EquipmentID]--;
            }

            foreach (var eq in KCDatabase.Instance.BaseAirCorps.Values
                     .SelectMany(corps => corps.Squadrons.Values.Select(sq => sq.EquipmentInstance))
                     .Where(eq => eq != null))
            {
                remainCount[eq.EquipmentID]--;
            }

            foreach (var eq in KCDatabase.Instance.RelocatedEquipments.Values
                     .Where(eq => eq.EquipmentInstance != null))
            {
                remainCount[eq.EquipmentInstance.EquipmentID]--;
            }



            //表示処理
            EquipmentView.SuspendLayout();

            EquipmentView.Enabled = false;
            EquipmentView.Rows.Clear();


            var rows = new List <DataGridViewRow>(allCount.Count);
            var ids  = allCount.Keys;

            foreach (int id in ids)
            {
                var row = new DataGridViewRow();
                row.CreateCells(EquipmentView);
                row.SetValues(
                    id,
                    masterEquipments[id].IconType,
                    masterEquipments[id].Name,
                    allCount[id],
                    remainCount[id]
                    );

                {
                    StringBuilder sb = new StringBuilder();
                    var           eq = masterEquipments[id];

                    sb.AppendFormat("{0} {1}\r\n", eq.CategoryTypeInstance.Name, eq.Name, eq.EquipmentID);
                    if (eq.Firepower != 0)
                    {
                        sb.AppendFormat("火力 {0:+0;-0}\r\n", eq.Firepower);
                    }
                    if (eq.Torpedo != 0)
                    {
                        sb.AppendFormat("雷装 {0:+0;-0}\r\n", eq.Torpedo);
                    }
                    if (eq.AA != 0)
                    {
                        sb.AppendFormat("対空 {0:+0;-0}\r\n", eq.AA);
                    }
                    if (eq.Armor != 0)
                    {
                        sb.AppendFormat("装甲 {0:+0;-0}\r\n", eq.Armor);
                    }
                    if (eq.ASW != 0)
                    {
                        sb.AppendFormat("対潜 {0:+0;-0}\r\n", eq.ASW);
                    }
                    if (eq.Evasion != 0)
                    {
                        sb.AppendFormat("{0} {1:+0;-0}\r\n", eq.CategoryType == EquipmentTypes.Interceptor ? "迎撃" : "回避", eq.Evasion);
                    }
                    if (eq.LOS != 0)
                    {
                        sb.AppendFormat("索敵 {0:+0;-0}\r\n", eq.LOS);
                    }
                    if (eq.Accuracy != 0)
                    {
                        sb.AppendFormat("{0} {1:+0;-0}\r\n", eq.CategoryType == EquipmentTypes.Interceptor ? "対爆" : "命中", eq.Accuracy);
                    }
                    if (eq.Bomber != 0)
                    {
                        sb.AppendFormat("爆装 {0:+0;-0}\r\n", eq.Bomber);
                    }
                    sb.AppendLine("(右クリックで図鑑)");

                    row.Cells[2].ToolTipText = sb.ToString();
                }
                rows.Add(row);
            }

            for (int i = 0; i < rows.Count; i++)
            {
                rows[i].Tag = i;
            }

            EquipmentView.Rows.AddRange(rows.ToArray());

            EquipmentView.Sort(EquipmentView_Name, ListSortDirection.Ascending);


            EquipmentView.Enabled = true;
            EquipmentView.ResumeLayout();

            if (EquipmentView.Rows.Count > 0)
            {
                EquipmentView.CurrentCell = EquipmentView[0, 0];
            }
        }