/// <summary> /// Updates the distance traveled only if the achievements are unlocked. /// </summary> /// <param name="instance">The particle to check.</param> /// <param name="dt">The time elapsed since the last check.</param> private static void AchievementUpdate(HighEnergyParticle instance, float dt) { var inst = SaveGame.Instance; if (TrackAchievements() && inst != null && inst.TryGetComponent( out ColonyAchievementTracker cat)) { cat.radBoltTravelDistance += instance.speed * dt; } }
/// <summary> /// Applied before MovingUpdate runs. /// </summary> internal static bool Prefix(HighEnergyParticle __instance, float dt) { bool cont = !__instance.TryGetComponent(out FastProtonCollider fpc); if (!cont) { fpc.MovingUpdate(dt); } else { // Should never happen! __instance.CheckCollision(); } return(cont); }