Example #1
0
        // target spot lights only and configure them per the settings
        public static void Postfix(LightSpawner __instance, BTLight ___spawnedLight)
        {
            if (__instance.type == LightSpawner.LightTypes.point)
            {
                return;
            }

            Log($"adjusting: {__instance.name} ({__instance.transform.parent.name})");
            if (settings.ExtraRange)
            {
                ___spawnedLight.radius = extraRadius;
            }

            if (settings.Intensity != "VANILLA" &&
                IntensityMap.ContainsKey(settings.Intensity))
            {
                if (__instance.name.StartsWith("light"))
                {
                    // magic numbers.. sorry.  adjusted to visuals
                    ___spawnedLight.intensity           = IntensityMap[settings.Intensity] / 5f;
                    ___spawnedLight.spotlightAngleOuter = settings.Angle * 1.20f;
                }
                else
                {
                    ___spawnedLight.intensity           = IntensityMap[settings.Intensity];
                    ___spawnedLight.spotlightAngleOuter = settings.Angle;
                }
            }
        }
 public static bool Prefix(BTLight __instance, object obj, ref int __result)
 {
     try
     {
         var one   = __instance;
         var other = obj as BTLight;
         __result = (int)one.lightType - (int)other.lightType;
         return(false);
     }
     catch (Exception e)
     {
         Control.Logger.Error.Log(e);
     }
     return(true);
 }
Example #3
0
            public static bool Prefix(BTLight light, List <BTLight> ___lightList)
            {
                if (BTLightController.InBatchProcess)
                {
                    BTLightController.LightAdded = true;
                    if (!light.isInLightList)
                    {
                        ___lightList.Add(light);
                        light.isInLightList = true;
                    }

                    return(false);
                }

                return(true);
            }
Example #4
0
        public static void Prefix(LaserEffect __instance, ref Color[] ___laserColor, ref BTLight ___laserLight, ref LineRenderer ___beamRenderer)
        {
            try
            {
                Weapon weapon = __instance.weapon;
                if (weapon.weaponDef.Description.Id == Fields.StreakTargetingLaserId)
                {
                    Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) lightIntensity: {__instance.lightIntensity}");
                    Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) lightRadius: {__instance.lightRadius}");
                    Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) pulseDelay: {__instance.pulseDelay}");

                    __instance.lightIntensity = 300000f; // Default: 3500000f (SmallLaserPulse: 50000)
                    //__instance.lightRadius = 120; // Default: 100 (SmallLaserPulse: 60)
                    //__instance.pulseDelay = 0.2f; // Default: ? (SmallLaserPulse: -1)

                    Color overrideColor = Fields.TargetingLaserColor;

                    ___beamRenderer = __instance.projectile.GetComponent <LineRenderer>();
                    Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) __beamRenderer: {___beamRenderer.startColor}, {___beamRenderer.endColor}, {___beamRenderer.startWidth}, {___beamRenderer.endWidth}");
                    ___beamRenderer.startColor = overrideColor;
                    ___beamRenderer.endColor   = overrideColor;

                    ___beamRenderer.startWidth = 1.9f;
                    ___beamRenderer.endWidth   = 2.5f;

                    Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) __beamRenderer: {___beamRenderer.startColor}, {___beamRenderer.endColor}, {___beamRenderer.startWidth}, {___beamRenderer.endWidth}");

                    // Used by LaserEffect.Update() for ___beamRenderer too;
                    ___laserColor[0] = overrideColor;
                    ___laserColor[1] = overrideColor;

                    ___laserLight            = ___beamRenderer.GetComponentInChildren <BTLight>(true);
                    ___laserLight.lightColor = overrideColor;
                    Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) ___laserLight.lightColor: {___laserLight.lightColor}");

                    // Called in original method, not necessary here...
                    //___laserLight.RefreshLightSettings(true);
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
        }
Example #5
0
        public static void Postfix(LaserEffect __instance, ref Color[] ___laserColor, ref BTLight ___laserLight, ref LineRenderer ___beamRenderer)
        {
            try
            {
                Weapon weapon = __instance.weapon;
                if (weapon.weaponDef.Description.Id == Fields.StreakTargetingLaserId)
                {
                    Logger.Debug($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) lightIntensity: {__instance.lightIntensity}");
                    Logger.Debug($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) lightRadius: {__instance.lightRadius}");
                    Logger.Debug($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) pulseDelay: {__instance.pulseDelay}");

                    Logger.Debug($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) __beamRenderer: {___beamRenderer.startColor}, {___beamRenderer.endColor}, {___beamRenderer.startWidth}, {___beamRenderer.endWidth}");

                    Logger.Debug($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) ___laserLight.lightColor: {___laserLight.lightColor}");

                    Vector4 tempColor   = (Vector4)AccessTools.Field(typeof(BTLight), "tempColor").GetValue(___laserLight);
                    Vector4 linearColor = (Vector4)AccessTools.Field(typeof(BTLight), "linearColor").GetValue(___laserLight);
                    Logger.Info($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) ___laserLight.tempColor: {tempColor}");
                    Logger.Info($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) ___laserLight.linearColor: {linearColor}");
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
        }