using System; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using BepInEx; using Receiver2; using Receiver2ModdingKit; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyVersion("0.0.0.0")] namespace SR25_plugin { [BepInPlugin("CiarenceW.SR-25", "SR-25", "1.0.0")] public class Loader : BaseUnityPlugin { private void Awake() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin SR-25 is loaded!"); } } public class SR25_Script : ModGunScript { private float hammer_accel = -5000f; private float m_charging_handle_amount; public Transform dust_cover_component; private RotateMover dust_cover = new RotateMover(); private bool dust_cover_opened; private Spring pose_ads_spring = new Spring(0f, 0f, 90f, 1E-06f); public Transform pose_backup; public Transform pose_scope; private Transform pose_ads; public GameObject linza; public Camera scopeCam; private bool player_scoped = true; private ReceiverCoreScript RCS; private float lastTriggerAmount; private readonly float[] slide_push_hammer_curve = new float[4] { 0f, 0f, 0.35f, 1f }; public override void InitializeGun() { //IL_003b: Unknown result type (might be due to invalid IL or missing references) RCS = ReceiverCoreScript.Instance(); ((GunScript)this).pooled_muzzle_flash = ((GunScript)RCS.generic_prefabs.First((InventoryItem it) => it is GunScript && (int)((GunScript)it).gun_model == 6)).pooled_muzzle_flash; ((InventoryItem)RCS.GetMagazinePrefab("Ciarencew.SR25", (MagazineClass)0)).glint_renderer.material = ((InventoryItem)RCS.GetMagazinePrefab("wolfire.glock_17", (MagazineClass)1)).glint_renderer.material; ((InventoryItem)RCS.GetMagazinePrefab("Ciarencew.SR25", (MagazineClass)1)).glint_renderer.material = ((InventoryItem)RCS.GetMagazinePrefab("wolfire.glock_17", (MagazineClass)1)).glint_renderer.material; } public override void AwakeGun() { //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) ((SimpleMover)((GunScript)this).hammer).amount = 1f; ((SimpleMover)dust_cover).transform = dust_cover_component; pose_ads = ((Component)this).transform.Find("pose_aim_down_sights"); dust_cover.rotations[0] = ((Component)this).transform.Find("dust_cover_closed").localRotation; dust_cover.rotations[1] = ((Component)this).transform.Find("dust_cover_opened").localRotation; ((Component)scopeCam).gameObject.SetActive(true); } public override void UpdateGun() { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) pose_ads_spring.Update(Time.deltaTime); if ((Object)(object)LocalAimHandler.player_instance != (Object)null) { ((Component)scopeCam).gameObject.GetComponent().material = ((Component)LocalAimHandler.player_instance.main_camera).GetComponent().material; } pose_ads.localRotation = Quaternion.LerpUnclamped(pose_scope.localRotation, pose_backup.localRotation, pose_ads_spring.state); pose_ads.localPosition = Vector3.LerpUnclamped(pose_scope.localPosition, pose_backup.localPosition, pose_ads_spring.state); if (LocalAimHandler.player_instance.IsHoldingGun) { if (((ModGunScript)this).player_input.GetButtonDown(14) && LocalAimHandler.player_instance.IsAiming()) { ToggleActiveSight(); } ((Component)scopeCam).gameObject.SetActive(true); linza.SetActive(true); } else { ((Component)scopeCam).gameObject.SetActive(false); linza.SetActive(false); } ((SimpleMover)((GunScript)this).hammer).asleep = true; ((SimpleMover)((GunScript)this).hammer).accel = hammer_accel; if (((SimpleMover)((GunScript)this).slide).amount > 0f && ((ModGunScript)this)._hammer_state != 3) { ((SimpleMover)((GunScript)this).hammer).amount = Mathf.Max(((SimpleMover)((GunScript)this).hammer).amount, ModGunScript.InterpCurve(ref slide_push_hammer_curve, ((SimpleMover)((GunScript)this).slide).amount)); } if (((SimpleMover)((GunScript)this).hammer).amount == 1f) { ((ModGunScript)this)._hammer_state = 3; } if (((GunScript)this).IsSafetyOn()) { ((GunScript)this).trigger.amount = Mathf.Min(((GunScript)this).trigger.amount, 0.1f); ((GunScript)this).trigger.UpdateDisplay(); } if (((SimpleMover)((GunScript)this).hammer).amount == 0f && ((ModGunScript)this)._hammer_state == 2) { ((ModGunScript)this).TryFireBullet(1f, (Action)((GunScript)this).FireBullet); ((ModGunScript)this)._hammer_state = 0; ((ModGunScript)this)._disconnector_needs_reset = true; } if (((SimpleMover)((GunScript)this).slide).amount > 0f) { ((ModGunScript)this)._disconnector_needs_reset = true; } if (((GunScript)this).trigger.amount == 0f && ((SimpleMover)((GunScript)this).slide).amount == 0f) { if (lastTriggerAmount > 0f && ((ModGunScript)this)._disconnector_needs_reset) { AudioManager.PlayOneShotAttached("event:/guns/sr25/disconnector", ((Component)((GunScript)this).trigger.transform).gameObject); } ((ModGunScript)this)._disconnector_needs_reset = false; } if (((SimpleMover)((GunScript)this).slide_stop).amount == 1f) { ((SimpleMover)((GunScript)this).slide_stop).asleep = true; } if (((SimpleMover)((GunScript)this).slide).amount == 0f && ((ModGunScript)this)._hammer_state == 3 && !((ModGunScript)this)._disconnector_needs_reset) { ((SimpleMover)((GunScript)this).hammer).amount = Mathf.MoveTowards(((SimpleMover)((GunScript)this).hammer).amount, ((ModGunScript)this)._hammer_cocked_val, Time.deltaTime * Time.timeScale * 50f); if (((SimpleMover)((GunScript)this).hammer).amount == ((ModGunScript)this)._hammer_cocked_val) { ((ModGunScript)this)._hammer_state = 2; } } if (((ModGunScript)this)._hammer_state != 3 && ((((GunScript)this).trigger.amount == 1f && !((ModGunScript)this)._disconnector_needs_reset && ((SimpleMover)((GunScript)this).slide).amount == 0f) || ((SimpleMover)((GunScript)this).hammer).amount != ((ModGunScript)this)._hammer_cocked_val)) { ((SimpleMover)((GunScript)this).hammer).asleep = false; } ((SimpleMover)((GunScript)this).hammer).TimeStep(Time.deltaTime); if (((ModGunScript)this).player_input.GetButton(10) || ((ModGunScript)this).player_input.GetButtonUp(10)) { m_charging_handle_amount = Mathf.MoveTowards(m_charging_handle_amount, ((SimpleMover)((GunScript)this).slide).amount, Time.deltaTime * 20f / Time.timeScale); } else { m_charging_handle_amount = Mathf.MoveTowards(m_charging_handle_amount, 0f, Time.deltaTime * 50f); } ((GunScript)this).ApplyTransform("charging_handle", m_charging_handle_amount, ((Component)this).transform.Find("charging_handle")); ((GunScript)this).ApplyTransform("charging_handle_latch", m_charging_handle_amount, ((Component)this).transform.Find("charging_handle/charging_handle_latch")); if ((!LocalAimHandler.player_instance.IsAiming() && ((ModGunScript)this).player_input.GetButtonDown(14)) || (!dust_cover_opened && ((SimpleMover)((GunScript)this).slide).amount > 0.03f)) { ToggleDustCover(); } ((SimpleMover)dust_cover).UpdateDisplay(); ((SimpleMover)dust_cover).TimeStep(Time.deltaTime); ((SimpleMover)((GunScript)this).hammer).UpdateDisplay(); ((SimpleMover)((GunScript)this).slide_stop).UpdateDisplay(); ((ModGunScript)this).UpdateAnimatedComponents(); lastTriggerAmount = ((GunScript)this).trigger.amount; } private void ToggleActiveSight() { if (player_scoped) { AudioManager.PlayOneShotAttached("event:/guns/sr25/raise", ((Component)((Component)this).transform).gameObject); pose_ads_spring.target_state = 1f; player_scoped = false; } else { AudioManager.PlayOneShotAttached("event:/guns/sr25/lower", ((Component)((Component)this).transform).gameObject); pose_ads_spring.target_state = 0f; player_scoped = true; } } private void ToggleDustCover() { ((SimpleMover)dust_cover).asleep = false; if (((SimpleMover)dust_cover).target_amount == 1f && ((SimpleMover)((GunScript)this).slide).amount <= 0.03f) { ((SimpleMover)dust_cover).target_amount = 0f; ((SimpleMover)dust_cover).accel = -1f; ((SimpleMover)dust_cover).vel = -10f; AudioManager.PlayOneShotAttached(((GunScript)this).sound_cylinder_close, ((Component)((SimpleMover)dust_cover).transform).gameObject); dust_cover_opened = false; } else if (!dust_cover_opened) { ((SimpleMover)dust_cover).target_amount = 1f; ((SimpleMover)dust_cover).accel = 1f; ((SimpleMover)dust_cover).vel = 10f; AudioManager.PlayOneShotAttached(((GunScript)this).sound_cylinder_open, ((Component)((SimpleMover)dust_cover).transform).gameObject); dust_cover_opened = true; } } } } namespace SR25BankList.FMODConsts { public static class FMODConsts { public const string guns_sr25_shot = "event:/guns/sr25/shot"; public const string guns_sr25_insert_mag = "event:/guns/sr25/insert_mag"; public const string guns_sr25_dry_fire = "event:/guns/sr25/dry_fire"; public const string guns_sr25_dust_cover_close = "event:/guns/sr25/dust_cover_close"; public const string guns_sr25_disconnector = "event:/guns/sr25/disconnector"; public const string guns_sr25_trigger_release = "event:/guns/sr25/trigger_release"; public const string guns_sr25_lower = "event:/guns/sr25/lower"; public const string guns_sr25_dust_cover_open = "event:/guns/sr25/dust_cover_open"; public const string guns_sr25_eject_mag = "event:/guns/sr25/eject_mag"; public const string guns_sr25_safety_off = "event:/guns/sr25/safety_off"; public const string guns_sr25_slide_released = "event:/guns/sr25/slide_released"; public const string guns_sr25_safety_on = "event:/guns/sr25/safety_on"; public const string guns_sr25_trigger_pull = "event:/guns/sr25/trigger_pull"; public const string guns_sr25_press_check_start = "event:/guns/sr25/press_check_start"; public const string guns_sr25_slide_back_partial = "event:/guns/sr25/slide_back_partial"; public const string guns_sr25_slide_back = "event:/guns/sr25/slide_back"; public const string guns_sr25_press_check_end = "event:/guns/sr25/press_check_end"; public const string guns_sr25_start_insert_mag = "event:/guns/sr25/start_insert_mag"; public const string guns_sr25_raise = "event:/guns/sr25/raise"; } }