示例#1
0
 public static GearBuilder AddUnitgearPrefix(this GearBuilder builder)
 {
     return(builder.NewLine()
            .AddCommand(GearBuilderResources.UnitgearPrefixArrayInit)
            .NewLine()
            .AddCommand(GearBuilderResources.UnitgearItemRemoval)
            .NewLine()
            .AddCommand(GearBuilderResources.UnitgearRandomizationDisabling));
 }
示例#2
0
 private static GearBuilder AddUnitgearCase(this GearBuilder builder, Loadout loadout)
 {
     return(builder
            .OpenCaseBlock(loadout.Name)
            .IncreaseIndent()
            .AddUnitgearCaseBody(loadout.ManEquipment)
            .DecreaseIndent()
            .CloseCaseBlock());
 }
示例#3
0
 private static GearBuilder AddAssignedItems(this GearBuilder builder, IEnumerable <Item> items)
 {
     return(builder
            .ApplyForEach(
                (current, item) =>
                current.AddCommandWithParameters(
                    $"{GearBuilderResources.UnitFunc} {GearBuilderResources.AssignItemCommand}", item.Classname),
                items)
            .NewLine());
 }
示例#4
0
 public static string BuildUnitgear(this GearBuilder builder, IEnumerable <Loadout> loadouts)
 {
     return(builder
            .AddFileCommentHeader()
            .AddUnitgearPrefix()
            .OpenTypeSelectionBlock()
            .AddLoadoutCases(loadouts)
            .CloseTypeSelectionBlock()
            .CreateOutput());
 }
示例#5
0
        private static GearBuilder AddBackpack(this GearBuilder builder, string classname)
        {
            if (String.IsNullOrEmpty(classname))
            {
                return(builder);
            }

            return(builder
                   .AddCommandWithParameters($"{GearBuilderResources.UnitFunc} {GearBuilderResources.AddBackpackCommand}", classname)
                   .AddCommand(GearBuilderResources.ClearBackpackCommand)
                   .NewLine());
        }
示例#6
0
        private static GearBuilder AddUniformItems(this GearBuilder builder, Container uniform)
        {
            if (uniform == null)
            {
                return(builder);
            }

            return(builder
                   .ApplyForEach(
                       (current, item) => current.AddContainerItems(GearBuilderResources.UnitUniformFunc, item),
                       uniform.Items)
                   .NewLine());
        }
示例#7
0
        private static GearBuilder AddContainerItems(this GearBuilder builder, string unitContainer, Item item)
        {
            if (item is ItemStack)
            {
                builder.AddCommandWithParameters($"{unitContainer} {GearBuilderResources.AddItemsCommand}", item.Classname, (item as ItemStack).Count);
            }
            else
            {
                builder.AddCommandWithParameters($"{unitContainer} {GearBuilderResources.AddItemsCommand}", item.Classname, 1);
            }

            return(builder);
        }
示例#8
0
        private static GearBuilder AddBackpackItems(this GearBuilder builder, Container backpack)
        {
            if (backpack == null)
            {
                return(builder);
            }

            return(builder
                   .ApplyForEach(
                       (current, item) => current.AddContainerItems(GearBuilderResources.UnitBackpackFunc, item),
                       backpack.Items)
                   .NewLine());
        }
示例#9
0
        private static GearBuilder AddVestItems(this GearBuilder builder, Container vest)
        {
            if (vest == null)
            {
                return(builder);
            }

            return(builder
                   .ApplyForEach(
                       (current, item) => current.AddContainerItems(GearBuilderResources.UnitVestFunc, item),
                       vest.Items)
                   .NewLine());
        }
示例#10
0
        private static GearBuilder AddPrimaryWeapon(this GearBuilder builder, Weapon primaryWeapon)
        {
            if (primaryWeapon == null)
            {
                return(builder);
            }

            return(builder
                   .AddCommandWithParameters($"{GearBuilderResources.UnitFunc} {GearBuilderResources.AddWeaponCommand}", primaryWeapon.Classname)
                   .ApplyForEach(
                       (current, attachment) =>
                       current.AddCommandWithParameters(
                           $"{GearBuilderResources.UnitFunc} {GearBuilderResources.AddPrimaryWeaponItemCommand}",
                           attachment.Classname), primaryWeapon.Attachments)
                   .AddCommandWithParameters(
                       $"{GearBuilderResources.UnitFunc} {GearBuilderResources.AddPrimaryWeaponItemCommand}",
                       primaryWeapon.Magazine?.Classname)
                   .NewLine());
        }
