Files
BepInEx/Projects/TerraTech/TerraTech/SeekingProjectileManager.cs
2024-08-22 08:46:27 +02:00

24 lines
1.2 KiB
C#

using System;
using HarmonyLib;
namespace TerraTech {
public class SeekingProjectileManager {
[HarmonyPatch(typeof(SeekingProjectile), "OnSpawn")]
class Patch {
static void Postfix(SeekingProjectile __instance) {
Console.WriteLine("SeekingProjectile created");
SetField(__instance, "m_VisionConeAngle", Main.seekingProjectileVisionConeAngleMultiplier.Value * GetField(__instance, "m_VisionConeAngle"));
SetField(__instance, "m_VisionRange", Main.seekingProjectileVisionRangeMultiplier.Value * GetField(__instance, "m_VisionRange"));
SetField(__instance, "m_TurnSpeed", Main.seekingProjectileTurningSpeedMultiplier.Value * GetField(__instance, "m_TurnSpeed"));
}
}
private static float GetField(SeekingProjectile seekingProjectile, string field) {
return Traverse.Create(seekingProjectile).Field(field).GetValue() as float? ?? 0f;
}
private static void SetField(SeekingProjectile seekingProjectile, string field, float value) {
Traverse.Create(seekingProjectile).Field(field).SetValue(value);
}
}
}