using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using KarmaOne.Behaviours; using KarmaOne.NetcodePatcher; using LethalLib.Modules; using Microsoft.CodeAnalysis; using Unity.Netcode; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Controls; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("KarmaOne")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("KarmaOne")] [assembly: AssemblyTitle("KarmaOne")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: NetcodePatchedAssembly] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace KarmaOne { public static class KarmaConfig { public static ConfigEntry Purchasable { get; private set; } public static ConfigEntry Price { get; private set; } public static ConfigEntry SpawnAsScrap { get; private set; } public static ConfigEntry ScrapSpawnWeight { get; private set; } public static ConfigEntry ItemWeight { get; private set; } public static ConfigEntry Damage { get; private set; } public static ConfigEntry UsesPerCharge { get; private set; } public static ConfigEntry ShotCooldown { get; private set; } public static ConfigEntry ChargeTime { get; private set; } public static ConfigEntry FireWindow { get; private set; } public static ConfigEntry OverchargeEnabled { get; private set; } public static ConfigEntry MisfireChance { get; private set; } internal static void Init(ConfigFile cfg) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Expected O, but got Unknown //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Expected O, but got Unknown //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Expected O, but got Unknown //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Expected O, but got Unknown //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Expected O, but got Unknown //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Expected O, but got Unknown //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Expected O, but got Unknown //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Expected O, but got Unknown Purchasable = cfg.Bind("Shop", "Purchasable", true, "If true, the Karma-1 appears in the terminal shop."); Price = cfg.Bind("Shop", "Price", 700, new ConfigDescription("Shop price in credits.", (AcceptableValueBase)(object)new AcceptableValueRange(0, 10000), Array.Empty())); SpawnAsScrap = cfg.Bind("Scrap", "SpawnAsScrap", false, "If true, the Karma-1 can appear as world scrap on moons."); ScrapSpawnWeight = cfg.Bind("Scrap", "ScrapSpawnWeight", 10, new ConfigDescription("Spawn weight when SpawnAsScrap is true. Higher = more common. Vanilla reference: ~10 rare, ~30 uncommon, ~60 common.", (AcceptableValueBase)(object)new AcceptableValueRange(1, 999), Array.Empty())); ItemWeight = cfg.Bind("Item", "ItemWeight", 1.5f, new ConfigDescription("Weight of the Karma-1 in kg. Vanilla reference: shovel = 5.2kg, shotgun = 5.4kg, flashlight = 0.5kg. This value is added on top of the base 1kg all items have in LC's weight system.", (AcceptableValueBase)(object)new AcceptableValueRange(0f, 50f), Array.Empty())); Damage = cfg.Bind("Combat", "Damage", 100, new ConfigDescription("Damage dealt per shot to players and enemies. Players have 100 HP by default, so 100 is a one-shot.", (AcceptableValueBase)(object)new AcceptableValueRange(1, 1000), Array.Empty())); UsesPerCharge = cfg.Bind("Combat", "UsesPerCharge", 2, new ConfigDescription("Number of full shots available per battery charge.", (AcceptableValueBase)(object)new AcceptableValueRange(1, 20), Array.Empty())); ShotCooldown = cfg.Bind("Combat", "ShotCooldown", 5f, new ConfigDescription("Seconds the gun must cool down after firing.", (AcceptableValueBase)(object)new AcceptableValueRange(0.1f, 60f), Array.Empty())); ChargeTime = cfg.Bind("Charging", "ChargeTime", 2f, new ConfigDescription("Seconds of holding [Use] before the scope turns green and the gun enters the fire window.", (AcceptableValueBase)(object)new AcceptableValueRange(0.1f, 30f), Array.Empty())); FireWindow = cfg.Bind("Charging", "FireWindow", 0.9f, new ConfigDescription("Seconds the gun stays in the green fire window after reaching ChargeTime. Only relevant when OverchargeEnabled = true.", (AcceptableValueBase)(object)new AcceptableValueRange(0.1f, 30f), Array.Empty())); OverchargeEnabled = cfg.Bind("Overcharge", "OverchargeEnabled", true, "If true, holding past the fire window causes an overcharge explosion damaging the holder. If false, the gun stays in the fire window indefinitely with no penalty."); MisfireChance = cfg.Bind("Combat", "MisfireChance", 5, new ConfigDescription("1-in-N chance the gun fires when dropped (if it has charge and isn't cooling down). Set to 0 to disable drop misfires entirely. Default is 1-in-5. Vanilla shotgun uses 1-in-20.", (AcceptableValueBase)(object)new AcceptableValueRange(0, 1000), Array.Empty())); } } [BepInPlugin("karmaone.karma1", "KarmaOne", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public const string ModGUID = "karmaone.karma1"; public const string ModName = "KarmaOne"; public const string ModVersion = "1.0.0"; internal static ManualLogSource Log; private readonly Harmony harmony = new Harmony("karmaone.karma1"); private void Awake() { Log = ((BaseUnityPlugin)this).Logger; Log.LogInfo((object)"KarmaOne 1.0.0 loading..."); KarmaConfig.Init(((BaseUnityPlugin)this).Config); AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "moreitems")); if ((Object)(object)val == (Object)null) { Log.LogError((object)"Failed to load asset bundle 'moreitems'. Make sure the 'moreitems' file is next to KarmaOne.dll."); return; } Item val2 = val.LoadAsset("Assets/Karma/KarmaItem.asset"); if ((Object)(object)val2 == (Object)null) { Log.LogError((object)"KarmaItem.asset not found in bundle."); return; } GameObject spawnPrefab = val2.spawnPrefab; if ((Object)(object)spawnPrefab == (Object)null) { Log.LogError((object)"KarmaItem.asset has no spawnPrefab."); return; } if ((Object)(object)spawnPrefab.GetComponent() == (Object)null) { spawnPrefab.AddComponent(); } Utilities.FixMixerGroups(spawnPrefab); NetworkPrefabs.RegisterNetworkPrefab(spawnPrefab); if (KarmaConfig.Purchasable.Value) { TerminalNode val3 = val.LoadAsset("Assets/Karma/KarmaTerminalNode.asset"); Items.RegisterShopItem(val2, (TerminalNode)null, (TerminalNode)null, val3, KarmaConfig.Price.Value); Log.LogInfo((object)$"Karma-1 registered in shop for {KarmaConfig.Price.Value} credits."); } if (KarmaConfig.SpawnAsScrap.Value) { Items.RegisterScrap(val2, KarmaConfig.ScrapSpawnWeight.Value, (LevelTypes)(-1)); Log.LogInfo((object)$"Karma-1 registered as scrap (weight {KarmaConfig.ScrapSpawnWeight.Value})."); } if (!KarmaConfig.Purchasable.Value && !KarmaConfig.SpawnAsScrap.Value) { Log.LogWarning((object)"Karma-1: both Purchasable and SpawnAsScrap are disabled — the item will not appear in game."); } harmony.PatchAll(typeof(Plugin).Assembly); Log.LogInfo((object)"KarmaOne loaded successfully."); } } public static class PluginInfo { public const string PLUGIN_GUID = "KarmaOne"; public const string PLUGIN_NAME = "KarmaOne"; public const string PLUGIN_VERSION = "1.0.0"; } } namespace KarmaOne.Behaviours { public class KarmaBehaviour : GrabbableObject { private readonly string[] sources = new string[8] { "ChargeSFX", "ShootSFX", "TrailSFX", "WarningSFX", "ExplosionSFX", "CooldownSFX", "CoolupSFX", "OnCdShotSFX" }; private Dictionary sourcesDict = new Dictionary(); private readonly string[] ps = new string[4] { "MuzzleFlash", "Trail", "LingeringFire", "MainBlast" }; private Dictionary psDict = new Dictionary(); private Color readyColor = Color32.op_Implicit(new Color32((byte)20, (byte)20, (byte)20, byte.MaxValue)); private Color shootColor = Color32.op_Implicit(new Color32((byte)20, (byte)200, (byte)20, byte.MaxValue)); private Color dangerColor = Color32.op_Implicit(new Color32((byte)200, (byte)20, (byte)20, byte.MaxValue)); private Color unreadyColor = Color32.op_Implicit(new Color32((byte)250, (byte)100, (byte)0, byte.MaxValue)); private bool coolingDown; private bool broken; private bool charging; private bool activated; private bool shotFired; private bool startedRegen; private bool laserToggled; private float cooldown = 5f; private float timeSinceShot; private float maxChargeBeforeShooting = 2f; private float maxChargeBeforeExplode = 2.9f; private float chargeTime; private float energyLostPerShot = 0.5f; private int interval = 10; private GameObject? ScopeChargeTimer; private GameObject? laserLight; private const float TrailSpeed = 80f; private const float TrailSize = 0.18f; private const float TrailLife = 0.25f; public override void Start() { ((GrabbableObject)this).Start(); base.grabbable = true; base.grabbableToEnemies = true; base.itemProperties.weight = 1f + KarmaConfig.ItemWeight.Value / 100f; sourcesDict = GetAllAudioSources(((Component)this).gameObject, "KarmaSFX", sources); psDict = GetAllParticleSystems(((Component)this).gameObject, "KarmaParticles", ps); Transform obj = ((Component)this).gameObject.transform.Find("ScopeChargeTimer"); ScopeChargeTimer = ((obj != null) ? ((Component)obj).gameObject : null); Transform obj2 = ((Component)this).gameObject.transform.Find("laserLight"); laserLight = ((obj2 != null) ? ((Component)obj2).gameObject : null); if (IsLocalPlayerHosting()) { base.insertedBattery.charge = 1f; } energyLostPerShot = 1f / (float)Mathf.Max(1, KarmaConfig.UsesPerCharge.Value); cooldown = KarmaConfig.ShotCooldown.Value; maxChargeBeforeShooting = KarmaConfig.ChargeTime.Value; maxChargeBeforeExplode = KarmaConfig.ChargeTime.Value + KarmaConfig.FireWindow.Value; TuneTrailParticle(); AppendTooltip("Toggle laser: [Q]"); } private void AppendTooltip(string text) { if ((Object)(object)base.itemProperties == (Object)null) { return; } string[] array = base.itemProperties.toolTips ?? new string[0]; string[] array2 = array; for (int i = 0; i < array2.Length; i++) { if (array2[i] == text) { return; } } string[] array3 = new string[array.Length + 1]; array.CopyTo(array3, 0); array3[array.Length] = text; base.itemProperties.toolTips = array3; } public override void OnNetworkSpawn() { ((NetworkBehaviour)this).OnNetworkSpawn(); if (IsLocalPlayerHosting()) { SetCoolingDownClientRpc(coolingDown); SetBrokenClientRpc(broken); } if (!startedRegen) { startedRegen = true; ((MonoBehaviour)this).StartCoroutine(RegenBattery()); } } public override void PocketItem() { ((GrabbableObject)this).PocketItem(); ResetOwnerState(); SetLaserActive(on: false); } public override void EquipItem() { ((GrabbableObject)this).EquipItem(); SetLaserActive(laserToggled); } public override void DiscardItem() { ((GrabbableObject)this).DiscardItem(); ResetOwnerState(); SetLaserActive(on: false); } public override void OnHitGround() { ((GrabbableObject)this).OnHitGround(); ResetOwnerState(); if (!coolingDown && base.insertedBattery.charge > energyLostPerShot && !broken && IsLocalPlayerHosting() && KarmaConfig.MisfireChance.Value > 0 && Random.Range(1, KarmaConfig.MisfireChance.Value + 1) == 1) { ShootServerRpc(); } } public override void ItemActivate(bool used, bool buttonDown) { ((GrabbableObject)this).ItemActivate(used, buttonDown); if ((Object)(object)base.playerHeldBy == (Object)null || base.isPocketed || !base.wasOwnerLastFrame || broken) { return; } if (buttonDown) { if (!coolingDown && base.insertedBattery.charge > energyLostPerShot) { activated = true; } else { PlaySafe("OnCdShotSFX"); } return; } activated = false; if (!shotFired && chargeTime < maxChargeBeforeShooting) { chargeTime = 0f; NotifyStopChargingServerRpc(wasShot: false); } } public override void ChargeBatteries() { ((GrabbableObject)this).ChargeBatteries(); RepairServerRpc(); } public override void Update() { //IL_0192: Unknown result type (might be due to invalid IL or missing references) ((GrabbableObject)this).Update(); UpdateLaserAim(); if (IsLocalOwner() && !base.isPocketed && (Object)(object)base.playerHeldBy != (Object)null) { Keyboard current = Keyboard.current; if (current != null && ((ButtonControl)current.qKey).wasPressedThisFrame) { laserToggled = !laserToggled; SetLaserActive(laserToggled); } } if (broken) { return; } if (coolingDown) { if ((base.wasOwnerLastFrame || IsLocalPlayerHosting()) && FrameCountTick()) { timeSinceShot += Time.deltaTime * (float)interval; if (timeSinceShot > cooldown) { ResetCooldownServerRpc(); } } } else { if (!base.wasOwnerLastFrame || !FrameCountTick()) { return; } if (activated) { NotifyStartChargingServerRpc(); chargeTime += Time.deltaTime * (float)interval; if (KarmaConfig.OverchargeEnabled.Value && chargeTime > maxChargeBeforeExplode) { chargeTime = 0f; activated = false; shotFired = false; if (charging) { NotifyStopChargingServerRpc(wasShot: false); } ExplodeServerRpc(); } else if (KarmaConfig.OverchargeEnabled.Value && chargeTime > maxChargeBeforeShooting && (Object)(object)ScopeChargeTimer != (Object)null && (chargeTime - maxChargeBeforeShooting) / (maxChargeBeforeExplode - maxChargeBeforeShooting) > 0.6f) { SetScopeColor(dangerColor); } } else { bool flag = ((!KarmaConfig.OverchargeEnabled.Value) ? (chargeTime >= maxChargeBeforeShooting) : (chargeTime >= maxChargeBeforeShooting && chargeTime <= maxChargeBeforeExplode)); if (flag && !shotFired) { shotFired = true; ShootServerRpc(); } else if (!flag && !shotFired) { chargeTime = 0f; NotifyStopChargingServerRpc(wasShot: false); } } } } private void ResetOwnerState() { activated = false; shotFired = false; chargeTime = 0f; if (charging) { NotifyStopChargingServerRpc(wasShot: false); } } private void UpdateLaserAim() { //IL_006e: 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_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)laserLight == (Object)null) && !base.isPocketed && laserToggled) { Camera val = base.playerHeldBy?.gameplayCamera; if (!((Object)(object)val == (Object)null)) { int mask = LayerMask.GetMask(new string[4] { "Player", "Enemies", "Room", "Default" }); RaycastHit val2 = default(RaycastHit); Vector3 val3 = ((!Physics.Raycast(((Component)val).transform.position, ((Component)val).transform.forward, ref val2, 200f, mask)) ? (((Component)val).transform.position + ((Component)val).transform.forward * 200f) : ((RaycastHit)(ref val2)).point); laserLight.transform.LookAt(val3); } } } private void TuneTrailParticle() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) if (psDict.TryGetValue("Trail", out ParticleSystem value)) { MainModule main = value.main; ((MainModule)(ref main)).startSpeed = new MinMaxCurve(80f); ((MainModule)(ref main)).startSize = new MinMaxCurve(0.18f); ((MainModule)(ref main)).startLifetime = new MinMaxCurve(0.25f); } } private IEnumerator RegenBattery() { while (true) { yield return (object)new WaitForSeconds(30f); if (IsLocalPlayerHosting() && base.insertedBattery.charge < 1f) { base.insertedBattery.charge = Mathf.Min(base.insertedBattery.charge + 0.1f, 1f); } } } private bool FrameCountTick() { return Time.frameCount % interval == 0; } private static bool IsLocalPlayerHosting() { if ((Object)(object)NetworkManager.Singleton != (Object)null) { if (!NetworkManager.Singleton.IsHost) { return NetworkManager.Singleton.IsServer; } return true; } return false; } private bool IsLocalOwner() { if ((Object)(object)base.playerHeldBy != (Object)null) { return base.playerHeldBy.playerClientId == GameNetworkManager.Instance?.localPlayerController?.playerClientId; } return false; } private void SetLaserActive(bool on) { if ((Object)(object)laserLight != (Object)null) { laserLight.SetActive(on); } } private void SetScopeColor(Color c) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)ScopeChargeTimer == (Object)null)) { Renderer component = ScopeChargeTimer.GetComponent(); if ((Object)(object)component != (Object)null) { component.material.color = c; } } } private void PlaySafe(string key) { if (sourcesDict.TryGetValue(key, out AudioSource value)) { value.Play(); } } private void PlayDelayedSafe(string key, float delay) { if (sourcesDict.TryGetValue(key, out AudioSource value)) { value.PlayDelayed(delay); } } private void StopSafe(string key) { if (sourcesDict.TryGetValue(key, out AudioSource value)) { value.Stop(); } } private void PlayParticleSafe(string key) { if (psDict.TryGetValue(key, out ParticleSystem value)) { value.Play(); } } private static Dictionary GetAllAudioSources(GameObject root, string containerName, string[] keys) { Dictionary dictionary = new Dictionary(); Transform val = root.transform.Find(containerName); if ((Object)(object)val == (Object)null) { return dictionary; } foreach (string text in keys) { Transform val2 = val.Find(text); if (!((Object)(object)val2 == (Object)null)) { AudioSource component = ((Component)val2).GetComponent(); if ((Object)(object)component != (Object)null) { dictionary[text] = component; } } } return dictionary; } private static Dictionary GetAllParticleSystems(GameObject root, string containerName, string[] keys) { Dictionary dictionary = new Dictionary(); Transform val = root.transform.Find(containerName); if ((Object)(object)val == (Object)null) { return dictionary; } foreach (string text in keys) { Transform val2 = val.Find(text); if (!((Object)(object)val2 == (Object)null)) { ParticleSystem component = ((Component)val2).GetComponent(); if ((Object)(object)component != (Object)null) { dictionary[text] = component; } } } return dictionary; } [ServerRpc(RequireOwnership = false)] public void ShootServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3057004730u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3057004730u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ShootClientRpc(); } } } [ClientRpc] public void ShootClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3959243505u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3959243505u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlaySafe("ShootSFX"); PlayDelayedSafe("TrailSFX", 0.1f); PlayParticleSafe("MuzzleFlash"); PlayParticleSafe("Trail"); if (((NetworkBehaviour)this).IsServer || ((NetworkBehaviour)this).IsHost) { base.insertedBattery.charge = Mathf.Max(0f, base.insertedBattery.charge - energyLostPerShot); } PlayDelayedSafe("CooldownSFX", 0.35f); if (((NetworkBehaviour)this).IsServer || ((NetworkBehaviour)this).IsHost) { SetCoolingDownClientRpc(value: true); } else { SetCoolingDownServerRpc(value: true); } SetScopeColor(unreadyColor); charging = false; chargeTime = 0f; shotFired = false; StopSafe("ChargeSFX"); if (IsLocalOwner()) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); } if (!IsLocalOwner()) { return; } Camera val3 = base.playerHeldBy?.gameplayCamera; if ((Object)(object)val3 == (Object)null) { return; } Vector3 position = ((Component)val3).transform.position; Vector3 forward = ((Component)val3).transform.forward; int mask = LayerMask.GetMask(new string[3] { "Player", "Enemies", "Room" }); RaycastHit val4 = default(RaycastHit); if (!Physics.Raycast(position, forward, ref val4, float.PositiveInfinity, mask)) { return; } PlayerControllerB component = ((Component)((RaycastHit)(ref val4)).collider).GetComponent(); if ((Object)(object)component != (Object)null && (Object)(object)component != (Object)(object)base.playerHeldBy) { int value = KarmaConfig.Damage.Value; if (((NetworkBehaviour)this).IsServer || ((NetworkBehaviour)this).IsHost) { component.DamagePlayer(value, true, true, (CauseOfDeath)7, 0, false, forward); } else { component.DamagePlayerFromOtherClientServerRpc(value, forward, (int)component.playerClientId); } } EnemyAI component2 = ((Component)((Component)((RaycastHit)(ref val4)).collider).transform.root).GetComponent(); if (component2 != null) { component2.HitEnemy(KarmaConfig.Damage.Value, base.playerHeldBy, true, -1); } } [ServerRpc(RequireOwnership = false)] public void NotifyStartChargingServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3173377209u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3173377209u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; NotifyStartChargingClientRpc(); } } } [ClientRpc] public void NotifyStartChargingClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4101819740u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4101819740u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (!charging) { charging = true; PlaySafe("ChargeSFX"); } if (chargeTime > maxChargeBeforeShooting) { SetScopeColor(shootColor); } } } [ServerRpc(RequireOwnership = false)] public void NotifyStopChargingServerRpc(bool wasShot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(390940820u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref wasShot, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 390940820u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; NotifyStopChargingClientRpc(wasShot); } } } [ClientRpc] public void NotifyStopChargingClientRpc(bool wasShot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2651812308u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref wasShot, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2651812308u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (charging) { charging = false; chargeTime = 0f; StopSafe("ChargeSFX"); if (!wasShot) { SetScopeColor(readyColor); } } } [ServerRpc(RequireOwnership = false)] public void ResetCooldownServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3562104048u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3562104048u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ResetCooldownClientRpc(); } } } [ClientRpc] public void ResetCooldownClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3702522798u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3702522798u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; timeSinceShot = 0f; if (((NetworkBehaviour)this).IsServer || ((NetworkBehaviour)this).IsHost) { SetCoolingDownClientRpc(value: false); } else { SetCoolingDownServerRpc(value: false); } PlaySafe("CoolupSFX"); SetScopeColor(readyColor); } } [ServerRpc(RequireOwnership = false)] public void ExplodeServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2234755725u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2234755725u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ExplodeClientRpc(); } } } [ClientRpc] public void ExplodeClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3815608759u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3815608759u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayParticleSafe("LingeringFire"); PlayParticleSafe("MainBlast"); PlaySafe("ExplosionSFX"); charging = false; chargeTime = 0f; StopSafe("ChargeSFX"); SetScopeColor(readyColor); activated = false; shotFired = false; if (((NetworkBehaviour)this).IsServer || ((NetworkBehaviour)this).IsHost) { base.insertedBattery.charge = 0f; } if ((Object)(object)base.playerHeldBy != (Object)null) { int value = KarmaConfig.Damage.Value; if (((NetworkBehaviour)this).IsServer || ((NetworkBehaviour)this).IsHost) { base.playerHeldBy.DamagePlayer(value, true, true, (CauseOfDeath)3, 0, false, Vector3.up); } else if (IsLocalOwner()) { base.playerHeldBy.DamagePlayerFromOtherClientServerRpc(value, Vector3.up, (int)base.playerHeldBy.playerClientId); } } if (((NetworkBehaviour)this).IsServer || ((NetworkBehaviour)this).IsHost) { SetCoolingDownClientRpc(value: true); } else { SetCoolingDownServerRpc(value: true); } } [ServerRpc(RequireOwnership = false)] public void RepairServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2374597506u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2374597506u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetBrokenServerRpc(value: false); RepairClientRpc(); } } } [ClientRpc] public void RepairClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1368960985u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1368960985u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetScopeColor(coolingDown ? unreadyColor : readyColor); } } } [ServerRpc(RequireOwnership = false)] public void SetCoolingDownServerRpc(bool value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1947983455u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref value, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1947983455u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetCoolingDownClientRpc(value); } } } [ClientRpc] public void SetCoolingDownClientRpc(bool value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1318879723u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref value, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1318879723u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; coolingDown = value; } } } [ServerRpc(RequireOwnership = false)] public void SetBrokenServerRpc(bool value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1759257859u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref value, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1759257859u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetBrokenClientRpc(value); } } } [ClientRpc] public void SetBrokenClientRpc(bool value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1854064234u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref value, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1854064234u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; broken = value; } } } protected override void __initializeVariables() { ((GrabbableObject)this).__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Expected O, but got Unknown //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Expected O, but got Unknown //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Expected O, but got Unknown //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Expected O, but got Unknown //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Expected O, but got Unknown //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Expected O, but got Unknown //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Expected O, but got Unknown //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Expected O, but got Unknown //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(3057004730u, new RpcReceiveHandler(__rpc_handler_3057004730), "ShootServerRpc"); ((NetworkBehaviour)this).__registerRpc(3959243505u, new RpcReceiveHandler(__rpc_handler_3959243505), "ShootClientRpc"); ((NetworkBehaviour)this).__registerRpc(3173377209u, new RpcReceiveHandler(__rpc_handler_3173377209), "NotifyStartChargingServerRpc"); ((NetworkBehaviour)this).__registerRpc(4101819740u, new RpcReceiveHandler(__rpc_handler_4101819740), "NotifyStartChargingClientRpc"); ((NetworkBehaviour)this).__registerRpc(390940820u, new RpcReceiveHandler(__rpc_handler_390940820), "NotifyStopChargingServerRpc"); ((NetworkBehaviour)this).__registerRpc(2651812308u, new RpcReceiveHandler(__rpc_handler_2651812308), "NotifyStopChargingClientRpc"); ((NetworkBehaviour)this).__registerRpc(3562104048u, new RpcReceiveHandler(__rpc_handler_3562104048), "ResetCooldownServerRpc"); ((NetworkBehaviour)this).__registerRpc(3702522798u, new RpcReceiveHandler(__rpc_handler_3702522798), "ResetCooldownClientRpc"); ((NetworkBehaviour)this).__registerRpc(2234755725u, new RpcReceiveHandler(__rpc_handler_2234755725), "ExplodeServerRpc"); ((NetworkBehaviour)this).__registerRpc(3815608759u, new RpcReceiveHandler(__rpc_handler_3815608759), "ExplodeClientRpc"); ((NetworkBehaviour)this).__registerRpc(2374597506u, new RpcReceiveHandler(__rpc_handler_2374597506), "RepairServerRpc"); ((NetworkBehaviour)this).__registerRpc(1368960985u, new RpcReceiveHandler(__rpc_handler_1368960985), "RepairClientRpc"); ((NetworkBehaviour)this).__registerRpc(1947983455u, new RpcReceiveHandler(__rpc_handler_1947983455), "SetCoolingDownServerRpc"); ((NetworkBehaviour)this).__registerRpc(1318879723u, new RpcReceiveHandler(__rpc_handler_1318879723), "SetCoolingDownClientRpc"); ((NetworkBehaviour)this).__registerRpc(1759257859u, new RpcReceiveHandler(__rpc_handler_1759257859), "SetBrokenServerRpc"); ((NetworkBehaviour)this).__registerRpc(1854064234u, new RpcReceiveHandler(__rpc_handler_1854064234), "SetBrokenClientRpc"); ((GrabbableObject)this).__initializeRpcs(); } private static void __rpc_handler_3057004730(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).ShootServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3959243505(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).ShootClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3173377209(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).NotifyStartChargingServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4101819740(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).NotifyStartChargingClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_390940820(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool wasShot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref wasShot, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).NotifyStopChargingServerRpc(wasShot); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2651812308(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool wasShot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref wasShot, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).NotifyStopChargingClientRpc(wasShot); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3562104048(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).ResetCooldownServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3702522798(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).ResetCooldownClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2234755725(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).ExplodeServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3815608759(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).ExplodeClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2374597506(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).RepairServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1368960985(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).RepairClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1947983455(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool coolingDownServerRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref coolingDownServerRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).SetCoolingDownServerRpc(coolingDownServerRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1318879723(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool coolingDownClientRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref coolingDownClientRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).SetCoolingDownClientRpc(coolingDownClientRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1759257859(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool brokenServerRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref brokenServerRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).SetBrokenServerRpc(brokenServerRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1854064234(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool brokenClientRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref brokenClientRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((KarmaBehaviour)(object)target).SetBrokenClientRpc(brokenClientRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "KarmaBehaviour"; } } } namespace __GEN { internal class NetworkVariableSerializationHelper { [RuntimeInitializeOnLoadMethod] internal static void InitializeSerialization() { } } } namespace KarmaOne.NetcodePatcher { [AttributeUsage(AttributeTargets.Module)] internal class NetcodePatchedAssemblyAttribute : Attribute { } }