示例#11
0
        private static GearBuilder AddSidearm(this GearBuilder builder, Weapon sidearm)
        {
            if (sidearm == null)
            {
                return(builder);
            }

            return(builder
                   .AddCommandWithParameters($"{GearBuilderResources.UnitFunc} {GearBuilderResources.AddWeaponCommand}", sidearm.Classname)
                   .ApplyForEach(
                       (current, attachment) =>
                       current.AddCommandWithParameters(
                           $"{GearBuilderResources.UnitFunc} {GearBuilderResources.AddSidearmItemCommand}",
                           attachment.Classname), sidearm.Attachments)
                   .AddCommandWithParameters(
                       $"{GearBuilderResources.UnitFunc} {GearBuilderResources.AddSidearmItemCommand}",
                       sidearm.Magazine?.Classname)
                   .NewLine());
        }
示例#12
0
 private static GearBuilder AddUnitgearCaseBody(this GearBuilder builder, ManEquipment equipment)
 {
     return(builder
            .AddCommand("//Umundurowanie")
            .AddUniform(equipment.Uniform?.Classname)
            .AddVest(equipment.Vest?.Classname)
            .AddHeadgear(equipment.Headgear?.Classname)
            .AddGoggles(equipment.Goggles?.Classname)
            .AddBackpack(equipment.Backpack?.Classname)
            .AddCommand("//Przypisane przedmioty")
            .AddAssignedItems(equipment.AssignedItems)
            .AddCommand("//Broń i dodatki")
            .AddPrimaryWeapon(equipment.PrimaryWeapon)
            .AddSecondaryWeapon(equipment.SecondaryWeapon)
            .AddSidearm(equipment.Sidearm)
            .AddCommand("//Przedmioty i magazynki w mundurze")
            .AddUniformItems(equipment.Uniform)
            .AddCommand("//Przedmioty i magazynki w kamizelce")
            .AddVestItems(equipment.Vest)
            .AddCommand("//Przedmioty i magazynki w plecaku")
            .AddBackpackItems(equipment.Backpack));
 }
示例#13
0
 public static GearBuilder AddFileCommentHeader(this GearBuilder builder)
 {
     return(builder.AddCommand(GearBuilderResources.UnitgearFileNameLine)
            .AddCommand(string.Format(GearBuilderResources.GeneratedByComment,
                                      DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss"))));
 }
示例#14
0
 private static GearBuilder AddHeadgear(this GearBuilder builder, string classname)
 {
     return(builder
            .AddCommandWithParameters($"{GearBuilderResources.UnitFunc} {GearBuilderResources.AddHeadgearCommand}", classname));
 }
示例#15
0
 public static GearBuilder AddLoadoutCases(this GearBuilder builder, IEnumerable <Loadout> loadouts)
 {
     return(builder.ApplyForEach(AddUnitgearCase, loadouts));
 }
示例#16
0
 public static GearBuilder OpenTypeSelectionBlock(this GearBuilder builder)
 {
     return(builder.NewLine()
            .AddCommand(GearBuilderResources.UnitgearLoadoutSwitchOpening));
 }
示例#17
0
 private static GearBuilder CloseCaseBlock(this GearBuilder builder)
 {
     return(builder
            .AddCommand(GearBuilderResources.UnitgearCaseClosing));
 }
示例#18
0
 private static GearBuilder OpenCaseBlock(this GearBuilder builder, string caseName)
 {
     return(builder
            .NewLine()
            .AddCommand(String.Format(GearBuilderResources.UnitgearCaseOpening, caseName)));
 }
示例#19
0
 public static GearBuilder CloseTypeSelectionBlock(this GearBuilder builder)
 {
     return(builder
            .AddCommand(GearBuilderResources.UnitgearLoadoutSwitchClosing));
 }