Пример #1
0
 internal void OnScp079ChangeCamera(ChangingCameraEventArgs ev)
 {
     if (!config.Scp.canScp079ChangeCamera)
     {
         ev.IsAllowed = false;
     }
 }
Пример #2
0
 public void OnChangingCamera(ChangingCameraEventArgs ev)
 {
     if (LockdownController.IsScp079LockedUp && !plugin.Config.Scp079Camera)
     {
         ev.IsAllowed = false;
     }
 }
Пример #3
0
        private static void OnChangingCamera(ChangingCameraEventArgs ev)
        {
            Room room = ev.Camera.Room;

            if (room != null && LockedRooms079.Contains(room))
            {
                ev.IsAllowed = false;
            }
        }
Пример #4
0
        private static bool Prefix(Scp079PlayerScript __instance, ushort cameraId, bool lookatRotation)
        {
            try
            {
                if (!__instance._interactRateLimit.CanExecute(true))
                {
                    return(false);
                }

                if (!__instance.iAm079)
                {
                    return(false);
                }

                Camera079 camera = API.Features.Map.GetCameraById(cameraId);

                if (camera == null)
                {
                    return(false);
                }

                float num                  = __instance.CalculateCameraSwitchCost(camera.transform.position);
                bool  isAllowed            = num <= __instance.curMana;
                ChangingCameraEventArgs ev = new ChangingCameraEventArgs(API.Features.Player.Get(__instance.gameObject), camera, num, isAllowed);
                Scp079.OnChangingCamera(ev);
                if (ev.IsAllowed)
                {
                    __instance.RpcSwitchCamera(ev.Camera.cameraId, lookatRotation);
                    __instance.Mana          = Mathf.Clamp(__instance.Mana - ev.APCost, 0, __instance.maxMana);
                    __instance.currentCamera = ev.Camera;
                }
                else if (ev.APCost > __instance.curMana)
                {
                    __instance.RpcNotEnoughMana(ev.APCost, __instance.curMana);
                }

                return(false);
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"{typeof(ChangingCamera).FullName}.{nameof(Prefix)}:\n{e}");

                return(true);
            }
        }
Пример #5
0
 /// <summary>
 /// Called before SCP-079 switches cameras.
 /// </summary>
 /// <param name="ev">The <see cref="ChangingCameraEventArgs"/> instance.</param>
 public static void OnChangingCamera(ChangingCameraEventArgs ev) => ChangingCamera.InvokeSafely(ev);