diff --git a/Projects/TerraTech/TerraTech.sln.DotSettings.user b/Projects/TerraTech/TerraTech.sln.DotSettings.user
index 8320613..6bb9f5e 100644
--- a/Projects/TerraTech/TerraTech.sln.DotSettings.user
+++ b/Projects/TerraTech/TerraTech.sln.DotSettings.user
@@ -6,6 +6,7 @@
True
True
ForceIncluded
+ ForceIncluded
<AssemblyExplorer />
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
262144
diff --git a/Projects/TerraTech/TerraTech/ModuleWeaponGunManager.cs b/Projects/TerraTech/TerraTech/ModuleWeaponGunManager.cs
index b1837f4..5199f12 100644
--- a/Projects/TerraTech/TerraTech/ModuleWeaponGunManager.cs
+++ b/Projects/TerraTech/TerraTech/ModuleWeaponGunManager.cs
@@ -9,6 +9,10 @@ namespace TerraTech {
new MultipliedObjectManager(ConfigureManager);
private static readonly MultipliedObjectManager fireDataManager =
new MultipliedObjectManager(ConfigureFireData);
+ private static readonly MultipliedObjectManager projectileManager =
+ new MultipliedObjectManager(ConfigureProjectile);
+ private static readonly MultipliedObjectManager missileProjectileManager =
+ new MultipliedObjectManager(ConfigureMissileProjectile);
public static ConfigEntry playerOnly;
public static ConfigEntry kickbackStrengthMultiplier;
@@ -18,6 +22,9 @@ namespace TerraTech {
public static ConfigEntry shotCooldownMultiplier;
public static ConfigEntry seekingRoundsAll;
public static ConfigEntry resetBurstOnInterruptAll;
+ public static ConfigEntry projectileLifetimeMultiplier;
+ public static ConfigEntry missileProjectileBoosterLifetimeMultiplier;
+ public static ConfigEntry projectileExplodeOnStickAll;
public static void Setup(ConfigFile config) {
float min = 0.01f;
@@ -60,6 +67,22 @@ namespace TerraTech {
"FireData", "Reset Burst On Interrupt All", false,
new ConfigDescription("Reset Burst On Interrupt All", new AcceptableValueRange(false, true)));
resetBurstOnInterruptAll.SettingChanged += (sender, args) => DoPatch();
+
+ projectileLifetimeMultiplier = config.Bind(
+ "Projectile", "Lifetime Multiplier", 1f,
+ new ConfigDescription("Projectile Lifetime Multiplier", new AcceptableValueRange(min, max)));
+ projectileLifetimeMultiplier.SettingChanged += (sender, args) => DoPatch();
+
+ missileProjectileBoosterLifetimeMultiplier =
+ config.Bind("MissileProjectile", "Booster Lifetime Multiplier", 1f,
+ new ConfigDescription("Missile Projectile Booster Lifetime Multiplier",
+ new AcceptableValueRange(min, max)));
+ missileProjectileBoosterLifetimeMultiplier.SettingChanged += (sender, args) => DoPatch();
+
+ projectileExplodeOnStickAll = config.Bind(
+ "Projectile", "Explode On Stick All", false,
+ new ConfigDescription("Projectile Explode On Stick All", new AcceptableValueRange(false, true)));
+ projectileExplodeOnStickAll.SettingChanged += (sender, args) => DoPatch();
}
private static void ConfigureManager(MultipliedObject obj) {
@@ -72,10 +95,18 @@ namespace TerraTech {
}
private static void ConfigureFireData(MultipliedObject obj) {
- obj.AddField(
- new FieldConfiguration("m_MuzzleVelocity", muzzleVelocityMultiplier, ShouldApply));
- obj.AddField(
- new FieldConfiguration("m_KickbackStrength", kickbackStrengthMultiplier, ShouldApply));
+ obj.AddField(new FieldConfiguration("m_MuzzleVelocity", muzzleVelocityMultiplier));
+ obj.AddField(new FieldConfiguration("m_KickbackStrength", kickbackStrengthMultiplier));
+ }
+
+ private static void ConfigureProjectile(MultipliedObject obj) {
+ obj.AddField(new FieldConfiguration("m_Lifetime", projectileLifetimeMultiplier));
+ obj.AddField(new FieldConfiguration("m_ExplodeOnStick", projectileExplodeOnStickAll));
+ }
+
+ private static void ConfigureMissileProjectile(MultipliedObject obj) {
+ obj.AddField(new FieldConfiguration("m_MaxBoosterLifetime",
+ missileProjectileBoosterLifetimeMultiplier));
}
private static readonly Func