From 41ffce5d6c0dfe9f80f819eacc34146793dc2d4d Mon Sep 17 00:00:00 2001 From: Safairette <71556532+Safairette@users.noreply.github.com> Date: Fri, 27 Sep 2024 14:20:11 +0300 Subject: [PATCH 1/6] Add Generic-only patch ops --- ...PatchOperationAddModExtension_GenericOnly.cs | 17 +++++++++++++++++ .../PatchOperationAdd_GenericOnly.cs | 17 +++++++++++++++++ .../PatchOperationRemove_GenericOnly.cs | 17 +++++++++++++++++ .../PatchOperationReplace_GenericOnly.cs | 17 +++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 Source/CombatExtended/CombatExtended/PatchOperationAddModExtension_GenericOnly.cs create mode 100644 Source/CombatExtended/CombatExtended/PatchOperationAdd_GenericOnly.cs create mode 100644 Source/CombatExtended/CombatExtended/PatchOperationRemove_GenericOnly.cs create mode 100644 Source/CombatExtended/CombatExtended/PatchOperationReplace_GenericOnly.cs diff --git a/Source/CombatExtended/CombatExtended/PatchOperationAddModExtension_GenericOnly.cs b/Source/CombatExtended/CombatExtended/PatchOperationAddModExtension_GenericOnly.cs new file mode 100644 index 0000000000..49a401959e --- /dev/null +++ b/Source/CombatExtended/CombatExtended/PatchOperationAddModExtension_GenericOnly.cs @@ -0,0 +1,17 @@ +using System.Xml; +using Verse; + +namespace CombatExtended +{ + public class PatchOperationAddModExtension_GenericOnly : PatchOperationAddModExtension + { + public override bool ApplyWorker(XmlDocument xml) + { + if (!Controller.settings.GenericAmmo) + { + return true; + } + return base.ApplyWorker(xml); + } + } +} diff --git a/Source/CombatExtended/CombatExtended/PatchOperationAdd_GenericOnly.cs b/Source/CombatExtended/CombatExtended/PatchOperationAdd_GenericOnly.cs new file mode 100644 index 0000000000..b3e48ecfbe --- /dev/null +++ b/Source/CombatExtended/CombatExtended/PatchOperationAdd_GenericOnly.cs @@ -0,0 +1,17 @@ +using System.Xml; +using Verse; + +namespace CombatExtended +{ + public class PatchOperationAdd_GenericOnly : PatchOperationAdd + { + public override bool ApplyWorker(XmlDocument xml) + { + if (!Controller.settings.GenericAmmo) + { + return true; + } + return base.ApplyWorker(xml); + } + } +} diff --git a/Source/CombatExtended/CombatExtended/PatchOperationRemove_GenericOnly.cs b/Source/CombatExtended/CombatExtended/PatchOperationRemove_GenericOnly.cs new file mode 100644 index 0000000000..bcabf88659 --- /dev/null +++ b/Source/CombatExtended/CombatExtended/PatchOperationRemove_GenericOnly.cs @@ -0,0 +1,17 @@ +using System.Xml; +using Verse; + +namespace CombatExtended +{ + public class PatchOperationRemove_GenericOnly : PatchOperationRemove + { + public override bool ApplyWorker(XmlDocument xml) + { + if (!Controller.settings.GenericAmmo) + { + return true; + } + return base.ApplyWorker(xml); + } + } +} diff --git a/Source/CombatExtended/CombatExtended/PatchOperationReplace_GenericOnly.cs b/Source/CombatExtended/CombatExtended/PatchOperationReplace_GenericOnly.cs new file mode 100644 index 0000000000..d2ac7b92fa --- /dev/null +++ b/Source/CombatExtended/CombatExtended/PatchOperationReplace_GenericOnly.cs @@ -0,0 +1,17 @@ +using System.Xml; +using Verse; + +namespace CombatExtended +{ + public class PatchOperationReplace_GenericOnly : PatchOperationReplace + { + public override bool ApplyWorker(XmlDocument xml) + { + if (!Controller.settings.GenericAmmo) + { + return true; //Early return without a failure + } + return base.ApplyWorker(xml); + } + } +} From b1a7e714cebe36bc0417c7f8f31170962af74701 Mon Sep 17 00:00:00 2001 From: Safairette <71556532+Safairette@users.noreply.github.com> Date: Fri, 25 Oct 2024 20:30:41 +0300 Subject: [PATCH 2/6] Add conditional for generics --- .../PatchOperation_ConditionalGeneric.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Source/CombatExtended/CombatExtended/PatchOperation_ConditionalGeneric.cs diff --git a/Source/CombatExtended/CombatExtended/PatchOperation_ConditionalGeneric.cs b/Source/CombatExtended/CombatExtended/PatchOperation_ConditionalGeneric.cs new file mode 100644 index 0000000000..ea49a6f893 --- /dev/null +++ b/Source/CombatExtended/CombatExtended/PatchOperation_ConditionalGeneric.cs @@ -0,0 +1,25 @@ +using System.Xml; +using Verse; + +namespace CombatExtended +{ + public class PatchOperation_ConditionalGeneric : PatchOperation + { + public PatchOperation standard; + public PatchOperation generic; + + public override bool ApplyWorker(XmlDocument xml) + { + if (Controller.settings.GenericAmmo && generic != null) + { + return generic.Apply(xml); + } + else if (standard != null) + { + return standard.Apply(xml); + } + + return true; + } + } +} From 1519be7f940a38c00c48abba6839c18b2caef366 Mon Sep 17 00:00:00 2001 From: Safairette <71556532+Safairette@users.noreply.github.com> Date: Sat, 26 Oct 2024 00:10:58 +0300 Subject: [PATCH 3/6] Remove the other patch ops --- ...PatchOperationAddModExtension_GenericOnly.cs | 17 ----------------- .../PatchOperationAdd_GenericOnly.cs | 17 ----------------- .../PatchOperationRemove_GenericOnly.cs | 17 ----------------- .../PatchOperationReplace_GenericOnly.cs | 17 ----------------- 4 files changed, 68 deletions(-) delete mode 100644 Source/CombatExtended/CombatExtended/PatchOperationAddModExtension_GenericOnly.cs delete mode 100644 Source/CombatExtended/CombatExtended/PatchOperationAdd_GenericOnly.cs delete mode 100644 Source/CombatExtended/CombatExtended/PatchOperationRemove_GenericOnly.cs delete mode 100644 Source/CombatExtended/CombatExtended/PatchOperationReplace_GenericOnly.cs diff --git a/Source/CombatExtended/CombatExtended/PatchOperationAddModExtension_GenericOnly.cs b/Source/CombatExtended/CombatExtended/PatchOperationAddModExtension_GenericOnly.cs deleted file mode 100644 index 49a401959e..0000000000 --- a/Source/CombatExtended/CombatExtended/PatchOperationAddModExtension_GenericOnly.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Xml; -using Verse; - -namespace CombatExtended -{ - public class PatchOperationAddModExtension_GenericOnly : PatchOperationAddModExtension - { - public override bool ApplyWorker(XmlDocument xml) - { - if (!Controller.settings.GenericAmmo) - { - return true; - } - return base.ApplyWorker(xml); - } - } -} diff --git a/Source/CombatExtended/CombatExtended/PatchOperationAdd_GenericOnly.cs b/Source/CombatExtended/CombatExtended/PatchOperationAdd_GenericOnly.cs deleted file mode 100644 index b3e48ecfbe..0000000000 --- a/Source/CombatExtended/CombatExtended/PatchOperationAdd_GenericOnly.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Xml; -using Verse; - -namespace CombatExtended -{ - public class PatchOperationAdd_GenericOnly : PatchOperationAdd - { - public override bool ApplyWorker(XmlDocument xml) - { - if (!Controller.settings.GenericAmmo) - { - return true; - } - return base.ApplyWorker(xml); - } - } -} diff --git a/Source/CombatExtended/CombatExtended/PatchOperationRemove_GenericOnly.cs b/Source/CombatExtended/CombatExtended/PatchOperationRemove_GenericOnly.cs deleted file mode 100644 index bcabf88659..0000000000 --- a/Source/CombatExtended/CombatExtended/PatchOperationRemove_GenericOnly.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Xml; -using Verse; - -namespace CombatExtended -{ - public class PatchOperationRemove_GenericOnly : PatchOperationRemove - { - public override bool ApplyWorker(XmlDocument xml) - { - if (!Controller.settings.GenericAmmo) - { - return true; - } - return base.ApplyWorker(xml); - } - } -} diff --git a/Source/CombatExtended/CombatExtended/PatchOperationReplace_GenericOnly.cs b/Source/CombatExtended/CombatExtended/PatchOperationReplace_GenericOnly.cs deleted file mode 100644 index d2ac7b92fa..0000000000 --- a/Source/CombatExtended/CombatExtended/PatchOperationReplace_GenericOnly.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Xml; -using Verse; - -namespace CombatExtended -{ - public class PatchOperationReplace_GenericOnly : PatchOperationReplace - { - public override bool ApplyWorker(XmlDocument xml) - { - if (!Controller.settings.GenericAmmo) - { - return true; //Early return without a failure - } - return base.ApplyWorker(xml); - } - } -} From 09735ea6c5227a3cdf960d1c6ba1b79f7da94ebd Mon Sep 17 00:00:00 2001 From: Safairette <71556532+Safairette@users.noreply.github.com> Date: Sat, 26 Oct 2024 14:30:32 +0300 Subject: [PATCH 4/6] Fix standard-only patches --- .../CombatExtended/PatchOperation_ConditionalGeneric.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Source/CombatExtended/CombatExtended/PatchOperation_ConditionalGeneric.cs b/Source/CombatExtended/CombatExtended/PatchOperation_ConditionalGeneric.cs index ea49a6f893..2ef98f1f9f 100644 --- a/Source/CombatExtended/CombatExtended/PatchOperation_ConditionalGeneric.cs +++ b/Source/CombatExtended/CombatExtended/PatchOperation_ConditionalGeneric.cs @@ -10,9 +10,12 @@ public class PatchOperation_ConditionalGeneric : PatchOperation public override bool ApplyWorker(XmlDocument xml) { - if (Controller.settings.GenericAmmo && generic != null) + if (Controller.settings.GenericAmmo) { - return generic.Apply(xml); + if (generic != null) + { + return generic.Apply(xml); + } } else if (standard != null) { From 24e6508c23e1d3fc37991a270558c15819d5edf1 Mon Sep 17 00:00:00 2001 From: Safairette <71556532+Safairette@users.noreply.github.com> Date: Sat, 26 Oct 2024 14:30:52 +0300 Subject: [PATCH 5/6] Generics for contraband --- .../Contraband.xml | 167 +++++++++++------- 1 file changed, 106 insertions(+), 61 deletions(-) diff --git a/ModPatches/Vanilla Factions Expanded - Deserters/Patches/Vanilla Factions Expanded - Deserters/Contraband.xml b/ModPatches/Vanilla Factions Expanded - Deserters/Patches/Vanilla Factions Expanded - Deserters/Contraband.xml index 9c76cd29f7..f2a7387cc9 100644 --- a/ModPatches/Vanilla Factions Expanded - Deserters/Patches/Vanilla Factions Expanded - Deserters/Contraband.xml +++ b/ModPatches/Vanilla Factions Expanded - Deserters/Patches/Vanilla Factions Expanded - Deserters/Contraband.xml @@ -3,40 +3,79 @@ - - Defs/ThingDef[defName="Ammo_6x24mmCharged"] - -
  • - VFED_Imperial - 5 - false - 100 -
  • -
    + + + Defs/ThingDef[defName="Ammo_6x24mmCharged"] + +
  • + VFED_Imperial + 5 + false + 100 +
  • +
    +
    + + Defs/ThingDef[defName="Ammo_RifleCharged"] + +
  • + VFED_Imperial + 5 + false + 100 +
  • +
    +
    - - Defs/ThingDef[defName="Ammo_6x24mmCharged_AP"] - -
  • - VFED_Imperial - 5 - false - 100 -
  • -
    + + + Defs/ThingDef[defName="Ammo_6x24mmCharged_AP"] + +
  • + VFED_Imperial + 5 + false + 100 +
  • +
    +
    + + Defs/ThingDef[defName="Ammo_RifleCharged_AP"] + +
  • + VFED_Imperial + 5 + false + 100 +
  • +
    +
    - - Defs/ThingDef[defName="Ammo_6x24mmCharged_Ion"] - -
  • - VFED_Imperial - 5 - false - 100 -
  • -
    + + + Defs/ThingDef[defName="Ammo_6x24mmCharged_Ion"] + +
  • + VFED_Imperial + 5 + false + 100 +
  • +
    +
    + + Defs/ThingDef[defName="Ammo_RifleCharged_Ion"] + +
  • + VFED_Imperial + 5 + false + 100 +
  • +
    +
    @@ -57,40 +96,46 @@
    - - Defs/ThingDef[defName="Ammo_8x50mmCharged"] - -
  • - VFED_Imperial - 6 - false - 100 -
  • -
    + + + Defs/ThingDef[defName="Ammo_8x50mmCharged"] + +
  • + VFED_Imperial + 6 + false + 100 +
  • +
    +
    - - - Defs/ThingDef[defName="Ammo_8x50mmCharged_AP"] - -
  • - VFED_Imperial - 6 - false - 100 -
  • -
    +> + + + Defs/ThingDef[defName="Ammo_8x50mmCharged_AP"] + +
  • + VFED_Imperial + 6 + false + 100 +
  • +
    +
    - - Defs/ThingDef[defName="Ammo_8x50mmCharged_Ion"] - -
  • - VFED_Imperial - 6 - false - 100 -
  • -
    + + + Defs/ThingDef[defName="Ammo_8x50mmCharged_Ion"] + +
  • + VFED_Imperial + 6 + false + 100 +
  • +
    +
    From b3cabf2c2f110c8bf619be17e2327e8039d1505c Mon Sep 17 00:00:00 2001 From: Safairette <71556532+Safairette@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:41:24 +0300 Subject: [PATCH 6/6] Generify the ancients vault gen --- .../SymbolDefs.xml | 30 +++ .../CustomGenDefs_Vaults.xml | 216 +++++++++++++----- 2 files changed, 186 insertions(+), 60 deletions(-) diff --git a/ModPatches/Vanilla Factions Expanded - Ancients/Defs/Vanilla Factions Expanded - Ancients/SymbolDefs.xml b/ModPatches/Vanilla Factions Expanded - Ancients/Defs/Vanilla Factions Expanded - Ancients/SymbolDefs.xml index 496db68b9f..f8dc61224e 100644 --- a/ModPatches/Vanilla Factions Expanded - Ancients/Defs/Vanilla Factions Expanded - Ancients/SymbolDefs.xml +++ b/ModPatches/Vanilla Factions Expanded - Ancients/Defs/Vanilla Factions Expanded - Ancients/SymbolDefs.xml @@ -6,16 +6,31 @@ Ammo_556x45mmNATO_Incendiary + + Ammo_RifleIntermediate_Incendiary + Ammo_RifleIntermediate_Incendiary + + Ammo_12Gauge_Buck Ammo_12Gauge_Buck + + Ammo_Shotgun_Buck + Ammo_Shotgun_Buck + + Ammo_45ACP_AP Ammo_45ACP_AP + + Ammo_Pistol_AP + Ammo_Pistol_AP + + Ammo_762x51mmNATO_Incendiary Ammo_762x51mmNATO_Incendiary @@ -26,9 +41,24 @@ Ammo_762x54mmR_HE + + Ammo_Rifle_Incendiary + Ammo_Rifle_Incendiary + + + + Ammo_Rifle_HE + Ammo_Rifle_HE + + Ammo_6x24mmCharged Ammo_6x24mmCharged + + Ammo_RifleCharged + Ammo_RifleCharged + + \ No newline at end of file diff --git a/ModPatches/Vanilla Factions Expanded - Ancients/Patches/Vanilla Factions Expanded - Ancients/CustomGenDefs_Vaults.xml b/ModPatches/Vanilla Factions Expanded - Ancients/Patches/Vanilla Factions Expanded - Ancients/CustomGenDefs_Vaults.xml index e3a209ddf2..bca5d968a7 100644 --- a/ModPatches/Vanilla Factions Expanded - Ancients/Patches/Vanilla Factions Expanded - Ancients/CustomGenDefs_Vaults.xml +++ b/ModPatches/Vanilla Factions Expanded - Ancients/Patches/Vanilla Factions Expanded - Ancients/CustomGenDefs_Vaults.xml @@ -3,88 +3,184 @@ - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultAlpha"]/layouts/li[1]/li[66] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Gun_AssaultRifle,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Apparel_PowerArmor,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultAlpha"]/layouts/li[1]/li[66] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Gun_AssaultRifle,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Apparel_PowerArmor,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultAlpha"]/layouts/li[1]/li[66] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Gun_AssaultRifle,Gun_AssaultRifle,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Apparel_PowerArmor,Ammo_RifleIntermediate_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultBravo"]/layouts/li[1]/li[14] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Apparel_PowerArmor,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultBravo"]/layouts/li[1]/li[14] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Apparel_PowerArmor,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultBravo"]/layouts/li[1]/li[14] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_RifleIntermediate_Incendiary,Gun_AssaultRifle,Ammo_RifleIntermediate_Incendiary,Gun_AssaultRifle,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Apparel_PowerArmor,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultCharlie"]/layouts/li[1]/li[10] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Apparel_PowerArmor,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultCharlie"]/layouts/li[1]/li[10] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Apparel_PowerArmor,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultCharlie"]/layouts/li[1]/li[10] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_RifleIntermediate_Incendiary,Gun_AssaultRifle,Ammo_RifleIntermediate_Incendiary,Apparel_PowerArmor,Gun_AssaultRifle,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultDelta"]/layouts/li[1]/li[19] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Gun_AssaultRifle,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultDelta"]/layouts/li[1]/li[19] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Gun_AssaultRifle,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultDelta"]/layouts/li[1]/li[19] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Gun_AssaultRifle,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Gun_AssaultRifle,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultF"]/layouts/li[1]/li[35] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultF"]/layouts/li[1]/li[35] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Gun_AssaultRifle,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultF"]/layouts/li[1]/li[35] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_RifleIntermediate_Incendiary,Gun_AssaultRifle,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultG"]/layouts/li[1]/li[23] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,MealSurvivalPack,MealSurvivalPack,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_12Gauge_Buck,Gun_ChainShotgun,Ammo_12Gauge_Buck,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultG"]/layouts/li[1]/li[23] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,MealSurvivalPack,MealSurvivalPack,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Ammo_12Gauge_Buck,Gun_ChainShotgun,Ammo_12Gauge_Buck,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultG"]/layouts/li[1]/li[23] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,MealSurvivalPack,MealSurvivalPack,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Ammo_Shotgun_Buck,Gun_ChainShotgun,Ammo_Shotgun_Buck,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultH"]/layouts/li[1]/li[31] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_762x51mmNATO_Incendiary,Ammo_762x54mmR_HE,Ammo_762x54mmR_HE,Gun_LMG,Ammo_45ACP_AP,Gun_Minigun,Gun_Autopistol,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultH"]/layouts/li[1]/li[31] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_762x51mmNATO_Incendiary,Ammo_762x54mmR_HE,Ammo_762x54mmR_HE,Gun_LMG,Ammo_45ACP_AP,Gun_Minigun,Gun_Autopistol,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultH"]/layouts/li[1]/li[31] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_Rifle_Incendiary,Ammo_Rifle_HE,Ammo_Rifle_HE,Gun_LMG,Ammo_Pistol_AP,Gun_Minigun,Gun_Autopistol,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultH"]/layouts/li[1]/li[35] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,MealSurvivalPack,Ammo_762x51mmNATO_Incendiary,Ammo_762x51mmNATO_Incendiary,Ammo_762x51mmNATO_Incendiary,Ammo_762x51mmNATO_Incendiary,.,.,.,.,.,MealSurvivalPack,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_45ACP_AP,Ammo_45ACP_AP,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Apparel_PowerArmor,Gun_Autopistol,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultH"]/layouts/li[1]/li[35] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,MealSurvivalPack,Ammo_762x51mmNATO_Incendiary,Ammo_762x51mmNATO_Incendiary,Ammo_762x51mmNATO_Incendiary,Ammo_762x51mmNATO_Incendiary,.,.,.,.,.,MealSurvivalPack,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_45ACP_AP,Ammo_45ACP_AP,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Apparel_PowerArmor,Gun_Autopistol,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultH"]/layouts/li[1]/li[35] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,MealSurvivalPack,Ammo_Rifle_Incendiary,Ammo_Rifle_Incendiary,Ammo_Rifle_Incendiary,Ammo_Rifle_Incendiary,.,.,.,.,.,MealSurvivalPack,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_Pistol_AP,Ammo_Pistol_AP,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Apparel_PowerArmor,Gun_Autopistol,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultI"]/layouts/li[1]/li[19] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Gun_ChargeRifle,Ammo_6x24mmCharged,Ammo_6x24mmCharged,Gun_HeavySMG,Ammo_45ACP_AP,Ammo_45ACP_AP,Apparel_PowerArmorHelmet,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultI"]/layouts/li[1]/li[19] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,Gun_ChargeRifle,Ammo_6x24mmCharged,Ammo_6x24mmCharged,Gun_HeavySMG,Ammo_45ACP_AP,Ammo_45ACP_AP,Apparel_PowerArmorHelmet,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultI"]/layouts/li[1]/li[19] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,Gun_ChargeRifle,Ammo_RifleCharged,Ammo_RifleCharged,Gun_HeavySMG,Ammo_Pistol_AP,Ammo_Pistol_AP,Apparel_PowerArmorHelmet,Ammo_RifleIntermediate_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultJ"]/layouts/li[1]/li[35] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Gun_MachinePistol,Ammo_45ACP_AP,Apparel_PowerArmorHelmet,Ammo_45ACP_AP,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultJ"]/layouts/li[1]/li[35] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Gun_MachinePistol,Ammo_45ACP_AP,Apparel_PowerArmorHelmet,Ammo_45ACP_AP,Ammo_556x45mmNATO_Incendiary,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultJ"]/layouts/li[1]/li[35] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Gun_MachinePistol,Ammo_Pistol_AP,Apparel_PowerArmorHelmet,Ammo_Pistol_AP,Ammo_RifleIntermediate_Incendiary,Ammo_RifleIntermediate_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultJ"]/layouts/li[1]/li[36] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_762x54mmR_HE,Gun_LMG,Ammo_762x54mmR_HE,Apparel_PowerArmor,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultJ"]/layouts/li[1]/li[36] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_762x54mmR_HE,Gun_LMG,Ammo_762x54mmR_HE,Apparel_PowerArmor,Ammo_556x45mmNATO_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultJ"]/layouts/li[1]/li[36] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_Rifle_HE,Gun_LMG,Ammo_Rifle_HE,Apparel_PowerArmor,Ammo_RifleIntermediate_Incendiary,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    - - Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultJ"]/layouts/li[1]/li[36] - -
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Gun_MachinePistol,Ammo_45ACP_AP,Ammo_45ACP_AP,Ammo_762x54mmR_HE,Gun_LMG,Ammo_762x54mmR_HE,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • -
    + + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultJ"]/layouts/li[1]/li[36] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_556x45mmNATO_Incendiary,Gun_MachinePistol,Ammo_45ACP_AP,Ammo_45ACP_AP,Ammo_762x54mmR_HE,Gun_LMG,Ammo_762x54mmR_HE,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    + + Defs/KCSG.StructureLayoutDef[defName="VFEA_SealedVaultJ"]/layouts/li[1]/li[36] + +
  • .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Ammo_RifleIntermediate_Incendiary,Gun_MachinePistol,Ammo_Pistol_AP,Ammo_Pistol_AP,Ammo_Rifle_HE,Gun_LMG,Ammo_Rifle_HE,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
  • +
    +
    \ No newline at end of file