3Gtq`Lb*fC>;1}8^rAKbctpP%@R&ZL+#`nc
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
ACIA2c
diff --git a/Assemblies/CombatExtendedLoader.dll b/Assemblies/CombatExtendedLoader.dll
new file mode 100644
index 0000000000000000000000000000000000000000..225ee260879b2ecde093783ebb3c843b425053f3
GIT binary patch
literal 7168
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
R0PweBj~@gdwGUke{s*Wafhhn0
literal 0
HcmV?d00001
diff --git a/Source/CombatExtended/Loader/IModPart.cs b/Source/CombatExtended/Loader/IModPart.cs
new file mode 100644
index 0000000000..8e8f45580e
--- /dev/null
+++ b/Source/CombatExtended/Loader/IModPart.cs
@@ -0,0 +1,14 @@
+using System.Reflection;
+using RimWorld;
+using System.Collections.Generic;
+using Verse;
+using System;
+
+namespace CombatExtended.Loader
+{
+ public interface IModPart
+ {
+ public void PostLoad(ModContentPack content, ISettingsCE settings);
+ public Type GetSettingsType();
+ }
+}
diff --git a/Source/CombatExtended/Loader/ISettingsCE.cs b/Source/CombatExtended/Loader/ISettingsCE.cs
new file mode 100644
index 0000000000..2ce6b50033
--- /dev/null
+++ b/Source/CombatExtended/Loader/ISettingsCE.cs
@@ -0,0 +1,11 @@
+using RimWorld;
+using Verse;
+using UnityEngine;
+
+namespace CombatExtended.Loader
+{
+ public interface ISettingsCE
+ {
+ public void DoWindowContents(Listing_Standard list);
+ }
+}
From d3b3d3f3061ff05e7572c6d89020806cb3bb4922 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 00:41:31 -0700
Subject: [PATCH 03/35] Add script to find duplicate relative paths
---
DupeFinder.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
create mode 100644 DupeFinder.py
diff --git a/DupeFinder.py b/DupeFinder.py
new file mode 100644
index 0000000000..57f689ba1a
--- /dev/null
+++ b/DupeFinder.py
@@ -0,0 +1,48 @@
+from xml.dom.minidom import parse as XMLOpen
+from twisted.python.filepath import FilePath
+import sys
+err = "-c" not in sys.argv
+
+used = {}
+mods = set()
+ModPatches = FilePath("ModPatches")
+ec = 0
+
+def process(node):
+ global ec
+ mod = c.getAttribute("IfModActive")
+ if (mod, c.firstChild.data) in mods:
+ ec += 1
+ msg = f"Mod {mod} is listed in LoadFolders.xml twice, both pointing to {c.firstChild.data}"
+ if err:
+ raise RuntimeError(msg)
+ else:
+ print(msg)
+ mods.add((mod, c.firstChild.data))
+ root = FilePath(c.firstChild.data)
+ if not ModPatches in root.parents():
+ return
+ for fd in root.walk():
+ if fd.isdir():
+ continue
+ if not fd.basename().endswith(".xml"):
+ continue
+ relative = tuple(fd.segmentsFrom(root))
+ if relative in used:
+ msg = f"Mod {mod} is trying to use {relative}, but {used[relative]} already owns that path"
+ if err:
+ raise RuntimeError(msg)
+ else:
+ ec += 1
+ print(msg)
+ used[relative] = mod
+
+with XMLOpen("LoadFolders.xml") as x:
+ v1_5 = x.getElementsByTagName("v1.5")
+ for n in v1_5:
+ for c in n.getElementsByTagName("li"):
+ if c.getAttribute("IfModActive"):
+ process(c)
+
+
+raise SystemExit(ec)
From 21202f31ca349ea3d464ed1845342de1ea65a180 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 00:41:45 -0700
Subject: [PATCH 04/35] Update makefile to not require building the loader and
change the loader name
---
Makefile | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile b/Makefile
index d440b09473..9a4fc416fb 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
PUBLICIZER := /tmp/AssemblyPublicizer
-all: Assemblies/0CombatExtendedLoader.dll Assemblies/CombatExtended.dll CompatAssemblies AssembliesCompat $(PUBLICIZER)
+all: Assemblies/CombatExtended.dll CompatAssemblies AssembliesCompat $(PUBLICIZER)
$(PUBLICIZER):
git clone https://github.com/CombatExtended-Continued/AssemblyPublicizer --depth=1 $(PUBLICIZER)
@@ -12,10 +12,10 @@ $(PUBLICIZER):
AssembliesCompat: $(PUBLICIZER)
mkdir -p AssembliesCompat
-Assemblies/0CombatExtendedLoader.dll: Source/Loader/Loader.csproj $(wildcard Source/Loader/Loader/*.cs) $(PUBLICIZER)
- python3 Make.py --csproj Source/Loader/Loader.csproj --output Assemblies/0CombatExtendedLoader.dll --reference /tmp/rwreference --all-libs $(DOWNLOAD_LIBS)
+Assemblies/CombatExtendedLoader.dll: Source/Loader/Loader.csproj $(wildcard Source/Loader/Loader/*.cs) $(PUBLICIZER)
+ python3 Make.py --csproj Source/Loader/Loader.csproj --output Assemblies/CombatExtendedLoader.dll --reference /tmp/rwreference --all-libs $(DOWNLOAD_LIBS)
-Assemblies/CombatExtended.dll: Assemblies/0CombatExtendedLoader.dll Source/CombatExtended/CombatExtended.csproj $(wildcard Source/CombatExtended/*/*.cs) $(wildcard Source/CombatExtended/*/*/*.cs) $(PUBLICIZER)
+Assemblies/CombatExtended.dll: Source/CombatExtended/CombatExtended.csproj $(wildcard Source/CombatExtended/*/*.cs) $(wildcard Source/CombatExtended/*/*/*.cs) $(PUBLICIZER)
python3 Make.py --csproj Source/CombatExtended/CombatExtended.csproj --output Assemblies/CombatExtended.dll --reference /tmp/rwreference --all-libs $(DOWNLOAD_LIBS) --publicizer $(PUBLICIZER)
From 7c35397d1be8d43a26465da388f4f4ab4c3955a6 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 00:42:07 -0700
Subject: [PATCH 05/35] Add loadfolders entries for compat assemblies
---
LoadFolders.xml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/LoadFolders.xml b/LoadFolders.xml
index 504adff5f1..83a0d024f7 100644
--- a/LoadFolders.xml
+++ b/LoadFolders.xml
@@ -358,7 +358,6 @@
ModPatches/Rimmu-Nation - Weapons
ModPatches/RimNauts 2
ModPatches/RimSec-Security
- ModPatches/Rimsenal - Spacer Faction Pack
ModPatches/Rimsenal Xenotype Pack - Askbarn
ModPatches/RimTraits - General Traits
ModPatches/RimTraits - Medieval Talents
@@ -605,5 +604,8 @@
ModPatches/pphhyy's Lightless Empyrean
ModPatches/Vanilla Arsenal
ModPatches/Jin-Roh Kerberos Panzer Cop Armor
-
+ ModPatches/VehicleFramework
+ ModPatches/Multiplayer
+ ModPatches/SRTS
+
From d432f9e8183d4cf6ab453a3ed91526815c4aa4a9 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 00:42:24 -0700
Subject: [PATCH 06/35] Read destination of output assemblies from .csproj
files
they must be located under ModPatches
---
BuildCompat.py | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/BuildCompat.py b/BuildCompat.py
index e3470dd2ad..caf130e938 100644
--- a/BuildCompat.py
+++ b/BuildCompat.py
@@ -4,6 +4,7 @@
from subprocess import Popen
import re
import sys
+from xml.dom.minidom import parse as XMLOpen
tm = '-m' in sys.argv
@@ -37,8 +38,20 @@ def system(*cmd):
if tm and name not in sys.argv: continue
csproj = csproj.replace('\\', '/').split('/')
csproj = FilePath("Source").descendant(csproj)
- print(f"Building {name}")
output = FilePath("AssembliesCompat").child(name+".dll")
+ with XMLOpen(csproj.path) as cpath:
+ op = cpath.getElementsByTagName("OutputPath")
+ if op:
+ op = op[0].firstChild.data
+ if 'ModPatches' in op:
+ op = op.rsplit("..\\ModPatches", 1)[-1].replace('\\', '/').split('/')
+ if op:
+ od = FilePath("ModPatches").descendant(op)
+ if not od.exists():
+ od.makedirs()
+ output = od.child(name+".dll")
+
+ print(f"Building {name}")
system("python3", "Make.py", "--csproj", csproj.path, "--output", output.path, DOWNLOAD_LIBS, "--all-libs", "--publicizer", PUBLICIZER, "--", "-r:Assemblies/CombatExtended.dll")
for t in tasks:
From cc0073dc9f6ff65a04907834cc7740a1d14b13af Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 00:43:12 -0700
Subject: [PATCH 07/35] Remove references to loader, move output to ModPatches
---
Source/BetterTurretsCompat/BetterTurretsCompat.csproj | 10 ++--------
Source/CombatExtended/CombatExtended.csproj | 6 ------
Source/Loader/Loader.csproj | 2 +-
Source/MiscTurretsCompat/MiscTurretsCompat.csproj | 10 ++--------
Source/MultiplayerCompat/MultiplayerCompat.csproj | 10 ++--------
Source/SOS2Compat/SOS2Compat.csproj | 10 ++--------
Source/SRTSCompat/SRTSCompat.csproj | 10 ++--------
Source/VehiclesCompat/VehiclesCompat.csproj | 10 ++--------
8 files changed, 13 insertions(+), 55 deletions(-)
diff --git a/Source/BetterTurretsCompat/BetterTurretsCompat.csproj b/Source/BetterTurretsCompat/BetterTurretsCompat.csproj
index b37cab8275..21bb270f34 100644
--- a/Source/BetterTurretsCompat/BetterTurretsCompat.csproj
+++ b/Source/BetterTurretsCompat/BetterTurretsCompat.csproj
@@ -12,7 +12,7 @@
false
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\BetterTurrets\Assemblies\
portable
true
true
@@ -20,7 +20,7 @@
true
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\BetterTurrets\Assemblies\
true
none
false
@@ -34,12 +34,6 @@
-
-
- ..\..\Assemblies\0CombatExtendedLoader.dll
- False
-
-
False
diff --git a/Source/CombatExtended/CombatExtended.csproj b/Source/CombatExtended/CombatExtended.csproj
index 06d24c20c2..a64042ec2f 100644
--- a/Source/CombatExtended/CombatExtended.csproj
+++ b/Source/CombatExtended/CombatExtended.csproj
@@ -69,12 +69,6 @@
-
-
- ..\..\Assemblies\0CombatExtendedLoader.dll
- False
-
-
..\packages\Rimatomics-reference.dll
diff --git a/Source/Loader/Loader.csproj b/Source/Loader/Loader.csproj
index 5fe09601d5..0d1bf4fd3f 100644
--- a/Source/Loader/Loader.csproj
+++ b/Source/Loader/Loader.csproj
@@ -2,7 +2,7 @@
net472
- 0CombatExtendedLoader
+ CombatExtendedLoader
1.1.2.0
1.1.2.0
1.1.2
diff --git a/Source/MiscTurretsCompat/MiscTurretsCompat.csproj b/Source/MiscTurretsCompat/MiscTurretsCompat.csproj
index 12f309f64b..302cf63967 100644
--- a/Source/MiscTurretsCompat/MiscTurretsCompat.csproj
+++ b/Source/MiscTurretsCompat/MiscTurretsCompat.csproj
@@ -12,7 +12,7 @@
false
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\MiscTurrets\Assemblies\
portable
true
true
@@ -20,7 +20,7 @@
true
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\MiscTurrets\Assemblies\
true
none
false
@@ -39,12 +39,6 @@
False
-
-
- ..\..\Assemblies\0CombatExtendedLoader.dll
- False
-
-
..\packages\WeaponBase-reference.dll
diff --git a/Source/MultiplayerCompat/MultiplayerCompat.csproj b/Source/MultiplayerCompat/MultiplayerCompat.csproj
index c32381cb51..f26cc82d97 100644
--- a/Source/MultiplayerCompat/MultiplayerCompat.csproj
+++ b/Source/MultiplayerCompat/MultiplayerCompat.csproj
@@ -12,7 +12,7 @@
false
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\Multiplayer\Assemblies\
portable
true
true
@@ -20,7 +20,7 @@
true
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\Multiplayer\Assemblies\
true
none
false
@@ -34,12 +34,6 @@
-
-
- ..\..\Assemblies\0CombatExtendedLoader.dll
- False
-
-
False
diff --git a/Source/SOS2Compat/SOS2Compat.csproj b/Source/SOS2Compat/SOS2Compat.csproj
index 12ab57e780..42f86238ac 100644
--- a/Source/SOS2Compat/SOS2Compat.csproj
+++ b/Source/SOS2Compat/SOS2Compat.csproj
@@ -12,7 +12,7 @@
false
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\Save Our Ship 2\Assemblies
portable
true
true
@@ -20,7 +20,7 @@
true
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\Save Our Ship 2\Assemblies
true
none
false
@@ -35,12 +35,6 @@
False
-
-
- ..\..\Assemblies\0CombatExtendedLoader.dll
- False
-
-
..\packages\ShipsHaveInsides-reference.dll
diff --git a/Source/SRTSCompat/SRTSCompat.csproj b/Source/SRTSCompat/SRTSCompat.csproj
index 5abb8ba699..f712c546bf 100644
--- a/Source/SRTSCompat/SRTSCompat.csproj
+++ b/Source/SRTSCompat/SRTSCompat.csproj
@@ -12,7 +12,7 @@
false
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\SRTS\Assemblies\
portable
true
true
@@ -20,7 +20,7 @@
true
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\SRTS\Assemblies\
true
none
false
@@ -39,12 +39,6 @@
False
-
-
- ..\..\Assemblies\0CombatExtendedLoader.dll
- False
-
-
..\packages\SRTS-reference.dll
diff --git a/Source/VehiclesCompat/VehiclesCompat.csproj b/Source/VehiclesCompat/VehiclesCompat.csproj
index 79be0719b7..9145d8f0cf 100644
--- a/Source/VehiclesCompat/VehiclesCompat.csproj
+++ b/Source/VehiclesCompat/VehiclesCompat.csproj
@@ -12,7 +12,7 @@
false
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\VehicleFramework\Assemblies\
portable
true
true
@@ -20,7 +20,7 @@
true
- ..\..\AssembliesCompat\
+ ..\..\ModPatches\VehicleFramework\Assemblies\
true
none
false
@@ -39,12 +39,6 @@
False
-
-
- ..\..\Assemblies\0CombatExtendedLoader.dll
- False
-
-
..\packages\Vehicles-reference.dll
From 5224f600c5284f990b0de27ea6312d52a3f69324 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 00:44:17 -0700
Subject: [PATCH 08/35] Removed loader functionality from
CombatExtendedLoader.dll
---
Source/Loader/Loader/IModPart.cs | 15 ---
Source/Loader/Loader/ISettingsCE.cs | 11 --
Source/Loader/Loader/Loader.cs | 179 +++-------------------------
3 files changed, 14 insertions(+), 191 deletions(-)
delete mode 100644 Source/Loader/Loader/IModPart.cs
delete mode 100644 Source/Loader/Loader/ISettingsCE.cs
diff --git a/Source/Loader/Loader/IModPart.cs b/Source/Loader/Loader/IModPart.cs
deleted file mode 100644
index f35497645a..0000000000
--- a/Source/Loader/Loader/IModPart.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System.Reflection;
-using RimWorld;
-using System.Collections.Generic;
-using Verse;
-using System;
-
-namespace CombatExtended.Loader
-{
- public interface IModPart
- {
- public void PostLoad(ModContentPack content, ISettingsCE settings);
- public Type GetSettingsType();
- public IEnumerable GetCompatList();
- }
-}
diff --git a/Source/Loader/Loader/ISettingsCE.cs b/Source/Loader/Loader/ISettingsCE.cs
deleted file mode 100644
index 2ce6b50033..0000000000
--- a/Source/Loader/Loader/ISettingsCE.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using RimWorld;
-using Verse;
-using UnityEngine;
-
-namespace CombatExtended.Loader
-{
- public interface ISettingsCE
- {
- public void DoWindowContents(Listing_Standard list);
- }
-}
diff --git a/Source/Loader/Loader/Loader.cs b/Source/Loader/Loader/Loader.cs
index e9a088a2c5..789b1cfd1f 100644
--- a/Source/Loader/Loader/Loader.cs
+++ b/Source/Loader/Loader/Loader.cs
@@ -10,163 +10,28 @@
namespace CombatExtended.Loader
{
- public class Loader : Mod
+ /*
+ A compiled version of this class resides in our source tree. Anyone who downloads the
+ source tree and installs it uncompiled as a mod will get a warning that they are running
+ uncompiled. During the packaging process this file is removed. If CombatExtended.dll
+ exists in the Assemblies directory, we can assume we are running a local build and omit
+ the warning.
+
+ */
+ public class UncompiledWarning : Mod
{
- /*
- This class handles loading and initializing the different components of CombatExtended.
- If the main CombatExtended.dll is unavailable, it will load an outdated one which is
- sufficient to allow the game to reach the main menu. It will then display a warning to
- the user that they are running the uncompiled git sources rather than a real CombatExtend
- release.
-
- DLLs in the main CombatExtended/Assemblies directory are automatically loaded before any
- code here is run.
-
- DLLs in CombatExtended/AssembliesCore are loaded by Loader's constructor.
-
- After all core CombatExtended assemblies are loaded, all classes implementing
- `CombatExtended.Loader.IModPart` are instantiated, and their list of required Compat modules
- is queried. These compat modules are loaded (and *their* Compat list is queried) until all
- required modules are loaded.
-
- Then each IModPart's PostLoad method is called, with an ISettingsCE if desired (or null).
- */
- public static List settingList = new List();
- private static Loader instance = null;
- private Vector2 scrollPosition;
-
- private ModContentPack content;
-
- private Assembly _loadCompatAssembly(string name)
+ public UncompiledWarning(ModContentPack content) : base(content)
{
- DirectoryInfo locationInfo = new DirectoryInfo(content.RootDir).GetDirectories("AssembliesCompat").FirstOrFallback(null);
- if (locationInfo == null)
- {
- Log.Error("Combat Extended :: Cannot find compat assembly directory");
- }
- FileInfo file = locationInfo.GetFiles(name + ".dll").FirstOrFallback(null);
- if (file == null)
- {
- Log.Error("Combat Extended :: Cannot find compat assembly for " + name);
- }
- return _loadAssembly(file);
- }
-
- private Assembly _loadAssembly(FileInfo file)
- {
- Log.Message("Combat Extended :: Loading " + file.FullName);
- byte[] rawAssembly = File.ReadAllBytes(file.FullName);
-
- Assembly assembly;
-
- FileInfo pdbFile = new FileInfo(Path.Combine(file.DirectoryName, Path.GetFileNameWithoutExtension(file.FullName)) + ".pdb");
- if (pdbFile.Exists)
- {
- assembly = AppDomain.CurrentDomain.Load(rawAssembly, File.ReadAllBytes(pdbFile.FullName));
- }
- else
- {
- assembly = AppDomain.CurrentDomain.Load(rawAssembly);
- }
- if (assembly != null)
- {
- content.assemblies.loadedAssemblies.Add(assembly);
- }
-
- return assembly;
- }
-
- public Loader(ModContentPack content) : base(content)
- {
- Loader.instance = this;
- this.content = content;
- bool found = false;
- Dictionary assemblies = new Dictionary();
-
foreach (Assembly assembly in content.assemblies.loadedAssemblies)
{
string name = assembly.GetName().Name;
- assemblies[name] = assembly;
if (name == "CombatExtended")
{
- found = true;
- }
- }
-
-
- DirectoryInfo locationInfo = new DirectoryInfo(content.RootDir).GetDirectories("AssembliesCore").FirstOrFallback(null);
- if (locationInfo != null)
- {
- foreach (FileInfo fileInfo in locationInfo.GetFiles())
- {
- if (fileInfo.Name.EndsWith(".dll"))
- {
- Assembly assembly = _loadAssembly(fileInfo);
- assemblies[assembly.GetName().Name] = assembly;
- }
+ return;
}
}
-
- Queue toProcess = new Queue(content.assemblies.loadedAssemblies);
- List modParts = new List();
- HashSet compatParts = new HashSet();
-
- while (toProcess.Any())
- {
- Assembly assembly = toProcess.Dequeue();
-
- foreach (Type t in assembly.GetTypes().Where(x => typeof(IModPart).IsAssignableFrom(x) && !x.IsAbstract))
- {
- IModPart imp = ((IModPart)t.GetConstructor(new Type[] { }).Invoke(new object[] { }));
- modParts.Add(imp);
- foreach (string compatPart in imp.GetCompatList())
- {
- if (!compatParts.Contains(compatPart))
- {
- compatParts.Add(compatPart);
- Assembly compatAssembly = _loadCompatAssembly(compatPart);
- toProcess.Enqueue(compatAssembly);
- }
- }
- }
-
- }
-
-
- foreach (IModPart modPart in modParts)
- {
- Type settingsType = modPart.GetSettingsType();
- ISettingsCE settings = null;
- if (settingsType != null)
- {
- if (typeof(ModSettings).IsAssignableFrom(settingsType))
- {
- settings = (ISettingsCE)typeof(Loader).GetMethod(nameof(Loader.GetSettings)).MakeGenericMethod(settingsType).Invoke(instance, null);
- }
- else
- {
- settings = (ISettingsCE)settingsType.GetConstructor(new Type[] { }).Invoke(new object[] { });
- }
- settingList.Add(settings);
- }
-
- modPart.PostLoad(content, settings);
-
- }
-
-
- if (!found)
- {
- Log.Error("Combat Extended :: Running uncompiled");
- LongEventHandler.QueueLongEvent(ShowUncompiledBuildWarning, "CE_LongEvent_ShowUncompiledBuildWarning", false, null);
- _loadAssembly(new DirectoryInfo(content.RootDir)
- .GetDirectories("Source")
- .FirstOrFallback(null)?
- .GetDirectories("packages")
- .FirstOrFallback(null)?.GetFiles("CombatExtended.dll")
- .FirstOrFallback(null));
- }
-
+ Log.Error("Combat Extended :: Running uncompiled");
+ LongEventHandler.QueueLongEvent(ShowUncompiledBuildWarning, "CE_LongEvent_ShowUncompiledBuildWarning", false, null);
}
public override string SettingsCategory()
@@ -174,23 +39,7 @@ public override string SettingsCategory()
return "Combat Extended";
}
- public override void DoSettingsWindowContents(Rect inRect)
- {
- Rect inner = inRect.ContractedBy(20f);
- inner.height = 800f;
- inner.x += 10f;
- Widgets.BeginScrollView(inRect, ref this.scrollPosition, inner, true);
- Listing_Standard list = new Listing_Standard();
- list.ColumnWidth = (inner.width - 17) / 2; // Subtract 17 for gap between columns
- list.Begin(inner);
-
- foreach (ISettingsCE settings in settingList)
- {
- settings.DoWindowContents(list);
- }
- list.End();
- Widgets.EndScrollView();
- }
+
//Unused method is only here for reference, the repository assembly uses it to warn users to get a compiled build.
private static void ShowUncompiledBuildWarning()
From 894259d3122afabb18cfddda7ceefb7998f89405 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 00:47:35 -0700
Subject: [PATCH 09/35] Migrate mod part init and settings management into
Controller
---
.../CombatExtended/Controller.cs | 87 +++++++++++++++----
1 file changed, 72 insertions(+), 15 deletions(-)
diff --git a/Source/CombatExtended/CombatExtended/Controller.cs b/Source/CombatExtended/CombatExtended/Controller.cs
index 797207f934..5aa5c8b94c 100644
--- a/Source/CombatExtended/CombatExtended/Controller.cs
+++ b/Source/CombatExtended/CombatExtended/Controller.cs
@@ -5,43 +5,95 @@
using RimWorld;
using Verse;
using UnityEngine;
+using System.Reflection;
+using System.IO;
using CombatExtended.HarmonyCE;
using CombatExtended.Compatibility;
using CombatExtended.Loader;
namespace CombatExtended
{
- public class Controller : IModPart
+ /*
+ This class handles initializing the different components of CombatExtended. The LoadFolders
+ system is responsible for loading the assemblies, this gives an opportunity to run any
+ post-load sanity checking, and is responsible for rendering any sub-mod settings as required.
+ */
+ public class Controller : Mod
{
+ public static List settingList = new List();
public static Settings settings;
- public static Controller instant;
+ public static Controller instance;
public static ModContentPack content;
private static Patches patches;
+ private Vector2 scrollPosition;
- public Type GetSettingsType()
+ public override void DoSettingsWindowContents(Rect inRect)
{
- return typeof(Settings);
+ Rect inner = inRect.ContractedBy(20f);
+ inner.height = 800f;
+ inner.x += 10f;
+ Widgets.BeginScrollView(inRect, ref this.scrollPosition, inner, true);
+ Listing_Standard list = new Listing_Standard();
+ list.ColumnWidth = (inner.width - 17) / 2; // Subtract 17 for gap between columns
+ list.Begin(inner);
+
+ foreach (ISettingsCE settings in settingList)
+ {
+ settings.DoWindowContents(list);
+ }
+ list.End();
+ Widgets.EndScrollView();
}
- public Controller()
+ public Controller(ModContentPack content) : base(content)
{
patches = new Patches();
+ Controller.instance = this;
+ Controller.content = content;
+ Controller.settings = GetSettings();
+ settingList.Add(Controller.settings);
+ PostLoad();
}
- public IEnumerable GetCompatList()
- {
- return patches.GetCompatList();
- }
-
- public void PostLoad(ModContentPack content, ISettingsCE settings)
+ public void PostLoad()
{
- Controller.instant = this;
- Controller.content = content;
- Controller.settings = (Settings)settings;
-
// Apply Harmony patches
HarmonyBase.InitPatches();
+ Queue toProcess = new Queue(content.assemblies.loadedAssemblies);
+ List modParts = new List();
+ while (toProcess.Any())
+ {
+ Assembly assembly = toProcess.Dequeue();
+
+ foreach (Type t in assembly.GetTypes().Where(x => typeof(IModPart).IsAssignableFrom(x) && !x.IsAbstract))
+ {
+ IModPart imp = ((IModPart)t.GetConstructor(new Type[] { }).Invoke(new object[] { }));
+ modParts.Add(imp);
+ }
+ }
+ foreach (IModPart modPart in modParts)
+ {
+ Log.Message("CE: Loading Mod Part");
+ Type settingsType = modPart.GetSettingsType();
+ ISettingsCE settings = null;
+ if (settingsType != null)
+ {
+ if (typeof(ModSettings).IsAssignableFrom(settingsType))
+ {
+ settings = (ISettingsCE)typeof(Controller).GetMethod(nameof(Controller.GetSettings)).MakeGenericMethod(settingsType).Invoke(instance, null);
+ }
+ else
+ {
+ settings = (ISettingsCE)settingsType.GetConstructor(new Type[] { }).Invoke(new object[] { });
+ }
+ settingList.Add(settings);
+ }
+
+ modPart.PostLoad(content, settings);
+
+ }
+
// Initialize loadout generator
LongEventHandler.QueueLongEvent(LoadoutPropertiesExtension.Reset, "CE_LongEvent_LoadoutProperties", false, null);
@@ -66,6 +118,11 @@ public void PostLoad(ModContentPack content, ISettingsCE settings)
}
+ public override string SettingsCategory()
+ {
+ return "Combat Extended";
+ }
+
private static void DoTutorialPopup()
{
var enableAction = new Action(() =>
From fa2850dcc50b852aa5a211bedff19643b0d12057 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 00:48:43 -0700
Subject: [PATCH 10/35] Remove GetCompatList from IPatch
---
.../CombatExtended/Compatibility/BetterTurrets.cs | 7 -------
Source/CombatExtended/Compatibility/EDShields.cs | 5 -----
Source/CombatExtended/Compatibility/IPatch.cs | 1 -
Source/CombatExtended/Compatibility/MiscTurrets.cs | 8 --------
Source/CombatExtended/Compatibility/Multiplayer.cs | 5 -----
Source/CombatExtended/Compatibility/Patches.cs | 14 --------------
.../Compatibility/ProjectRimFactory.cs | 5 -----
Source/CombatExtended/Compatibility/Rimatomics.cs | 5 -----
Source/CombatExtended/Compatibility/SOS2.cs | 5 -----
Source/CombatExtended/Compatibility/SRTS.cs | 5 -----
.../Compatibility/VanillaExpandedFramework.cs | 5 -----
.../VanillaFurnitureExpandedSecurity.cs | 5 -----
.../Compatibility/VanillaPsycastExpanded.cs | 4 ----
Source/CombatExtended/Compatibility/Vehicles.cs | 5 -----
14 files changed, 79 deletions(-)
diff --git a/Source/CombatExtended/Compatibility/BetterTurrets.cs b/Source/CombatExtended/Compatibility/BetterTurrets.cs
index f21073d1e0..dc4fee1210 100644
--- a/Source/CombatExtended/Compatibility/BetterTurrets.cs
+++ b/Source/CombatExtended/Compatibility/BetterTurrets.cs
@@ -21,12 +21,5 @@ public void Install()
{
Log.Message("Combat Extended :: Installing Better Turrets");
}
- public IEnumerable GetCompatList()
- {
- yield return "BetterTurretsCompat";
- }
-
-
-
}
}
diff --git a/Source/CombatExtended/Compatibility/EDShields.cs b/Source/CombatExtended/Compatibility/EDShields.cs
index c317515e2d..7eba51dc33 100644
--- a/Source/CombatExtended/Compatibility/EDShields.cs
+++ b/Source/CombatExtended/Compatibility/EDShields.cs
@@ -40,11 +40,6 @@ public void Install()
HitSoundDef = (SoundDef)t.GetField("HitSoundDef", BindingFlags.Static | BindingFlags.Public).GetValue(null);
}
-
- public IEnumerable GetCompatList()
- {
- yield break;
- }
public static bool CheckForCollisionBetweenCallback(ProjectileCE projectile, Vector3 from, Vector3 to)
{
/* Check if an active shield can block this projectile
diff --git a/Source/CombatExtended/Compatibility/IPatch.cs b/Source/CombatExtended/Compatibility/IPatch.cs
index 9fc08acc3a..f2d06220ce 100644
--- a/Source/CombatExtended/Compatibility/IPatch.cs
+++ b/Source/CombatExtended/Compatibility/IPatch.cs
@@ -5,6 +5,5 @@ public interface IPatch
{
public bool CanInstall();
public void Install();
- public IEnumerable GetCompatList();
}
}
diff --git a/Source/CombatExtended/Compatibility/MiscTurrets.cs b/Source/CombatExtended/Compatibility/MiscTurrets.cs
index cfa9743afd..a2f1afb484 100644
--- a/Source/CombatExtended/Compatibility/MiscTurrets.cs
+++ b/Source/CombatExtended/Compatibility/MiscTurrets.cs
@@ -21,13 +21,5 @@ public void Install()
{
Log.Message("Combat Extended :: Installing Misc Turrets");
}
-
- public IEnumerable GetCompatList()
- {
- yield return "MiscTurretsCompat";
- }
-
-
-
}
}
diff --git a/Source/CombatExtended/Compatibility/Multiplayer.cs b/Source/CombatExtended/Compatibility/Multiplayer.cs
index c4d4c05e7f..ad8ae5ce9b 100644
--- a/Source/CombatExtended/Compatibility/Multiplayer.cs
+++ b/Source/CombatExtended/Compatibility/Multiplayer.cs
@@ -23,11 +23,6 @@ public void Install()
isMultiplayerActive = true;
}
- public IEnumerable GetCompatList()
- {
- yield return "MultiplayerCompat";
- }
-
public static bool InMultiplayer
{
get
diff --git a/Source/CombatExtended/Compatibility/Patches.cs b/Source/CombatExtended/Compatibility/Patches.cs
index db520ac3a6..58cf23acbb 100644
--- a/Source/CombatExtended/Compatibility/Patches.cs
+++ b/Source/CombatExtended/Compatibility/Patches.cs
@@ -82,20 +82,6 @@ public static IEnumerable GetUsedAmmo()
}
}
- public IEnumerable GetCompatList()
- {
- foreach (IPatch patch in patches)
- {
- if (patch.CanInstall())
- {
- foreach (string s in patch.GetCompatList())
- {
- yield return s;
- }
- }
- }
- }
-
private static bool _gcbfactive = false;
public static void RegisterCollisionBodyFactorCallback(Func> f)
diff --git a/Source/CombatExtended/Compatibility/ProjectRimFactory.cs b/Source/CombatExtended/Compatibility/ProjectRimFactory.cs
index 110922d2e0..42e4d5c064 100644
--- a/Source/CombatExtended/Compatibility/ProjectRimFactory.cs
+++ b/Source/CombatExtended/Compatibility/ProjectRimFactory.cs
@@ -16,11 +16,6 @@ public void Install()
{
Building_FuelingMachine.RegisterRefuelable(typeof(Building_TurretGunCE), FindCompAmmoUser, TestAmmo, ReloadAction);
}
- public IEnumerable GetCompatList()
- {
- yield break;
- }
-
private static int TestAmmo(object compObject, Thing ammo)
{
var comp = compObject as CompAmmoUser;
diff --git a/Source/CombatExtended/Compatibility/Rimatomics.cs b/Source/CombatExtended/Compatibility/Rimatomics.cs
index d894714815..41b688629e 100644
--- a/Source/CombatExtended/Compatibility/Rimatomics.cs
+++ b/Source/CombatExtended/Compatibility/Rimatomics.cs
@@ -35,11 +35,6 @@ public void Install()
BlockerRegistry.RegisterShieldZonesCallback(Rimatomics.ShieldZonesCallback);
}
- public IEnumerable GetCompatList()
- {
- yield break;
- }
-
public static bool CheckForCollisionBetweenCallback(ProjectileCE projectile, Vector3 from, Vector3 to)
{
Map map = projectile.Map;
diff --git a/Source/CombatExtended/Compatibility/SOS2.cs b/Source/CombatExtended/Compatibility/SOS2.cs
index f61ebd4c6b..82a334d212 100644
--- a/Source/CombatExtended/Compatibility/SOS2.cs
+++ b/Source/CombatExtended/Compatibility/SOS2.cs
@@ -20,10 +20,5 @@ public void Install()
{
Log.Message("Combat Extended :: Installing SOS2");
}
-
- public IEnumerable GetCompatList()
- {
- yield return "SOS2Compat";
- }
}
}
diff --git a/Source/CombatExtended/Compatibility/SRTS.cs b/Source/CombatExtended/Compatibility/SRTS.cs
index 065e2239bd..ae593dff6a 100644
--- a/Source/CombatExtended/Compatibility/SRTS.cs
+++ b/Source/CombatExtended/Compatibility/SRTS.cs
@@ -22,11 +22,6 @@ public bool CanInstall()
}
return true;
}
- public IEnumerable GetCompatList()
- {
- yield return "SRTSCompat";
- }
-
public void Install()
{
Log.Message("Combat Extended :: Installing SRTS Expanded");
diff --git a/Source/CombatExtended/Compatibility/VanillaExpandedFramework.cs b/Source/CombatExtended/Compatibility/VanillaExpandedFramework.cs
index a3d939db83..e6cc8b18c9 100644
--- a/Source/CombatExtended/Compatibility/VanillaExpandedFramework.cs
+++ b/Source/CombatExtended/Compatibility/VanillaExpandedFramework.cs
@@ -18,11 +18,6 @@ bool IPatch.CanInstall()
return ModLister.HasActiveModWithName(ModName);
}
- IEnumerable IPatch.GetCompatList()
- {
- yield break;
- }
-
void IPatch.Install()
{
BlockerRegistry.RegisterCheckForCollisionCallback(CheckIntercept);
diff --git a/Source/CombatExtended/Compatibility/VanillaFurnitureExpandedSecurity.cs b/Source/CombatExtended/Compatibility/VanillaFurnitureExpandedSecurity.cs
index 3852571d47..41d6bdd24a 100644
--- a/Source/CombatExtended/Compatibility/VanillaFurnitureExpandedSecurity.cs
+++ b/Source/CombatExtended/Compatibility/VanillaFurnitureExpandedSecurity.cs
@@ -44,11 +44,6 @@ public void Install()
BlockerRegistry.RegisterImpactSomethingCallback(ImpactSomething);
}
- public IEnumerable GetCompatList()
- {
- yield break;
- }
-
private static bool CheckCollision(ProjectileCE projectile, IntVec3 cell, Thing launcher)
{
if (projectile.def.projectile.flyOverhead)
diff --git a/Source/CombatExtended/Compatibility/VanillaPsycastExpanded.cs b/Source/CombatExtended/Compatibility/VanillaPsycastExpanded.cs
index e0ff231ef2..e041a9ff69 100644
--- a/Source/CombatExtended/Compatibility/VanillaPsycastExpanded.cs
+++ b/Source/CombatExtended/Compatibility/VanillaPsycastExpanded.cs
@@ -20,10 +20,6 @@ public bool CanInstall()
return ModLister.HasActiveModWithName(ModName);
}
- public IEnumerable GetCompatList()
- {
- yield break;
- }
public void Install()
{
diff --git a/Source/CombatExtended/Compatibility/Vehicles.cs b/Source/CombatExtended/Compatibility/Vehicles.cs
index 59efb1b7ff..9330f8a77d 100644
--- a/Source/CombatExtended/Compatibility/Vehicles.cs
+++ b/Source/CombatExtended/Compatibility/Vehicles.cs
@@ -23,11 +23,6 @@ public bool CanInstall()
}
return true;
}
- public IEnumerable GetCompatList()
- {
- yield return "VehiclesCompat";
- }
-
public void Install()
{
From e29cf60438971b5db19752dae2e205b487256708 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 01:16:15 -0700
Subject: [PATCH 11/35] Support ' escapes pointing to directories with '
in the name
---
DupeFinder.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/DupeFinder.py b/DupeFinder.py
index 57f689ba1a..6b871d378b 100644
--- a/DupeFinder.py
+++ b/DupeFinder.py
@@ -11,15 +11,16 @@
def process(node):
global ec
mod = c.getAttribute("IfModActive")
- if (mod, c.firstChild.data) in mods:
+ dp = c.firstChild.data.replace(''', "'")
+ if (mod, dp) in mods:
ec += 1
msg = f"Mod {mod} is listed in LoadFolders.xml twice, both pointing to {c.firstChild.data}"
if err:
raise RuntimeError(msg)
else:
print(msg)
- mods.add((mod, c.firstChild.data))
- root = FilePath(c.firstChild.data)
+ mods.add((mod, dp))
+ root = FilePath(dp)
if not ModPatches in root.parents():
return
for fd in root.walk():
From 409b9ee6233aaca827cfd8dba453867d7fc75748 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 01:33:05 -0700
Subject: [PATCH 12/35] remove old comment
---
Source/Loader/Loader/Loader.cs | 3 ---
1 file changed, 3 deletions(-)
diff --git a/Source/Loader/Loader/Loader.cs b/Source/Loader/Loader/Loader.cs
index 789b1cfd1f..f9fada4428 100644
--- a/Source/Loader/Loader/Loader.cs
+++ b/Source/Loader/Loader/Loader.cs
@@ -39,9 +39,6 @@ public override string SettingsCategory()
return "Combat Extended";
}
-
-
- //Unused method is only here for reference, the repository assembly uses it to warn users to get a compiled build.
private static void ShowUncompiledBuildWarning()
{
Log.Error("You are running CE Uncompiled. See https://github.com/CombatExtended-Continued/CombatExtended#development-version for details");
From 3af2ecc560dc9447d150eba867e31d8c48c9c916 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 01:41:08 -0700
Subject: [PATCH 13/35] remove tabs
---
Source/CombatExtended/CombatExtended/Controller.cs | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/Source/CombatExtended/CombatExtended/Controller.cs b/Source/CombatExtended/CombatExtended/Controller.cs
index 5aa5c8b94c..ab2295ccef 100644
--- a/Source/CombatExtended/CombatExtended/Controller.cs
+++ b/Source/CombatExtended/CombatExtended/Controller.cs
@@ -74,7 +74,7 @@ public void PostLoad()
}
foreach (IModPart modPart in modParts)
{
- Log.Message("CE: Loading Mod Part");
+ Log.Message("CE: Loading Mod Part");
Type settingsType = modPart.GetSettingsType();
ISettingsCE settings = null;
if (settingsType != null)
@@ -118,10 +118,10 @@ public void PostLoad()
}
- public override string SettingsCategory()
- {
- return "Combat Extended";
- }
+ public override string SettingsCategory()
+ {
+ return "Combat Extended";
+ }
private static void DoTutorialPopup()
{
From e59de80d25428c12cab49f6112fe97ae8593d814 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 01:57:16 -0700
Subject: [PATCH 14/35] Remove duplicate lines
---
LoadFolders.xml | 2 --
1 file changed, 2 deletions(-)
diff --git a/LoadFolders.xml b/LoadFolders.xml
index d675e41cfa..44f2362b6c 100644
--- a/LoadFolders.xml
+++ b/LoadFolders.xml
@@ -604,8 +604,6 @@
ModPatches/pphhyy Expanded Scythers
ModPatches/pphhyy Sanguinary Animals
ModPatches/pphhyy's Lightless Empyrean
- ModPatches/Vanilla Arsenal
- ModPatches/Jin-Roh Kerberos Panzer Cop Armor
ModPatches/VehicleFramework
ModPatches/Multiplayer
ModPatches/SRTS
From 225572fb3b40c75dafc1a3e78d0ab8fd6ce08bd2 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 19:18:06 -0700
Subject: [PATCH 15/35] Consider all targets under the content root instead of
ModPatches only
---
DupeFinder.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/DupeFinder.py b/DupeFinder.py
index 6b871d378b..5368665cf2 100644
--- a/DupeFinder.py
+++ b/DupeFinder.py
@@ -5,7 +5,7 @@
used = {}
mods = set()
-ModPatches = FilePath("ModPatches")
+ContentRoot = FilePath(".")
ec = 0
def process(node):
@@ -21,7 +21,7 @@ def process(node):
print(msg)
mods.add((mod, dp))
root = FilePath(dp)
- if not ModPatches in root.parents():
+ if not ContentRoot in root.parents():
return
for fd in root.walk():
if fd.isdir():
From 8622f0dc119e017238cb9a15c4601a823ea8a472 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 19:17:51 -0700
Subject: [PATCH 16/35] Fall back to CE's package id if there is no IfModActive
attribute
---
DupeFinder.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/DupeFinder.py b/DupeFinder.py
index 5368665cf2..6f72188e8c 100644
--- a/DupeFinder.py
+++ b/DupeFinder.py
@@ -11,6 +11,8 @@
def process(node):
global ec
mod = c.getAttribute("IfModActive")
+ if not mod:
+ mod = "CETeam.CombatExtended"
dp = c.firstChild.data.replace(''', "'")
if (mod, dp) in mods:
ec += 1
From dbbec9b79c5e0f71c8aa46225dfd9d7d729d81f7 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 19:17:16 -0700
Subject: [PATCH 17/35] Fix typo in SRTS id
---
LoadFolders.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/LoadFolders.xml b/LoadFolders.xml
index 44f2362b6c..14518719fd 100644
--- a/LoadFolders.xml
+++ b/LoadFolders.xml
@@ -606,6 +606,6 @@
ModPatches/pphhyy's Lightless Empyrean
ModPatches/VehicleFramework
ModPatches/Multiplayer
- ModPatches/SRTS
+ ModPatches/SRTS
From cc42d067fb9b88ad5cc96898eda3c38195edc4db Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 19:58:59 -0700
Subject: [PATCH 18/35] Give the path of conflicting files relative to the
content root
instead of package id of the offending files.
---
DupeFinder.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/DupeFinder.py b/DupeFinder.py
index 6f72188e8c..aad7dcaeb5 100644
--- a/DupeFinder.py
+++ b/DupeFinder.py
@@ -32,13 +32,13 @@ def process(node):
continue
relative = tuple(fd.segmentsFrom(root))
if relative in used:
- msg = f"Mod {mod} is trying to use {relative}, but {used[relative]} already owns that path"
+ msg = f"""Relative paths collision found: {str.join("/", fd.segmentsFrom(ContentRoot))} overrides {str.join("/", used[relative].segmentsFrom(ContentRoot))}"""
if err:
raise RuntimeError(msg)
else:
ec += 1
print(msg)
- used[relative] = mod
+ used[relative] = fd
with XMLOpen("LoadFolders.xml") as x:
v1_5 = x.getElementsByTagName("v1.5")
From 0ef38615f3527370855f242ebeaff6b9742011cf Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 20:09:13 -0700
Subject: [PATCH 19/35] Force all paths to be relative
---
DupeFinder.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/DupeFinder.py b/DupeFinder.py
index aad7dcaeb5..07fa8cf38d 100644
--- a/DupeFinder.py
+++ b/DupeFinder.py
@@ -22,7 +22,7 @@ def process(node):
else:
print(msg)
mods.add((mod, dp))
- root = FilePath(dp)
+ root = FilePath("./" + dp)
if not ContentRoot in root.parents():
return
for fd in root.walk():
From ff1adffd07d8ab898f37a20ade3690fc9fd74124 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 3 Aug 2024 20:09:22 -0700
Subject: [PATCH 20/35] Process all nodes, even if they don't have a mod id
---
DupeFinder.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/DupeFinder.py b/DupeFinder.py
index 07fa8cf38d..6fa58f875f 100644
--- a/DupeFinder.py
+++ b/DupeFinder.py
@@ -44,8 +44,7 @@ def process(node):
v1_5 = x.getElementsByTagName("v1.5")
for n in v1_5:
for c in n.getElementsByTagName("li"):
- if c.getAttribute("IfModActive"):
- process(c)
+ process(c)
raise SystemExit(ec)
From 01742475e15f7043d551a63904a141eaa34da389 Mon Sep 17 00:00:00 2001
From: Merwini <86023141+Merwini@users.noreply.github.com>
Date: Fri, 16 Aug 2024 18:55:50 -0400
Subject: [PATCH 21/35] Changed Faction PawnGroupMakers selectionWeights to
account for the massive combatPower difference between the mechs and human
pawns, to maintain a good spawn ratio.
Changed RN2_RedStarBomb damageDef armorCategory from sharp to blunt, to prevent unintended behavior for Deflection
---
.../Defs/Ammo_Gruppa_Krovi.xml | 171 ++++----
.../Patches/Faction_Gruppa_Krovi.xml | 133 ++++++
.../Patches/Mech_Weapons_Gruppa_Krovi.xml | 407 +++++++++---------
.../Patches/Mechs_Gruppa_Krovi.xml | 349 +++++++++++++++
.../Patches/PawnKinds_Gruppa_Krovi.xml | 184 ++++----
.../Patches/Races_Gruppa_Krovi.xml | 331 --------------
6 files changed, 872 insertions(+), 703 deletions(-)
create mode 100644 ModPatches/RH2 Faction - Gruppa Krovi/Patches/Faction_Gruppa_Krovi.xml
create mode 100644 ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
delete mode 100644 ModPatches/RH2 Faction - Gruppa Krovi/Patches/Races_Gruppa_Krovi.xml
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Defs/Ammo_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Defs/Ammo_Gruppa_Krovi.xml
index 4ad081a5b0..6af5b2be8c 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Defs/Ammo_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Defs/Ammo_Gruppa_Krovi.xml
@@ -1,87 +1,94 @@
-
-
- AmmoSet_RNTeslaCharge
-
-
- Bullet_CE_RNBullet_Tesla_Charge
-
-
-
-
- Bullet_CE_RNBullet_Tesla_Charge
-
-
- Things/Projectile/Tesla_Arc
- Graphic_Single
- TransparentPostLight
- 4
-
-
- EMP
- 2.0
- 25
- false
- Artillery_HitThickRoof
- RN_Tesla_Explode
- 93
- 3.2
-
-
-
- Smoke
- (-0.3,0,0.35)
- (0.3,0,0.35)
- 90
- 1~1.1
- (0,235,31,255)
- (0,235,31,255)
-
-
-
-
-
-
-
- AmmoSet_RNPlasmaCharge
-
-
- Bullet_CE_RNBullet_RedStar_Plasma
-
-
-
-
- Bullet_CE_RNBullet_RedStar_Plasma
-
-
- Things/Projectile/RedStar_Plasma
- Graphic_Single
- TransparentPostLight
- 4
-
-
- RN2_RedStarBomb
- 1.95
- 30
- false
- Artillery_HitThickRoof
- RN_RedStar_Explode
- 76
- 3
-
-
-
- Smoke
- (-0.3,0,0.35)
- (0.3,0,0.35)
- 90
- 1~1.1
- (0,235,31,255)
- (0,235,31,255)
-
-
-
+
+
+ AmmoSet_RNTeslaCharge
+
+
+ Bullet_CE_RNBullet_Tesla_Charge
+
+
+
+
+ Bullet_CE_RNBullet_Tesla_Charge
+
+
+ Things/Projectile/Tesla_Arc
+ Graphic_Single
+ TransparentPostLight
+ 4
+
+
+ Electrical
+ 2.0
+ 25
+ false
+ Artillery_HitThickRoof
+ RN_Tesla_Explode
+ 93
+ 3.2
+ true
+ 0
+ 0
+ 0
+
+
+
+ Smoke
+ (-0.3,0,0.35)
+ (0.3,0,0.35)
+ 90
+ 1~1.1
+ (0,235,31,255)
+ (0,235,31,255)
+
+
+
+
+
+
+
+ AmmoSet_RNPlasmaCharge
+
+
+ Bullet_CE_RNBullet_RedStar_Plasma
+
+
+
+
+ Bullet_CE_RNBullet_RedStar_Plasma
+
+
+ Things/Projectile/RedStar_Plasma
+ Graphic_Single
+ TransparentPostLight
+ 4
+
+
+ RN2_RedStarBomb
+ 1.95
+ 30
+ false
+ Artillery_HitThickRoof
+ RN_RedStar_Explode
+ 76
+ 3
+ 0
+ 0
+ 0
+
+
+
+ Smoke
+ (-0.3,0,0.35)
+ (0.3,0,0.35)
+ 90
+ 1~1.1
+ (0,235,31,255)
+ (0,235,31,255)
+
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Faction_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Faction_Gruppa_Krovi.xml
new file mode 100644
index 0000000000..bca7a2a202
--- /dev/null
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Faction_Gruppa_Krovi.xml
@@ -0,0 +1,133 @@
+ļ»æ
+
+
+
+
+ Defs/FactionDef[@Name="RH2_FactionBase_GruppaKrovi"]/maxPawnCostPerTotalPointsCurve
+
+
+
+ (0,35)
+ (70, 50)
+ (700, 100)
+ (1300, 150)
+ (2000, 450)
+ (4200, 1400)
+ (100000, 10000)
+
+
+
+
+
+
+ Defs/FactionDef[@Name="RH2_FactionBase_GruppaKrovi"]/apparelStuffFilter/thingDefs/li[text()="Hyperweave"]
+
+
+
+
+
+ Defs/FactionDef[@Name="RH2_FactionBase_GruppaKrovi"]/pawnGroupMakers
+
+
+
+
+ Combat
+ 100
+
+ 300
+ 30
+ 210
+ 150
+ 1
+ 9
+ 7
+ 150
+ 30
+
+
+
+
+ Combat
+ 20
+
+ 300
+ 90
+ 150
+ 20
+ 2
+ 8
+ 6
+
+
+
+
+ Combat
+ 15
+
+ Siege
+
+
+ 300
+ 60
+ 60
+ 30
+ 1
+ 8
+ 6
+
+
+
+
+ Peaceful
+
+ 300
+ 300
+ 90
+ 60
+ 90
+ 8
+ 6
+ 1
+
+
+
+
+ Trader
+
+ 1
+
+
+ 5
+ 10
+ 5
+ 1
+
+
+ 300
+ 60
+ 8
+ 6
+ 1
+
+
+
+
+ Settlement
+
+ 300
+ 570
+ 240
+ 150
+ 90
+ 90
+ 150
+ 8
+ 6
+ 2
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml
index 9958553ad8..3e2c0eb1ab 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml
@@ -1,46 +1,48 @@
-
-
- Defs/ThingDef[
- defName="RNGun_KV2_Howitzer" or
- defName="RNGun_Tesla_Coil" or
- defName="RNGun_RedStar_PlasmaCannon"
- ]/weaponTags
-
- NoSwitch
-
-
+
+
+ Defs/ThingDef[
+ defName="RNGun_KV2_Howitzer" or
+ defName="RNGun_Tesla_Coil" or
+ defName="RNGun_RedStar_PlasmaCannon"
+ ]/weaponTags
+
+
+ NoSwitch
+
+
-
-
- RN2Gun_KV2_DSHKMachineGun
-
- 1
- 0.2
- 1.36
- 20.00
-
-
- CombatExtended.Verb_ShootCE
- true
- Bullet_127x108mm_FMJ
- 55
- 10
- RNShot_DSHK
- GunTail_Heavy
- 9
- 2.5
- HeadAttackTool
- true
- 12
-
-
+
+
+ RN2Gun_KV2_DSHKMachineGun
+
+ 1
+ 0.2
+ 1.36
+ 20.00
+
+
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_127x108mm_FMJ
+ 55
+
+ 10
+ RNShot_DSHK
+ GunTail_Heavy
+ 9
+ 2.5
+ HeadAttackTool
+ true
+ 12
+
+
-
-
-
+
+
-
-
-
- RNGun_KV2_Howitzer
-
-
- 50.00
- 20.00
- 0.75
- 0.10
- 0.5
- 2.55
-
-
- 3.24
- CombatExtended.Verb_ShootCE
- True
- Bullet_120mmCannonShell_HE
- 4.3
- 125
- RN_152mmHowitzer_Shot
- GunTail_Heavy
- 6
- false
- false
-
- true
-
- 16
-
-
- 1
- 8.4
- AmmoSet_120mmCannonShell
-
-
-
-
- Defs/ThingDef[defName="RNGun_KV2_Howitzer"]/tools
-
-
-
-
-
- Blunt
-
- 45
- 2.6
- 10.5
- Barrel
-
-
-
-
-
-
-
- RNGun_Tesla_Coil
-
- 50.00
- 20.00
- 1.59
- 0.15
- 1.0
- 0.35
-
-
- 0.0
- CombatExtended.Verb_ShootCE
- True
- Bullet_CE_RNBullet_Tesla_Charge
- 2.5
- 62
- RN_Tesla_Shot
- GunTail_Heavy
- 6
- false
- false
-
- false
-
- 16
-
-
- 1
- 4.15
- AmmoSet_RNTeslaCharge
-
-
-
-
- Defs/ThingDef[defName="RNBullet_Tesla_Charge"]
-
-
-
-
-
- RNGun_RedStar_PlasmaCannon
-
- 50.00
- 20.00
- 1.59
- 0.15
- 1.0
- 0.45
-
-
- 1.36
- CombatExtended.Verb_ShootCE
- True
- Bullet_CE_RNBullet_RedStar_Plasma
- 3.15
- 66
- 27
- RN_RedStar_Shot
- GunTail_Heavy
- 6
- false
- 2
- false
-
- false
-
- 16
-
-
- 2
- 5.1
- AmmoSet_RNPlasmaCharge
-
-
- AimedShot
- FALSE
-
-
-
-
- Defs/ThingDef[defName="RNBullet_RedStar_Plasma"]
-
-
-
- Defs/ThingDef[
- defName="RNGun_Tesla_Coil" or
- defName="RNGun_RedStar_PlasmaCannon"]/tools
-
-
-
-
-
- Blunt
-
- 25
- 2.0
- 7
- Barrel
-
-
-
-
-
+
+
+
+ RNGun_KV2_Howitzer
+
+
+ 50.00
+ 20.00
+ 0.75
+ 0.10
+ 0.5
+ 2.55
+
+
+ 3.24
+ CombatExtended.Verb_ShootCE
+ True
+ Bullet_120mmCannonShell_HE
+ 4.3
+ 125
+ RN_152mmHowitzer_Shot
+ GunTail_Heavy
+ 6
+ false
+ false
+
+ true
+
+ 16
+
+
+ 1
+ 8.4
+ AmmoSet_120mmCannonShell
+
+
+
+
+ Defs/ThingDef[defName="RNGun_KV2_Howitzer"]/tools
+
+
+
+
+
+ Blunt
+
+ 45
+ 2.6
+ 10.5
+ Barrel
+
+
+
+
+
+
+
+ RNGun_Tesla_Coil
+
+ 50.00
+ 20.00
+ 1.59
+ 0.15
+ 1.0
+ 0.35
+
+
+ 0.0
+ CombatExtended.Verb_ShootCE
+ True
+ Bullet_CE_RNBullet_Tesla_Charge
+ 2.5
+ 62
+ RN_Tesla_Shot
+ GunTail_Heavy
+ 6
+ false
+ false
+
+ false
+
+ 16
+
+
+ 1
+ 4.15
+ AmmoSet_RNTeslaCharge
+
+
+
+
+ Defs/ThingDef[defName="RNBullet_Tesla_Charge"]
+
+
+
+
+
+ RNGun_RedStar_PlasmaCannon
+
+ 50.00
+ 20.00
+ 1.59
+ 0.15
+ 1.0
+ 0.45
+
+
+ 1.36
+ CombatExtended.Verb_ShootCE
+ True
+ Bullet_CE_RNBullet_RedStar_Plasma
+ 3.15
+ 66
+ 27
+ RN_RedStar_Shot
+ GunTail_Heavy
+ 6
+ false
+ 2
+ false
+
+ false
+
+ 16
+
+
+ 2
+ 5.1
+ AmmoSet_RNPlasmaCharge
+
+
+ AimedShot
+ FALSE
+
+
+
+
+ Defs/ThingDef[defName="RNBullet_RedStar_Plasma"]
+
+
+
+
+ Defs/ThingDef[
+ defName="RNGun_Tesla_Coil" or
+ defName="RNGun_RedStar_PlasmaCannon"]/tools
+
+
+
+
+
+
+ Blunt
+
+ 25
+ 2.0
+ 7
+ Barrel
+
+
+
+
+
+
+ Defs/DamageDef[defName="RN2_RedStarBomb"]/armorCategory
+
+ Blunt
+
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
new file mode 100644
index 0000000000..628c738b28
--- /dev/null
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
@@ -0,0 +1,349 @@
+
+
+
+
+ Defs/ThingDef[
+ defName="RH2Mech_KV2Walker" or
+ defName="RH2Mech_TeslaDrone" or
+ defName="RH2Mech_PlasmaDrone"
+ ]
+
+
+
+ Humanoid
+
+
+
+
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases
+
+ 125
+ 125
+ 1.0
+ 1.0
+ 0.25
+ 500
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases/ArmorRating_Blunt
+
+ 75
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases/ArmorRating_Sharp
+
+ 30
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/comps
+
+
+ 2500
+ false
+ 0.5
+ true
+
+ 5
+
+ 200
+ 250
+ 15
+ 37
+
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]
+
+
+
+
+ false
+ 0.25
+
+ SightSensor
+
+
+
+ false
+ 0.25
+
+ SightSensor
+
+
+
+ false
+ 0.25
+
+ HearingSensor
+
+
+
+ false
+ 0.25
+
+ HearingSensor
+
+
+
+ false
+ .6
+
+ MechanicalLeg
+
+
+
+ false
+ .5
+
+ MechanicalLeg
+
+
+
+
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/comps/li[@Class="CompProperties_TurretGun" and turretDef="RNGun_KV2_KrohaLauncher"]
+
+
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/tools
+
+
+
+
+
+ Blunt
+
+ 85
+ 3
+ FrontLeftLeg
+ true
+
+
+
+
+ Blunt
+
+ 85
+ 3
+ FrontRightLeg
+ true
+
+
+
+
+
+
+ Defs/PawnKindDef[defName="RH2Mech_KV2Walker"]
+
+
+
+ 10
+ 20
+
+ GrenadeHE
+
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/race/baseHealthScale
+
+ 8
+
+
+
+
+ Defs/PawnKindDef[defName="RH2Mech_KV2Walker"]/combatPower
+
+ 1400
+
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases
+
+ 80
+ 20
+ 1.0
+ 1.0
+ 0.25
+ 300
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases/ArmorRating_Blunt
+
+ 50
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases/ArmorRating_Sharp
+
+ 20
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/comps
+
+
+ 1500
+ false
+ 0.5
+ true
+
+ 3
+
+ 140
+ 150
+ 10
+ 25
+
+
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/race/baseHealthScale
+
+ 4
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]
+
+
+
+
+ false
+ 0.1
+
+ SightSensor
+
+
+
+ false
+ 0.1
+
+ SightSensor
+
+
+
+ false
+ 0.1
+
+ HearingSensor
+
+
+
+ false
+ 0.1
+
+ HearingSensor
+
+
+
+ false
+ 1.5
+
+ MechanicalShoulder
+
+
+
+ false
+ 1.5
+
+ MechanicalShoulder
+
+
+
+
+
+
+
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/tools
+
+
+
+
+
+ Blunt
+
+ 22
+ 2
+ LeftHand
+ true
+
+
+
+
+ Blunt
+
+ 25
+ 2
+ RightHand
+ true
+ true
+
+
+
+
+
+
+ Defs/PawnKindDef[defName="RH2Mech_TeslaDrone"]
+
+
+
+ 20
+ 30
+
+
+
+
+
+
+ Defs/PawnKindDef[defName="RH2Mech_TeslaDrone"]/combatPower
+
+ 400
+
+
+
+
+ Defs/PawnKindDef[defName="RH2Mech_PlasmaDrone"]
+
+
+
+ 20
+ 25
+
+
+
+
+
+
+ Defs/PawnKindDef[defName="RH2Mech_PlasmaDrone"]/combatPower
+
+ 450
+
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml
index 5ba15bcff2..15904468e6 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml
@@ -1,98 +1,98 @@
-
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_Base"]
-
-
-
- 4
- 6
-
-
-
-
-
-
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_IntermediateBase"]
-
-
-
- 4
- 6
-
-
-
- 0.15
-
- 10
- 100
-
-
- GrenadeSmoke
-
-
- 0
- 1
-
-
-
- 0.075
-
- 50
- 200
-
-
- CE_FlareLauncher
-
-
- 2
- 4
-
-
-
-
-
-
+
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_Base"]
+
+
+
+ 4
+ 6
+
+
+
+
-
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_SpecialBase"]
-
-
-
- 4
- 6
-
-
-
- 0.125
-
- 10
- 100
-
-
- GrenadeDestructive
-
-
- 2
- 3
-
-
-
-
-
-
-
-
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_BossBase"]
-
-
-
- 4
- 6
-
-
-
-
+
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_IntermediateBase"]
+
+
+
+ 4
+ 6
+
+
+
+ 0.15
+
+ 10
+ 100
+
+
+ GrenadeSmoke
+
+
+ 0
+ 1
+
+
+
+ 0.075
+
+ 50
+ 200
+
+
+ CE_FlareLauncher
+
+
+ 2
+ 4
+
+
+
+
+
+
+
+
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_SpecialBase"]
+
+
+
+ 4
+ 6
+
+
+
+ 0.125
+
+ 10
+ 100
+
+
+ GrenadeDestructive
+
+
+ 2
+ 3
+
+
+
+
+
+
+
+
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_BossBase"]
+
+
+
+ 4
+ 6
+
+
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Races_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Races_Gruppa_Krovi.xml
deleted file mode 100644
index 5f751fa5ee..0000000000
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Races_Gruppa_Krovi.xml
+++ /dev/null
@@ -1,331 +0,0 @@
-
-
-
-
- Defs/ThingDef[
- defName="RH2Mech_KV2Walker" or
- defName="RH2Mech_TeslaDrone" or
- defName="RH2Mech_PlasmaDrone"
- ]
-
-
- Humanoid
-
-
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases
-
- 125
- 125
- 1.0
- 1.0
- 0.25
- 500
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases/ArmorRating_Blunt
-
- 75
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases/ArmorRating_Sharp
-
- 30
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/comps
-
-
- 2500
- false
- 0.5
- true
-
- 5
-
- 200
- 250
- 15
- 37
-
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]
-
-
-
-
- false
- 0.25
-
- SightSensor
-
-
-
- false
- 0.25
-
- SightSensor
-
-
-
- false
- 0.25
-
- HearingSensor
-
-
-
- false
- 0.25
-
- HearingSensor
-
-
-
- false
- .6
-
- MechanicalLeg
-
-
-
- false
- .5
-
- MechanicalLeg
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/comps/li[@Class="CompProperties_TurretGun" and turretDef="RNGun_KV2_KrohaLauncher"]
-
-
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/tools
-
-
-
-
-
- Blunt
-
- 85
- 3
- FrontLeftLeg
- true
-
-
-
-
- Blunt
-
- 85
- 3
- FrontRightLeg
- true
-
-
-
-
-
-
- Defs/PawnKindDef[defName="RH2Mech_KV2Walker"]
-
-
-
- 10
- 20
-
- GrenadeHE
-
-
-
-
-
- Defs/PawnKindDef[defName="RH2Mech_KV2Walker"]/combatPower
-
- 800
-
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases
-
- 80
- 20
- 1.0
- 1.0
- 0.25
- 300
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases/ArmorRating_Blunt
-
- 50
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases/ArmorRating_Sharp
-
- 20
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/comps
-
-
- 1500
- false
- 0.5
- true
-
- 3
-
- 140
- 150
- 10
- 25
-
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]
-
-
-
-
- false
- 0.1
-
- SightSensor
-
-
-
- false
- 0.1
-
- SightSensor
-
-
-
- false
- 0.1
-
- HearingSensor
-
-
-
- false
- 0.1
-
- HearingSensor
-
-
-
- false
- 1.5
-
- MechanicalShoulder
-
-
-
- false
- 1.5
-
- MechanicalShoulder
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/tools
-
-
-
-
-
- Blunt
-
- 22
- 2
- LeftHand
- true
-
-
-
-
- Blunt
-
- 25
- 2
- RightHand
- true
- true
-
-
-
-
-
-
- Defs/PawnKindDef[defName="RH2Mech_TeslaDrone"]
-
-
-
- 20
- 30
-
-
-
-
-
-
- Defs/PawnKindDef[defName="RH2Mech_TeslaDrone"]/combatPower
-
- 300
-
-
-
-
- Defs/PawnKindDef[defName="RH2Mech_PlasmaDrone"]
-
-
-
- 20
- 25
-
-
-
-
-
-
- Defs/PawnKindDef[defName="RH2Mech_PlasmaDrone"]/combatPower
-
- 350
-
-
-
\ No newline at end of file
From b4e4db352447ab778c402f853c6a40927ac24541 Mon Sep 17 00:00:00 2001
From: n7huntsman
Date: Fri, 16 Aug 2024 20:54:12 -0400
Subject: [PATCH 22/35] Housekeeping
---
LoadFolders.xml | 2 +-
.../Defs/Ammo_Gruppa_Krovi.xml | 170 ++---
.../Patches/Apparel_Gruppa_Krovi.xml | 4 +-
.../Patches/Faction_Gruppa_Krovi.xml | 246 +++----
.../Patches/Mech_Weapons_Gruppa_Krovi.xml | 396 ++++++-----
.../Patches/Mechs_Gruppa_Krovi.xml | 647 +++++++++---------
.../Patches/PawnKinds_Gruppa_Krovi.xml | 180 ++---
.../Patches/Weapons_Gruppa_Krovi.xml | 8 +-
SupportedThirdPartyMods.md | 1 +
9 files changed, 826 insertions(+), 828 deletions(-)
diff --git a/LoadFolders.xml b/LoadFolders.xml
index 6f3a8ddf09..7289dd4f68 100644
--- a/LoadFolders.xml
+++ b/LoadFolders.xml
@@ -325,10 +325,10 @@
ModPatches/Revia Race ā biotech
ModPatches/RH2 DOOM
ModPatches/RH2 Faction - Bounty Hunters
+ ModPatches/RH2 Faction - Gruppa Krovi
ModPatches/RH2 Faction - Task Force 141
ModPatches/RH2 Faction - The Rangers
ModPatches/RH2 Faction - Utilitarian
- ModPatches/RH2 Faction - Gruppa Krovi
ModPatches/RH2 Faction - VOID
ModPatches/RH2 Metal Gear Solid
ModPatches/RH2 Rimmu-NationĀ² - Clothing
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Defs/Ammo_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Defs/Ammo_Gruppa_Krovi.xml
index 6af5b2be8c..acf2a00756 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Defs/Ammo_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Defs/Ammo_Gruppa_Krovi.xml
@@ -1,94 +1,94 @@
-
-
- AmmoSet_RNTeslaCharge
-
-
- Bullet_CE_RNBullet_Tesla_Charge
-
-
+
+
+ AmmoSet_RNTeslaCharge
+
+
+ Bullet_CE_RNBullet_Tesla_Charge
+
+
-
- Bullet_CE_RNBullet_Tesla_Charge
-
-
- Things/Projectile/Tesla_Arc
- Graphic_Single
- TransparentPostLight
- 4
-
-
- Electrical
- 2.0
- 25
- false
- Artillery_HitThickRoof
- RN_Tesla_Explode
- 93
- 3.2
- true
- 0
- 0
- 0
-
-
-
- Smoke
- (-0.3,0,0.35)
- (0.3,0,0.35)
- 90
- 1~1.1
- (0,235,31,255)
- (0,235,31,255)
-
-
-
+
+ Bullet_CE_RNBullet_Tesla_Charge
+
+
+ Things/Projectile/Tesla_Arc
+ Graphic_Single
+ TransparentPostLight
+ 4
+
+
+ Electrical
+ 2.0
+ 25
+ false
+ Artillery_HitThickRoof
+ RN_Tesla_Explode
+ 93
+ 3.2
+ true
+ 0
+ 0
+ 0
+
+
+
+ Smoke
+ (-0.3,0,0.35)
+ (0.3,0,0.35)
+ 90
+ 1~1.1
+ (0,235,31,255)
+ (0,235,31,255)
+
+
+
-
-
- AmmoSet_RNPlasmaCharge
-
-
- Bullet_CE_RNBullet_RedStar_Plasma
-
-
+
+
+ AmmoSet_RNPlasmaCharge
+
+
+ Bullet_CE_RNBullet_RedStar_Plasma
+
+
-
- Bullet_CE_RNBullet_RedStar_Plasma
-
-
- Things/Projectile/RedStar_Plasma
- Graphic_Single
- TransparentPostLight
- 4
-
-
- RN2_RedStarBomb
- 1.95
- 30
- false
- Artillery_HitThickRoof
- RN_RedStar_Explode
- 76
- 3
- 0
- 0
- 0
-
-
-
- Smoke
- (-0.3,0,0.35)
- (0.3,0,0.35)
- 90
- 1~1.1
- (0,235,31,255)
- (0,235,31,255)
-
-
-
+
+ Bullet_CE_RNBullet_RedStar_Plasma
+
+
+ Things/Projectile/RedStar_Plasma
+ Graphic_Single
+ TransparentPostLight
+ 4
+
+
+ RN2_RedStarBomb
+ 1.95
+ 30
+ false
+ Artillery_HitThickRoof
+ RN_RedStar_Explode
+ 76
+ 3
+ 0
+ 0
+ 0
+
+
+
+ Smoke
+ (-0.3,0,0.35)
+ (0.3,0,0.35)
+ 90
+ 1~1.1
+ (0,235,31,255)
+ (0,235,31,255)
+
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
index 32b5c66d4d..1fc6084ac1 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
@@ -6,7 +6,7 @@
Defs/ThingDef[
defName="RNApparel_EyePros_EdgeTactical" or
defName="RNApparel_EyePros_GucciAviatorGlasses"
- ]/apparel/layers
+ ]/apparel/layers
StrappedHead
@@ -19,7 +19,7 @@
defName="RNApparel_EyePros_EdgeTactical" or
defName="RNApparel_EyePros_GucciAviatorGlasses" or
defName="RNApparel_Flatcap"
- ]/statBases
+ ]/statBases
2
0.1
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Faction_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Faction_Gruppa_Krovi.xml
index bca7a2a202..39ed4b2b4d 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Faction_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Faction_Gruppa_Krovi.xml
@@ -1,133 +1,133 @@
ļ»æ
-
-
- Defs/FactionDef[@Name="RH2_FactionBase_GruppaKrovi"]/maxPawnCostPerTotalPointsCurve
-
-
-
- (0,35)
- (70, 50)
- (700, 100)
- (1300, 150)
- (2000, 450)
- (4200, 1400)
- (100000, 10000)
-
-
-
-
+
+
+ Defs/FactionDef[@Name="RH2_FactionBase_GruppaKrovi"]/maxPawnCostPerTotalPointsCurve
+
+
+
+ (0,35)
+ (70, 50)
+ (700, 100)
+ (1300, 150)
+ (2000, 450)
+ (4200, 1400)
+ (100000, 10000)
+
+
+
+
-
- Defs/FactionDef[@Name="RH2_FactionBase_GruppaKrovi"]/apparelStuffFilter/thingDefs/li[text()="Hyperweave"]
-
+
+ Defs/FactionDef[@Name="RH2_FactionBase_GruppaKrovi"]/apparelStuffFilter/thingDefs/li[text()="Hyperweave"]
+
-
-
-
- Defs/FactionDef[@Name="RH2_FactionBase_GruppaKrovi"]/pawnGroupMakers
-
-
-
-
- Combat
- 100
-
- 300
- 30
- 210
- 150
- 1
- 9
- 7
- 150
- 30
-
-
-
-
- Combat
- 20
-
- 300
- 90
- 150
- 20
- 2
- 8
- 6
-
-
-
-
- Combat
- 15
-
- Siege
-
-
- 300
- 60
- 60
- 30
- 1
- 8
- 6
-
-
+
+
+
+ Defs/FactionDef[@Name="RH2_FactionBase_GruppaKrovi"]/pawnGroupMakers
+
+
+
+
+ Combat
+ 100
+
+ 300
+ 30
+ 210
+ 150
+ 1
+ 9
+ 7
+ 150
+ 30
+
+
+
+
+ Combat
+ 20
+
+ 300
+ 90
+ 150
+ 20
+ 2
+ 8
+ 6
+
+
+
+
+ Combat
+ 15
+
+ Siege
+
+
+ 300
+ 60
+ 60
+ 30
+ 1
+ 8
+ 6
+
+
-
- Peaceful
-
- 300
- 300
- 90
- 60
- 90
- 8
- 6
- 1
-
-
+
+ Peaceful
+
+ 300
+ 300
+ 90
+ 60
+ 90
+ 8
+ 6
+ 1
+
+
-
- Trader
-
- 1
-
-
- 5
- 10
- 5
- 1
-
-
- 300
- 60
- 8
- 6
- 1
-
-
+
+ Trader
+
+ 1
+
+
+ 5
+ 10
+ 5
+ 1
+
+
+ 300
+ 60
+ 8
+ 6
+ 1
+
+
-
- Settlement
-
- 300
- 570
- 240
- 150
- 90
- 90
- 150
- 8
- 6
- 2
-
-
-
-
-
+
+ Settlement
+
+ 300
+ 570
+ 240
+ 150
+ 90
+ 90
+ 150
+ 8
+ 6
+ 2
+
+
+
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml
index 3e2c0eb1ab..394d032262 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml
@@ -1,48 +1,46 @@
-
-
- Defs/ThingDef[
- defName="RNGun_KV2_Howitzer" or
- defName="RNGun_Tesla_Coil" or
- defName="RNGun_RedStar_PlasmaCannon"
- ]/weaponTags
-
-
- NoSwitch
-
-
+
+ Defs/ThingDef[
+ defName="RNGun_KV2_Howitzer" or
+ defName="RNGun_Tesla_Coil" or
+ defName="RNGun_RedStar_PlasmaCannon"
+ ]/weaponTags
+
+ NoSwitch
+
+
-
-
- RN2Gun_KV2_DSHKMachineGun
-
- 1
- 0.2
- 1.36
- 20.00
-
-
- CombatExtended.Verb_ShootCE
- true
- Bullet_127x108mm_FMJ
- 55
-
- 10
- RNShot_DSHK
- GunTail_Heavy
- 9
- 2.5
- HeadAttackTool
- true
- 12
-
-
+
+
+ RN2Gun_KV2_DSHKMachineGun
+
+ 1
+ 0.2
+ 1.36
+ 20.00
+
+
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_127x108mm_FMJ
+ 55
+
+ 10
+ RNShot_DSHK
+ GunTail_Heavy
+ 9
+ 2.5
+ HeadAttackTool
+ true
+ 12
+
+
-
-
-
+
+
-
-
- RNGun_KV2_Howitzer
-
-
- 50.00
- 20.00
- 0.75
- 0.10
- 0.5
- 2.55
-
-
- 3.24
- CombatExtended.Verb_ShootCE
- True
- Bullet_120mmCannonShell_HE
- 4.3
- 125
- RN_152mmHowitzer_Shot
- GunTail_Heavy
- 6
- false
- false
-
- true
-
- 16
-
-
- 1
- 8.4
- AmmoSet_120mmCannonShell
-
-
+
+
+ RNGun_KV2_Howitzer
+
+
+ 50.00
+ 20.00
+ 0.75
+ 0.10
+ 0.5
+ 2.55
+
+
+ 3.24
+ CombatExtended.Verb_ShootCE
+ True
+ Bullet_120mmCannonShell_HE
+ 4.3
+ 125
+ RN_152mmHowitzer_Shot
+ GunTail_Heavy
+ 6
+ false
+ false
+
+ true
+
+ 16
+
+
+ 1
+ 8.4
+ AmmoSet_120mmCannonShell
+
+
-
- Defs/ThingDef[defName="RNGun_KV2_Howitzer"]/tools
-
-
-
-
-
- Blunt
-
- 45
- 2.6
- 10.5
- Barrel
-
-
-
-
+
+ Defs/ThingDef[defName="RNGun_KV2_Howitzer"]/tools
+
+
+
+
+
+ Blunt
+
+ 45
+ 2.6
+ 10.5
+ Barrel
+
+
+
+
-
-
- RNGun_Tesla_Coil
-
- 50.00
- 20.00
- 1.59
- 0.15
- 1.0
- 0.35
-
-
- 0.0
- CombatExtended.Verb_ShootCE
- True
- Bullet_CE_RNBullet_Tesla_Charge
- 2.5
- 62
- RN_Tesla_Shot
- GunTail_Heavy
- 6
- false
- false
-
- false
-
- 16
-
-
- 1
- 4.15
- AmmoSet_RNTeslaCharge
-
-
+
+
+ RNGun_Tesla_Coil
+
+ 50.00
+ 20.00
+ 1.59
+ 0.15
+ 1.0
+ 0.35
+
+
+ 0.0
+ CombatExtended.Verb_ShootCE
+ True
+ Bullet_CE_RNBullet_Tesla_Charge
+ 2.5
+ 62
+ RN_Tesla_Shot
+ GunTail_Heavy
+ 6
+ false
+ false
+
+ false
+
+ 16
+
+
+ 1
+ 4.15
+ AmmoSet_RNTeslaCharge
+
+
-
- Defs/ThingDef[defName="RNBullet_Tesla_Charge"]
-
+
+ Defs/ThingDef[defName="RNBullet_Tesla_Charge"]
+
-
-
- RNGun_RedStar_PlasmaCannon
-
- 50.00
- 20.00
- 1.59
- 0.15
- 1.0
- 0.45
-
-
- 1.36
- CombatExtended.Verb_ShootCE
- True
- Bullet_CE_RNBullet_RedStar_Plasma
- 3.15
- 66
- 27
- RN_RedStar_Shot
- GunTail_Heavy
- 6
- false
- 2
- false
-
- false
-
- 16
-
-
- 2
- 5.1
- AmmoSet_RNPlasmaCharge
-
-
- AimedShot
- FALSE
-
-
+
+
+ RNGun_RedStar_PlasmaCannon
+
+ 50.00
+ 20.00
+ 1.59
+ 0.15
+ 1.0
+ 0.45
+
+
+ 1.36
+ CombatExtended.Verb_ShootCE
+ True
+ Bullet_CE_RNBullet_RedStar_Plasma
+ 3.15
+ 66
+ 27
+ RN_RedStar_Shot
+ GunTail_Heavy
+ 6
+ false
+ 2
+ false
+
+ false
+
+ 16
+
+
+ 2
+ 5.1
+ AmmoSet_RNPlasmaCharge
+
+
+ AimedShot
+ FALSE
+
+
-
- Defs/ThingDef[defName="RNBullet_RedStar_Plasma"]
-
+
+ Defs/ThingDef[defName="RNBullet_RedStar_Plasma"]
+
-
-
- Defs/ThingDef[
- defName="RNGun_Tesla_Coil" or
- defName="RNGun_RedStar_PlasmaCannon"]/tools
-
-
-
-
-
-
- Blunt
-
- 25
- 2.0
- 7
- Barrel
-
-
-
-
+
+
+ Defs/ThingDef[
+ defName="RNGun_Tesla_Coil" or
+ defName="RNGun_RedStar_PlasmaCannon"]/tools
+
+
+
+
+
+
+ Blunt
+
+ 25
+ 2.0
+ 7
+ Barrel
+
+
+
+
-
- Defs/DamageDef[defName="RN2_RedStarBomb"]/armorCategory
-
- Blunt
-
-
+
+ Defs/DamageDef[defName="RN2_RedStarBomb"]/armorCategory
+
+ Blunt
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
index 628c738b28..4511cef338 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
@@ -1,349 +1,348 @@
-
-
- Defs/ThingDef[
- defName="RH2Mech_KV2Walker" or
- defName="RH2Mech_TeslaDrone" or
- defName="RH2Mech_PlasmaDrone"
- ]
-
-
-
- Humanoid
-
-
-
-
-
-
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases
-
- 125
- 125
- 1.0
- 1.0
- 0.25
- 500
-
-
+
+ Defs/ThingDef[
+ defName="RH2Mech_KV2Walker" or
+ defName="RH2Mech_TeslaDrone" or
+ defName="RH2Mech_PlasmaDrone"
+ ]
+
+
+ Humanoid
+
+
+
+
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases/ArmorRating_Blunt
-
- 75
-
-
+
+
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases
+
+ 125
+ 125
+ 1.0
+ 1.0
+ 0.25
+ 500
+
+
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases/ArmorRating_Sharp
-
- 30
-
-
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases/ArmorRating_Blunt
+
+ 75
+
+
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/comps
-
-
- 2500
- false
- 0.5
- true
-
- 5
-
- 200
- 250
- 15
- 37
-
-
-
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/statBases/ArmorRating_Sharp
+
+ 30
+
+
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]
-
-
-
-
- false
- 0.25
-
- SightSensor
-
-
-
- false
- 0.25
-
- SightSensor
-
-
-
- false
- 0.25
-
- HearingSensor
-
-
-
- false
- 0.25
-
- HearingSensor
-
-
-
- false
- .6
-
- MechanicalLeg
-
-
-
- false
- .5
-
- MechanicalLeg
-
-
-
-
-
-
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/comps
+
+
+ 2500
+ false
+ 0.5
+ true
+
+ 5
+
+ 200
+ 250
+ 15
+ 37
+
+
+
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/comps/li[@Class="CompProperties_TurretGun" and turretDef="RNGun_KV2_KrohaLauncher"]
-
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]
+
+
+
+
+ false
+ 0.25
+
+ SightSensor
+
+
+
+ false
+ 0.25
+
+ SightSensor
+
+
+
+ false
+ 0.25
+
+ HearingSensor
+
+
+
+ false
+ 0.25
+
+ HearingSensor
+
+
+
+ false
+ .6
+
+ MechanicalLeg
+
+
+
+ false
+ .5
+
+ MechanicalLeg
+
+
+
+
+
+
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/tools
-
-
-
-
-
- Blunt
-
- 85
- 3
- FrontLeftLeg
- true
-
-
-
-
- Blunt
-
- 85
- 3
- FrontRightLeg
- true
-
-
-
-
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/comps/li[@Class="CompProperties_TurretGun" and turretDef="RNGun_KV2_KrohaLauncher"]
+
-
- Defs/PawnKindDef[defName="RH2Mech_KV2Walker"]
-
-
-
- 10
- 20
-
- GrenadeHE
-
-
-
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/tools
+
+
+
+
+
+ Blunt
+
+ 85
+ 3
+ FrontLeftLeg
+ true
+
+
+
+
+ Blunt
+
+ 85
+ 3
+ FrontRightLeg
+ true
+
+
+
+
-
- Defs/ThingDef[defName="RH2Mech_KV2Walker"]/race/baseHealthScale
-
- 8
-
-
+
+ Defs/PawnKindDef[defName="RH2Mech_KV2Walker"]
+
+
+
+ 10
+ 20
+
+ GrenadeHE
+
+
+
-
- Defs/PawnKindDef[defName="RH2Mech_KV2Walker"]/combatPower
-
- 1400
-
-
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/race/baseHealthScale
+
+ 8
+
+
-
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases
-
- 80
- 20
- 1.0
- 1.0
- 0.25
- 300
-
-
+
+ Defs/PawnKindDef[defName="RH2Mech_KV2Walker"]/combatPower
+
+ 1400
+
+
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases/ArmorRating_Blunt
-
- 50
-
-
+
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases
+
+ 80
+ 20
+ 1.0
+ 1.0
+ 0.25
+ 300
+
+
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases/ArmorRating_Sharp
-
- 20
-
-
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases/ArmorRating_Blunt
+
+ 50
+
+
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/comps
-
-
- 1500
- false
- 0.5
- true
-
- 3
-
- 140
- 150
- 10
- 25
-
-
-
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/statBases/ArmorRating_Sharp
+
+ 20
+
+
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/comps
+
+
+ 1500
+ false
+ 0.5
+ true
+
+ 3
+
+ 140
+ 150
+ 10
+ 25
+
+
+
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/race/baseHealthScale
-
- 4
-
-
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]
-
-
-
-
- false
- 0.1
-
- SightSensor
-
-
-
- false
- 0.1
-
- SightSensor
-
-
-
- false
- 0.1
-
- HearingSensor
-
-
-
- false
- 0.1
-
- HearingSensor
-
-
-
- false
- 1.5
-
- MechanicalShoulder
-
-
-
- false
- 1.5
-
- MechanicalShoulder
-
-
-
-
-
-
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/race/baseHealthScale
+
+ 4
+
+
-
- Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/tools
-
-
-
-
-
- Blunt
-
- 22
- 2
- LeftHand
- true
-
-
-
-
- Blunt
-
- 25
- 2
- RightHand
- true
- true
-
-
-
-
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]
+
+
+
+
+ false
+ 0.1
+
+ SightSensor
+
+
+
+ false
+ 0.1
+
+ SightSensor
+
+
+
+ false
+ 0.1
+
+ HearingSensor
+
+
+
+ false
+ 0.1
+
+ HearingSensor
+
+
+
+ false
+ 1.5
+
+ MechanicalShoulder
+
+
+
+ false
+ 1.5
+
+ MechanicalShoulder
+
+
+
+
+
+
-
- Defs/PawnKindDef[defName="RH2Mech_TeslaDrone"]
-
-
-
- 20
- 30
-
-
-
-
+
+ Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/tools
+
+
+
+
+
+ Blunt
+
+ 22
+ 2
+ LeftHand
+ true
+
+
+
+
+ Blunt
+
+ 25
+ 2
+ RightHand
+ true
+ true
+
+
+
+
-
- Defs/PawnKindDef[defName="RH2Mech_TeslaDrone"]/combatPower
-
- 400
-
-
+
+ Defs/PawnKindDef[defName="RH2Mech_TeslaDrone"]
+
+
+
+ 20
+ 30
+
+
+
+
-
- Defs/PawnKindDef[defName="RH2Mech_PlasmaDrone"]
-
-
-
- 20
- 25
-
-
-
-
+
+ Defs/PawnKindDef[defName="RH2Mech_TeslaDrone"]/combatPower
+
+ 400
+
+
-
- Defs/PawnKindDef[defName="RH2Mech_PlasmaDrone"]/combatPower
-
- 450
-
-
+
+ Defs/PawnKindDef[defName="RH2Mech_PlasmaDrone"]
+
+
+
+ 20
+ 25
+
+
+
+
+
+
+ Defs/PawnKindDef[defName="RH2Mech_PlasmaDrone"]/combatPower
+
+ 450
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml
index 15904468e6..3dd9e52cb7 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml
@@ -1,98 +1,98 @@
-
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_Base"]
-
-
-
- 4
- 6
-
-
-
-
+
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_Base"]
+
+
+
+ 4
+ 6
+
+
+
+
-
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_IntermediateBase"]
-
-
-
- 4
- 6
-
-
-
- 0.15
-
- 10
- 100
-
-
- GrenadeSmoke
-
-
- 0
- 1
-
-
-
- 0.075
-
- 50
- 200
-
-
- CE_FlareLauncher
-
-
- 2
- 4
-
-
-
-
-
-
+
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_IntermediateBase"]
+
+
+
+ 4
+ 6
+
+
+
+ 0.15
+
+ 10
+ 100
+
+
+ GrenadeSmoke
+
+
+ 0
+ 1
+
+
+
+ 0.075
+
+ 50
+ 200
+
+
+ CE_FlareLauncher
+
+
+ 2
+ 4
+
+
+
+
+
+
-
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_SpecialBase"]
-
-
-
- 4
- 6
-
-
-
- 0.125
-
- 10
- 100
-
-
- GrenadeDestructive
-
-
- 2
- 3
-
-
-
-
-
-
+
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_SpecialBase"]
+
+
+
+ 4
+ 6
+
+
+
+ 0.125
+
+ 10
+ 100
+
+
+ GrenadeDestructive
+
+
+ 2
+ 3
+
+
+
+
+
+
-
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_BossBase"]
-
-
-
- 4
- 6
-
-
-
-
+
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_BossBase"]
+
+
+
+ 4
+ 6
+
+
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Weapons_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Weapons_Gruppa_Krovi.xml
index 00bc2d9cd4..afa5db7386 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Weapons_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Weapons_Gruppa_Krovi.xml
@@ -445,8 +445,8 @@
False
- RN_GruppaKrovi_Marksman
- RN_SVDS
+ RN_GruppaKrovi_Marksman
+ RN_SVDS
PrecisionRifling
@@ -491,8 +491,8 @@
False
- RN_GruppaKrovi_Marksman
- RN_KSVK
+ RN_GruppaKrovi_Marksman
+ RN_KSVK
PrecisionRifling
diff --git a/SupportedThirdPartyMods.md b/SupportedThirdPartyMods.md
index 746d33a0ac..920a29c11b 100644
--- a/SupportedThirdPartyMods.md
+++ b/SupportedThirdPartyMods.md
@@ -40,6 +40,7 @@ Mod |
[Pratt] WWII Weapons Pack (Vanilla) |
[RH2] DOOM |
[RH2] Faction: Bounty Hunters |
+[RH2] Faction: Gruppa Krovi |
[RH2] Faction: Task Force 141 |
[RH2] Faction: The Rangers |
[RH2] Faction: Utilitarian |
From 8dd11b1d703592ddb195b0bd4f659f3c47a3f805 Mon Sep 17 00:00:00 2001
From: n7huntsman
Date: Fri, 16 Aug 2024 21:14:16 -0400
Subject: [PATCH 23/35] More housekeeping
---
.../Patches/Mechs_Gruppa_Krovi.xml | 13 --
.../Patches/PawnKinds_Gruppa_Krovi.xml | 114 +++++++++---------
.../Patches/TraderKinds_Gruppa_Krovi.xml | 2 +
3 files changed, 59 insertions(+), 70 deletions(-)
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
index 4511cef338..176ff6bfeb 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
@@ -68,42 +68,36 @@
- false
0.25
SightSensor
- false
0.25
SightSensor
- false
0.25
HearingSensor
- false
0.25
HearingSensor
- false
.6
MechanicalLeg
- false
.5
MechanicalLeg
@@ -219,7 +213,6 @@
-
Defs/ThingDef[defName="RH2Mech_TeslaDrone" or defName="RH2Mech_PlasmaDrone"]/race/baseHealthScale
@@ -233,42 +226,36 @@
- false
0.1
SightSensor
- false
0.1
SightSensor
- false
0.1
HearingSensor
- false
0.1
HearingSensor
- false
1.5
MechanicalShoulder
- false
1.5
MechanicalShoulder
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml
index 3dd9e52cb7..e252fed382 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/PawnKinds_Gruppa_Krovi.xml
@@ -2,57 +2,57 @@
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_Base"]
-
-
-
- 4
- 6
-
-
-
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_Base"]
+
+
+
+ 4
+ 6
+
+
+
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_IntermediateBase"]
-
-
-
- 4
- 6
-
-
-
- 0.15
-
- 10
- 100
-
-
- GrenadeSmoke
-
-
- 0
- 1
-
-
-
- 0.075
-
- 50
- 200
-
-
- CE_FlareLauncher
-
-
- 2
- 4
-
-
-
-
-
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_IntermediateBase"]
+
+
+
+ 4
+ 6
+
+
+
+ 0.15
+
+ 10
+ 100
+
+
+ GrenadeSmoke
+
+
+ 0
+ 1
+
+
+
+ 0.075
+
+ 50
+ 200
+
+
+ CE_FlareLauncher
+
+
+ 2
+ 4
+
+
+
+
+
@@ -84,15 +84,15 @@
- Defs/PawnKindDef[@Name="RH2_GruppaKrovi_BossBase"]
-
-
-
- 4
- 6
-
-
-
+ Defs/PawnKindDef[@Name="RH2_GruppaKrovi_BossBase"]
+
+
+
+ 4
+ 6
+
+
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml
index a03503ebf9..813fa43d1d 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml
@@ -1,5 +1,6 @@
+
Defs/TraderKindDef[
defName="RHBase_GruppaKrovi_Standard" or
@@ -20,4 +21,5 @@
+
\ No newline at end of file
From dda011580e92dd60dfddeaddc195619fcaed41c3 Mon Sep 17 00:00:00 2001
From: n7huntsman
Date: Fri, 16 Aug 2024 21:36:36 -0400
Subject: [PATCH 24/35] Tweaks
---
.../Patches/Apparel_Gruppa_Krovi.xml | 113 +++++++++++++++++-
.../Patches/Weapons_Gruppa_Krovi.xml | 1 +
2 files changed, 109 insertions(+), 5 deletions(-)
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
index 1fc6084ac1..fc7ec3ac17 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
@@ -83,7 +83,29 @@
0.54
-
+
+
+ Defs/ThingDef[defName="RNApparel_K63_Helmet_GP7Gasmask"]
+
+
+
+
+ 0.20
+
+ Eye
+
+
+
+ 0.20
+
+ Eye
+
+
+
+
+
+
+
Defs/ThingDef[defName="RNApparel_Helmet_JuggernautMkII"]/statBases
@@ -109,6 +131,28 @@
Defs/ThingDef[defName="RNApparel_Helmet_JuggernautMkII"]/equippedStatOffsets/MoveSpeed
+
+ Defs/ThingDef[defName="RNApparel_Helmet_JuggernautMkII"]
+
+
+
+
+ 0.80
+
+ Eye
+
+
+
+ 0.80
+
+ Eye
+
+
+
+
+
+
+
Defs/ThingDef[
@@ -183,12 +227,12 @@
defName="RNApparel_Jacket_GORKA4AnorakJacket" or
defName="RNApparel_Jacket_GORKAESSOJacket" or
defName="RNApparel_Jacket_GORKAKMLKJacket"
- ]/statBases/Flammability
+ ]/statBases/Flammability
0.6
-
+
Defs/ThingDef[
@@ -197,7 +241,31 @@
defName="RNApparel_Soviet_JuggernautSuitMkII"
]/equippedStatOffsets/MoveSpeed
-
+
+
+ Defs/ThingDef[defName="RNApparel_CryeCAGE_Multicam" or defName="RNApparel_Defender2_Green"]
+
+
+
+
+ 0.60
+
+ Neck
+ Shoulder
+
+
+
+ 0.60
+
+ Neck
+ Shoulder
+
+
+
+
+
+
+
Defs/ThingDef[defName="RNApparel_CryeCAGE_Multicam"]/statBases
@@ -269,7 +337,41 @@
-
+
+
+ Defs/ThingDef[@Name="RNApparel_Soviet_JuggernautSuitMkII"]
+
+
+
+
+ 0.80
+
+ Neck
+
+
+
+ 0.80
+
+ Neck
+
+
+
+ 0.90
+
+ Arm
+
+
+
+ 0.90
+
+ Arm
+
+
+
+
+
+
+
Defs/ThingDef[@Name = "RHApparel_GruppaKroviHarnessBase"]/apparel/layers
@@ -361,4 +463,5 @@
60
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Weapons_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Weapons_Gruppa_Krovi.xml
index afa5db7386..690b24dc2d 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Weapons_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Weapons_Gruppa_Krovi.xml
@@ -493,6 +493,7 @@
RN_GruppaKrovi_Marksman
RN_KSVK
+ Bipod_AMR
PrecisionRifling
From a43d0e7136493349d451b80caae3acc4de446325 Mon Sep 17 00:00:00 2001
From: n7huntsman
Date: Fri, 16 Aug 2024 22:38:33 -0400
Subject: [PATCH 25/35] Housekeeping and tweaks
---
.../Patches/Apparel_Gruppa_Krovi.xml | 2 +-
.../Patches/Mech_Weapons_Gruppa_Krovi.xml | 2 +-
.../Patches/Mechs_Gruppa_Krovi.xml | 15 +++++++++++----
.../Patches/TraderKinds_Gruppa_Krovi.xml | 2 +-
4 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
index fc7ec3ac17..6d9ee38a30 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
@@ -339,7 +339,7 @@
- Defs/ThingDef[@Name="RNApparel_Soviet_JuggernautSuitMkII"]
+ Defs/ThingDef[defName="RNApparel_Soviet_JuggernautSuitMkII"]
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml
index 394d032262..0c73a72e5d 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mech_Weapons_Gruppa_Krovi.xml
@@ -22,6 +22,7 @@
20.00
+ 1.27
CombatExtended.Verb_ShootCE
true
Bullet_127x108mm_FMJ
@@ -157,7 +158,6 @@
Defs/ThingDef[defName="RNBullet_Tesla_Charge"]
-
RNGun_RedStar_PlasmaCannon
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
index 176ff6bfeb..d24afae67d 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Mechs_Gruppa_Krovi.xml
@@ -2,7 +2,7 @@
- Defs/ThingDef[
+ Defs/ThingDef[
defName="RH2Mech_KV2Walker" or
defName="RH2Mech_TeslaDrone" or
defName="RH2Mech_PlasmaDrone"
@@ -10,7 +10,6 @@
Humanoid
-
@@ -62,6 +61,13 @@
+
+ Defs/ThingDef[defName="RH2Mech_KV2Walker"]/butcherProducts
+
+ 100
+
+
+
Defs/ThingDef[defName="RH2Mech_KV2Walker"]
@@ -92,13 +98,13 @@
- .6
+ 0.6
MechanicalLeg
- .5
+ 0.5
MechanicalLeg
@@ -332,4 +338,5 @@
450
+
\ No newline at end of file
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml
index 813fa43d1d..8444e86e11 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml
@@ -5,7 +5,7 @@
Defs/TraderKindDef[
defName="RHBase_GruppaKrovi_Standard" or
defName="RHCaravan_GruppaKrovi_BlackMarket"
- ]/stockGenerators
+ ]/stockGenerators
CE_Ammo
From 79e8d2fe752049d7252ee704416dbb52db5a4d0d Mon Sep 17 00:00:00 2001
From: n7huntsman
Date: Fri, 16 Aug 2024 23:28:52 -0400
Subject: [PATCH 26/35] Tweaks
---
.../Patches/Apparel_Gruppa_Krovi.xml | 41 ++++++++++---------
.../Patches/TraderKinds_Gruppa_Krovi.xml | 7 ++++
2 files changed, 29 insertions(+), 19 deletions(-)
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
index 6d9ee38a30..59df622907 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/Apparel_Gruppa_Krovi.xml
@@ -305,27 +305,30 @@
- Defs/ThingDef[defName="RNApparel_Soviet_JuggernautSuitMkII"]/statBases
+ Defs/ThingDef[defName="RNApparel_Soviet_JuggernautSuitMkII"]/statBases/ArmorRating_Sharp
-
- 21000
- 360
- 0.25
- 18
- 31
- 0.27
- 1
- 5.5
- 30
- 50
- 20
- -0.25
- -0.25
- 0.15
-
+ 18
+ 50
+ 20
-
-
+
+
+
+ Defs/ThingDef[defName="RNApparel_Soviet_JuggernautSuitMkII"]/statBases/ArmorRating_Blunt
+
+ 32
+
+
+
+
+ Defs/ThingDef[defName="RNApparel_Soviet_JuggernautSuitMkII"]/equippedStatOffsets
+
+
+ 40
+
+
+
+
Defs/ThingDef[defName="RNApparel_Soviet_JuggernautSuitMkII"]/costList
diff --git a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml
index 8444e86e11..afe58741b8 100644
--- a/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml
+++ b/ModPatches/RH2 Faction - Gruppa Krovi/Patches/TraderKinds_Gruppa_Krovi.xml
@@ -1,6 +1,13 @@
+
+ Defs/ThingDef[defName="RH2_Dima_Cigarette"]/statBases
+
+ 0.05
+
+
+
Defs/TraderKindDef[
defName="RHBase_GruppaKrovi_Standard" or
From 5d894d89837b4e18ac3e1a9ed9163af32caad312 Mon Sep 17 00:00:00 2001
From: n7huntsman
Date: Sat, 17 Aug 2024 01:02:07 -0400
Subject: [PATCH 27/35] Make frag grenades smeltable
---
Patches/Core/ThingDefs_Misc/Weapons_Grenades.xml | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/Patches/Core/ThingDefs_Misc/Weapons_Grenades.xml b/Patches/Core/ThingDefs_Misc/Weapons_Grenades.xml
index a36fb35d53..140fcbc614 100644
--- a/Patches/Core/ThingDefs_Misc/Weapons_Grenades.xml
+++ b/Patches/Core/ThingDefs_Misc/Weapons_Grenades.xml
@@ -148,12 +148,19 @@
+
+ Defs/ThingDef[defName="Weapon_GrenadeFrag"]/smeltable
+
+ false
+
+
+
Defs/ThingDef[defName="Weapon_GrenadeFrag"]
CombatExtended.AmmoThing
75
- First
+ First
@@ -405,7 +412,7 @@
CombatExtended.AmmoThing
75
- First
+ First
From 78f62c9f82af70bbb86c56d660cb99bef6bf7440 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 17 Aug 2024 00:15:25 -0700
Subject: [PATCH 28/35] Add Test for Duplicates
---
.github/workflows/duplicates.yml | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 .github/workflows/duplicates.yml
diff --git a/.github/workflows/duplicates.yml b/.github/workflows/duplicates.yml
new file mode 100644
index 0000000000..cd6bc7e1f8
--- /dev/null
+++ b/.github/workflows/duplicates.yml
@@ -0,0 +1,20 @@
+name: Check Patch Duplicates
+on:
+ pull_request:
+ branches: [ master, Development ]
+
+# Restrict the permissions of the ephemeral GitHub token used by this workflow
+permissions:
+ contents: read
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: Check C# code style
+ run: |
+ python3 DupeFinder.py -c
From 664027c4a892e270a4e963b056fc19dffb7ce357 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 17 Aug 2024 00:20:20 -0700
Subject: [PATCH 29/35] Remove AssembliesCompat and CombatExtendedLoader
---
.github/workflows/release.yml | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 756bb2140a..50669e0cd7 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -16,13 +16,11 @@ jobs:
rm -rf AssemblyPublicizer
git clone https://github.com/CombatExtended-Continued/AssemblyPublicizer
mkdir -p Assemblies
- mkdir -p AssembliesCore
- mkdir -p AssembliesCompat
mkdir -p ${{ runner.temp }}/downloads
- - name: build loader
+ - name: remove loader
run: |
- TEMP=${{ runner.temp }}/ python Make.py --csproj Source/Loader/Loader.csproj --output Assemblies/0CombatExtendedLoader.dll --download-libs --all-libs
+ rm Assemblies/CombatExtendedLoader.dll
- name: build core
run: |
TEMP=${{ runner.temp }}/ python Make.py --csproj Source/CombatExtended/CombatExtended.csproj --output Assemblies/CombatExtended.dll --download-libs --all-libs --publicizer $PWD/AssemblyPublicizer
@@ -32,7 +30,7 @@ jobs:
- name: package
run: |
mkdir CombatExtended
- cp -r Assemblies/ AssembliesCore/ AssembliesCompat/ About/ Defs/ Languages/ Patches/ Royalty/ Ideology/ Biotech/ Anomaly/ Sounds/ Textures/ ModPatches/ LoadFolders.xml README.md SupportedThirdPartyMods.md CombatExtended
+ cp -r Assemblies/ About/ Defs/ Languages/ Patches/ Royalty/ Ideology/ Biotech/ Anomaly/ Sounds/ Textures/ ModPatches/ LoadFolders.xml README.md SupportedThirdPartyMods.md CombatExtended
zip -9 -r CombatExtended.zip CombatExtended
- name: Upload Package
id: upload-package
From f3152e69ca45ed13e09111a9cd50394fb7df9125 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 17 Aug 2024 00:21:44 -0700
Subject: [PATCH 30/35] Remove AssembliesCore AssembliesCompat and Loader from
zipfiles
---
.github/workflows/pullrequest.yml | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml
index fc14818afd..5196edc729 100644
--- a/.github/workflows/pullrequest.yml
+++ b/.github/workflows/pullrequest.yml
@@ -25,15 +25,13 @@ jobs:
wget https://raw.githubusercontent.com/CombatExtended-Continued/CombatExtended/Development/Make.py -O Make.py
wget https://raw.githubusercontent.com/CombatExtended-Continued/CombatExtended/Development/BuildCompat.py -O BuildCompat.py
mkdir -p Assemblies
- mkdir -p AssembliesCore
- mkdir -p AssembliesCompat
mkdir -p ${{ runner.temp }}/downloads
rm -rf AssemblyPublicizer
git clone https://github.com/CombatExtended-Continued/AssemblyPublicizer
- - name: build loader
+ - name: remove loader
run: |
- TEMP=${{ runner.temp }}/ python Make.py --csproj Source/Loader/Loader.csproj --output Assemblies/0CombatExtendedLoader.dll --download-libs --all-libs
+ rm Assemblies/CombatExtendedLoader.dll
- name: build core
run: |
@@ -46,7 +44,7 @@ jobs:
- name: package
run: |
mkdir CombatExtended
- cp -r Source/ Assemblies/ AssembliesCompat/ AssembliesCore/ About/ Defs/ Languages/ Patches/ Royalty/ Ideology/ Biotech/ Anomaly/ Sounds/ Textures/ ModPatches/ LoadFolders.xml README.md SupportedThirdPartyMods.md CombatExtended
+ cp -r Source/ Assemblies/ About/ Defs/ Languages/ Patches/ Royalty/ Ideology/ Biotech/ Anomaly/ Sounds/ Textures/ ModPatches/ LoadFolders.xml README.md SupportedThirdPartyMods.md CombatExtended
zip -9 -r build.zip CombatExtended
- name: Upload to DO
run: |
From fb0f411577d47d236b7ad5b5cc5b38027b4b0905 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 17 Aug 2024 00:22:34 -0700
Subject: [PATCH 31/35] Remove AssembliesCompat AssembliesCore and Loader from
zipfiles
---
.github/workflows/main.yml | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index b04e34fc0f..f314aa9c7f 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -15,12 +15,10 @@ jobs:
rm -rf AssemblyPublicizer
git clone https://github.com/CombatExtended-Continued/AssemblyPublicizer
mkdir -p Assemblies
- mkdir -p AssembliesCore
- mkdir -p AssembliesCompat
mkdir -p ${{ runner.temp }}/downloads
- - name: build loader
+ - name: remove loader
run: |
- TEMP=${{ runner.temp }}/ python Make.py --csproj Source/Loader/Loader.csproj --output Assemblies/0CombatExtendedLoader.dll --download-libs --all-libs
+ rm Assemblies/CombatExtendedLoader.dll
- name: build core
run: |
@@ -33,7 +31,7 @@ jobs:
- name: package
run: |
mkdir CombatExtended
- cp -r Source/ Assemblies/ AssembliesCore/ AssembliesCompat/ About/ Defs/ Languages/ Patches/ Royalty/ Ideology/ Biotech/ Anomaly/ Sounds/ Textures/ ModPatches/ LoadFolders.xml README.md SupportedThirdPartyMods.md CombatExtended
+ cp -r Source/ Assemblies/ About/ Defs/ Languages/ Patches/ Royalty/ Ideology/ Biotech/ Anomaly/ Sounds/ Textures/ ModPatches/ LoadFolders.xml README.md SupportedThirdPartyMods.md CombatExtended
zip -9 -r build.zip CombatExtended
- name: Upload to DO
run: |
From d9a9f0c280c9d984156916174dc5903a7d059d4b Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 17 Aug 2024 00:23:54 -0700
Subject: [PATCH 32/35] Rename task
---
.github/workflows/duplicates.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/duplicates.yml b/.github/workflows/duplicates.yml
index cd6bc7e1f8..777a91976e 100644
--- a/.github/workflows/duplicates.yml
+++ b/.github/workflows/duplicates.yml
@@ -15,6 +15,6 @@ jobs:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- - name: Check C# code style
+ - name: Check for duplicate virtual file paths
run: |
python3 DupeFinder.py -c
From a78f6b7c69d2f75b6281735a9d1cfdde60fb9c04 Mon Sep 17 00:00:00 2001
From: Logan Perkins
Date: Sat, 17 Aug 2024 00:30:50 -0700
Subject: [PATCH 33/35] Rename colliding path
---
.../DamageDefs/{Damages_Misc.xml => Anomaly_Damages_Misc.xml} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename Anomaly/Patches/DamageDefs/{Damages_Misc.xml => Anomaly_Damages_Misc.xml} (100%)
diff --git a/Anomaly/Patches/DamageDefs/Damages_Misc.xml b/Anomaly/Patches/DamageDefs/Anomaly_Damages_Misc.xml
similarity index 100%
rename from Anomaly/Patches/DamageDefs/Damages_Misc.xml
rename to Anomaly/Patches/DamageDefs/Anomaly_Damages_Misc.xml
From 82696bc8a9085e04e5f47968811c6bec0d365150 Mon Sep 17 00:00:00 2001
From: SamaelGray <56392968+SamaelGray@users.noreply.github.com>
Date: Mon, 19 Aug 2024 14:35:02 +0330
Subject: [PATCH 34/35] VRE Lycans patch
---
LoadFolders.xml | 5 +++--
.../Patches/GeneDefs/GeneDefs_Health.xml | 13 +++++++++++++
SupportedThirdPartyMods.md | 1 +
3 files changed, 17 insertions(+), 2 deletions(-)
create mode 100644 ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/GeneDefs/GeneDefs_Health.xml
diff --git a/LoadFolders.xml b/LoadFolders.xml
index 1d7bf52a19..87ab9e226c 100644
--- a/LoadFolders.xml
+++ b/LoadFolders.xml
@@ -380,7 +380,7 @@
ModPatches/RBSE
ModPatches/RH2 DOOM
ModPatches/RH2 Faction - Bounty Hunters
- ModPatches/RH2 Faction - Gruppa Krovi
+ ModPatches/RH2 Faction - Gruppa Krovi
ModPatches/RH2 Faction - Task Force 141
ModPatches/RH2 Faction - The Rangers
ModPatches/RH2 Faction - Utilitarian
@@ -556,6 +556,7 @@
ModPatches/Vanilla Races Expanded - Highmate
ModPatches/Vanilla Races Expanded - Hussar
ModPatches/Vanilla Races Expanded - Insector
+ ModPatches/Vanilla Races Expanded - Lycanthrope
ModPatches/Vanilla Races Expanded - Phytokin
ModPatches/Vanilla Races Expanded - Sanguophage
ModPatches/Vanilla Races Expanded - Saurid
@@ -613,4 +614,4 @@
ModPatches/Multiplayer
ModPatches/SRTS
-
+
\ No newline at end of file
diff --git a/ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/GeneDefs/GeneDefs_Health.xml b/ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/GeneDefs/GeneDefs_Health.xml
new file mode 100644
index 0000000000..55dcd7fbee
--- /dev/null
+++ b/ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/GeneDefs/GeneDefs_Health.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ Defs/GeneDef[defName="VRE_SuperiorDarkVision"]
+
+
+ 0.9
+
+
+
+
+
\ No newline at end of file
diff --git a/SupportedThirdPartyMods.md b/SupportedThirdPartyMods.md
index af308caa03..37d7db57df 100644
--- a/SupportedThirdPartyMods.md
+++ b/SupportedThirdPartyMods.md
@@ -537,6 +537,7 @@ Vanilla Races Expanded - Fungoid |
Vanilla Races Expanded - Highmate |
Vanilla Races Expanded - Hussar |
Vanilla Races Expanded - Insector |
+Vanilla Races Expanded - Lycanthrope |
Vanilla Races Expanded - Phytokin |
Vanilla Races Expanded - Sanguophage |
Vanilla Races Expanded - Saurid |
From 5d87ee8166f4e5bc15f614d9bf4d64c8f5c71797 Mon Sep 17 00:00:00 2001
From: n7huntsman
Date: Tue, 20 Aug 2024 01:42:23 -0400
Subject: [PATCH 35/35] Rename inner folder, give warhowl suppression buff
---
.../GeneDefs_Health.xml | 0
.../Hediffs_Health.xml | 74 +++++++++++++++++++
2 files changed, 74 insertions(+)
rename ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/{GeneDefs => Vanilla Races Expanded - Lycanthrope}/GeneDefs_Health.xml (100%)
create mode 100644 ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/Vanilla Races Expanded - Lycanthrope/Hediffs_Health.xml
diff --git a/ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/GeneDefs/GeneDefs_Health.xml b/ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/Vanilla Races Expanded - Lycanthrope/GeneDefs_Health.xml
similarity index 100%
rename from ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/GeneDefs/GeneDefs_Health.xml
rename to ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/Vanilla Races Expanded - Lycanthrope/GeneDefs_Health.xml
diff --git a/ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/Vanilla Races Expanded - Lycanthrope/Hediffs_Health.xml b/ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/Vanilla Races Expanded - Lycanthrope/Hediffs_Health.xml
new file mode 100644
index 0000000000..90e2e98b1f
--- /dev/null
+++ b/ModPatches/Vanilla Races Expanded - Lycanthrope/Patches/Vanilla Races Expanded - Lycanthrope/Hediffs_Health.xml
@@ -0,0 +1,74 @@
+
+
+
+
+ Defs/HediffDef[defName="VRE_WarHowlHediff"]/stages/li[1]/statOffsets
+
+ -0.10
+
+
+
+
+ Defs/HediffDef[defName="VRE_WarHowlHediff"]/stages/li[2]/statOffsets
+
+ -0.20
+
+
+
+
+ Defs/HediffDef[defName="VRE_WarHowlHediff"]/stages/li[3]/statOffsets
+
+ -0.30
+
+
+
+
+ Defs/HediffDef[defName="VRE_WarHowlHediff"]/stages/li[4]/statOffsets
+
+ -0.40
+
+
+
+
+ Defs/HediffDef[defName="VRE_WarHowlHediff"]/stages/li[5]/statOffsets
+
+ -0.50
+
+
+
+
+ Defs/HediffDef[defName="VRE_WarHowlHediff"]/stages/li[6]/statOffsets
+
+ -0.60
+
+
+
+
+ Defs/HediffDef[defName="VRE_WarHowlHediff"]/stages/li[7]/statOffsets
+
+ -0.70
+
+
+
+
+ Defs/HediffDef[defName="VRE_WarHowlHediff"]/stages/li[8]/statOffsets
+
+ -0.80
+
+
+
+
+ Defs/HediffDef[defName="VRE_WarHowlHediff"]/stages/li[9]/statOffsets
+
+ -0.90
+
+
+
+
+ Defs/HediffDef[defName="VRE_WarHowlHediff"]/stages/li[10]/statOffsets
+
+ -1
+
+
+
+
\ No newline at end of file