Example #1
0
        /// <summary>
        ///     ユニットモデルリストビューの項目を作成する
        /// </summary>
        /// <param name="unit">ユニットクラス</param>
        /// <param name="index">ユニットモデルのインデックス</param>
        /// <returns>ユニットモデルリストビューの項目</returns>
        private ListViewItem CreateModelListItem(UnitClass unit, int index)
        {
            UnitModel model = unit.Models[index];

            ListViewItem item = new ListViewItem { Text = IntHelper.ToString(index) };
            string name = unit.GetCountryModelName(index, GetSelectedCountry());
            if (string.IsNullOrEmpty(name))
            {
                name = unit.GetModelName(index);
            }
            item.SubItems.Add(name);
            item.SubItems.Add(DoubleHelper.ToString(model.Cost));
            item.SubItems.Add(DoubleHelper.ToString(model.BuildTime));
            item.SubItems.Add(DoubleHelper.ToString(model.ManPower));
            item.SubItems.Add(DoubleHelper.ToString(model.SupplyConsumption));
            item.SubItems.Add(DoubleHelper.ToString(model.FuelConsumption));
            item.SubItems.Add(DoubleHelper.ToString(model.DefaultOrganization));
            item.SubItems.Add(DoubleHelper.ToString(model.Morale));
            item.SubItems.Add(DoubleHelper.ToString(model.MaxSpeed));

            return item;
        }
Example #2
0
        /// <summary>
        ///     modelセクションを書き出す
        /// </summary>
        /// <param name="model">ユニットモデルデータ</param>
        /// <param name="unit">ユニットデータ</param>
        /// <param name="index">ユニットモデルのインデックス</param>
        /// <param name="writer">ファイル書き込み用</param>
        private static void WriteModel(UnitModel model, UnitClass unit, int index, StreamWriter writer)
        {
            writer.WriteLine("# {0} - {1}", index, unit.GetModelName(index));
            writer.WriteLine("model = {");

            // 兵科固有部分
            switch (unit.Branch)
            {
                case Branch.Army:
                    if (unit.Organization == UnitOrganization.Division)
                    {
                        WriteLandDivision(model, writer);
                    }
                    else
                    {
                        WriteLandBrigade(model, writer);
                    }
                    break;

                case Branch.Navy:
                    if (unit.Organization == UnitOrganization.Division)
                    {
                        WriteNavalDivision(model, writer);
                    }
                    else
                    {
                        WriteNavalBrigade(model, writer);
                    }
                    break;

                case Branch.Airforce:
                    if (unit.Organization == UnitOrganization.Division)
                    {
                        WriteAirDivision(model, writer);
                    }
                    else
                    {
                        WriteAirBrigade(model, writer);
                    }
                    break;
            }

            if (Game.Type == GameType.DarkestHour)
            {
                // 自動改良
                if (model.AutoUpgrade)
                {
                    writer.WriteLine("\t{0}\t\t\t\t= {1}", Units.Strings[(int) model.UpgradeClass], model.UpgradeModel);
                }
                // upgrade_time_boost
                if (!model.UpgradeTimeBoost)
                {
                    writer.WriteLine("\tupgrade_time_boost \t= {0}", model.UpgradeTimeBoost ? "yes" : "no");
                }
            }

            // equipment (DH1.03以降)
            if ((Game.Type == GameType.DarkestHour) && (Game.Version >= 103) && (model.Equipments.Count > 0))
            {
                writer.Write("\tequipment = {");
                foreach (UnitEquipment equipment in model.Equipments)
                {
                    writer.Write(" {0} = {1}", Units.EquipmentStrings[(int) equipment.Resource], equipment.Quantity);
                }
                writer.WriteLine(" }");
            }

            writer.WriteLine("}");
        }