private void Open(int shipID) { var ship = KCDatabase.Instance.MasterShips[shipID]; if (ship == null) { return; } var list = new LinkedList <string>(); void Add(int id, bool isDamaged, string resourceType) { if (resourceType == KCResourceHelper.ResourceTypeShipName && isDamaged) { return; } var path = KCResourceHelper.GetShipImagePath(id, isDamaged, resourceType); if (path != null) { list.AddLast(path); } } void AddShip(int id) { Add(id, false, KCResourceHelper.ResourceTypeShipBanner); Add(id, true, KCResourceHelper.ResourceTypeShipBanner); Add(id, false, KCResourceHelper.ResourceTypeShipCard); Add(id, true, KCResourceHelper.ResourceTypeShipCard); Add(id, false, KCResourceHelper.ResourceTypeShipAlbumZoom); Add(id, true, KCResourceHelper.ResourceTypeShipAlbumZoom); Add(id, false, KCResourceHelper.ResourceTypeShipAlbumFull); Add(id, true, KCResourceHelper.ResourceTypeShipAlbumFull); Add(id, false, KCResourceHelper.ResourceTypeShipFull); Add(id, true, KCResourceHelper.ResourceTypeShipFull); Add(id, false, KCResourceHelper.ResourceTypeShipCutin); Add(id, true, KCResourceHelper.ResourceTypeShipCutin); Add(id, false, KCResourceHelper.ResourceTypeShipName); Add(id, false, KCResourceHelper.ResourceTypeShipSupply); Add(id, true, KCResourceHelper.ResourceTypeShipSupply); } AddShip(shipID); foreach (var rec in RecordManager.Instance.ShipParameter.Record.Values.Where(r => r.OriginalCostumeShipID == shipID)) { AddShip(rec.ShipID); } Open(list.ToArray()); }
private void UpdateAlbumPage(int equipmentID) { KCDatabase db = KCDatabase.Instance; EquipmentDataMaster eq = db.MasterEquipments[equipmentID]; if (eq == null) { return; } BasePanelEquipment.SuspendLayout(); //header EquipmentID.Tag = equipmentID; EquipmentID.Text = eq.EquipmentID.ToString(); ToolTipInfo.SetToolTip(EquipmentID, string.Format("Type: [ {0} ]", string.Join(", ", eq.EquipmentType))); AlbumNo.Text = eq.AlbumNo.ToString(); TableEquipmentName.SuspendLayout(); EquipmentType.Text = eq.CategoryTypeInstance.Name; { int eqicon = eq.IconType; if (eqicon >= (int)ResourceManager.EquipmentContent.Locked) { eqicon = (int)ResourceManager.EquipmentContent.Unknown; } EquipmentType.ImageIndex = eqicon; ToolTipInfo.SetToolTip(EquipmentType, GetEquippableShips(equipmentID)); } EquipmentName.Text = eq.Name; ToolTipInfo.SetToolTip(EquipmentName, "(右クリックでコピー)"); TableEquipmentName.ResumeLayout(); //main parameter TableParameterMain.SuspendLayout(); SetParameterText(Firepower, eq.Firepower); SetParameterText(Torpedo, eq.Torpedo); SetParameterText(AA, eq.AA); SetParameterText(Armor, eq.Armor); SetParameterText(ASW, eq.ASW); SetParameterText(Evasion, eq.Evasion); SetParameterText(LOS, eq.LOS); SetParameterText(Accuracy, eq.Accuracy); SetParameterText(Bomber, eq.Bomber); if (eq.CategoryType == EquipmentTypes.Interceptor) { TitleAccuracy.Text = "対爆"; TitleAccuracy.ImageIndex = (int)ResourceManager.IconContent.ParameterAntiBomber; TitleEvasion.Text = "迎撃"; TitleEvasion.ImageIndex = (int)ResourceManager.IconContent.ParameterInterception; } else { TitleAccuracy.Text = "命中"; TitleAccuracy.ImageIndex = (int)ResourceManager.IconContent.ParameterAccuracy; TitleEvasion.Text = "回避"; TitleEvasion.ImageIndex = (int)ResourceManager.IconContent.ParameterEvasion; } TableParameterMain.ResumeLayout(); //sub parameter TableParameterSub.SuspendLayout(); Speed.Text = "なし"; //Constants.GetSpeed( eq.Speed ); Range.Text = Constants.GetRange(eq.Range); Rarity.Text = Constants.GetEquipmentRarity(eq.Rarity); Rarity.ImageIndex = (int)ResourceManager.IconContent.RarityRed + Constants.GetEquipmentRarityID(eq.Rarity); //checkme TableParameterSub.ResumeLayout(); // aircraft if (eq.IsAircraft) { TableAircraft.SuspendLayout(); AircraftCost.Text = eq.AircraftCost.ToString(); ToolTipInfo.SetToolTip(AircraftCost, "配備時のボーキ消費:" + ((eq.IsCombatAircraft ? 18 : 4) * eq.AircraftCost)); AircraftDistance.Text = eq.AircraftDistance.ToString(); TableAircraft.ResumeLayout(); TableAircraft.Visible = true; } else { TableAircraft.Visible = false; } //default equipment DefaultSlots.BeginUpdate(); DefaultSlots.Items.Clear(); foreach (var ship in KCDatabase.Instance.MasterShips.Values) { if (ship.DefaultSlot != null && ship.DefaultSlot.Contains(equipmentID)) { DefaultSlots.Items.Add(ship); } } DefaultSlots.EndUpdate(); Description.Text = eq.Message; //arsenal TableArsenal.SuspendLayout(); MaterialFuel.Text = eq.Material[0].ToString(); MaterialAmmo.Text = eq.Material[1].ToString(); MaterialSteel.Text = eq.Material[2].ToString(); MaterialBauxite.Text = eq.Material[3].ToString(); TableArsenal.ResumeLayout(); //装備画像を読み込んでみる { var img = KCResourceHelper.LoadEquipmentImage(equipmentID, KCResourceHelper.ResourceTypeEquipmentCard) ?? KCResourceHelper.LoadEquipmentImage(equipmentID, KCResourceHelper.ResourceTypeEquipmentCardSmall); if (img != null) { EquipmentImage.Image?.Dispose(); EquipmentImage.Image = img; } else { EquipmentImage.Image?.Dispose(); EquipmentImage.Image = null; } } BasePanelEquipment.ResumeLayout(); BasePanelEquipment.Visible = true; this.Text = "装備図鑑 - " + eq.Name; }