using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Cryptography; using System.Security.Permissions; using System.Text; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalMin; using Microsoft.CodeAnalysis; using ScandalsTweaks.Patches; using ScandalsTweaks.Scripts; using ScandalsTweaks.Utils; using Unity.Netcode; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.Rendering.HighDefinition; using VoxxWeatherPlugin.Patches; using VoxxWeatherPlugin.Utils; using VoxxWeatherPlugin.Weathers; using Woecust.ImmersiveVisor; using scandal.v55cruiser.NetcodePatcher; using v55Cruiser; using v55Cruiser.Compatibility; using v55Cruiser.Networking; using v55Cruiser.Patches; using v55Cruiser.Scripts; using v55Cruiser.Utils; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("ImmersiveVisor")] [assembly: IgnoresAccessChecksTo("NoteBoxz.LethalMin")] [assembly: IgnoresAccessChecksTo("scandal.scandalstweaks")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")] [assembly: IgnoresAccessChecksTo("voxx.LethalElementsPlugin")] [assembly: AssemblyCompany("scandal.v55cruiser")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.4.1.0")] [assembly: AssemblyInformationalVersion("1.4.1+9ca65b399502caf978de31f57e0dfb9b3cbfb6f1")] [assembly: AssemblyProduct("v55Cruiser")] [assembly: AssemblyTitle("scandal.v55cruiser")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.4.1.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; } } } public class v55VehicleCollisionTrigger : MonoBehaviour { public v55VehicleController mainScript = null; public BoxCollider insideTruckNavMeshBounds = null; public EnemyAI[] enemiesLastHit = null; private float timeSinceHittingPlayer; private float timeSinceHittingEnemy; private int enemyIndex; public void Start() { enemiesLastHit = (EnemyAI[])(object)new EnemyAI[3]; } public void OnTriggerEnter(Collider other) { //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_044e: Unknown result type (might be due to invalid IL or missing references) //IL_0453: Unknown result type (might be due to invalid IL or missing references) //IL_0458: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_04b4: Unknown result type (might be due to invalid IL or missing references) //IL_04c5: Unknown result type (might be due to invalid IL or missing references) //IL_04d0: Unknown result type (might be due to invalid IL or missing references) //IL_04d5: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_0510: Unknown result type (might be due to invalid IL or missing references) //IL_0515: Unknown result type (might be due to invalid IL or missing references) //IL_0526: Unknown result type (might be due to invalid IL or missing references) //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_055a: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_0639: Unknown result type (might be due to invalid IL or missing references) //IL_063b: Unknown result type (might be due to invalid IL or missing references) //IL_064e: Expected I4, but got Unknown //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_02fc: Unknown result type (might be due to invalid IL or missing references) //IL_065f: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Unknown result type (might be due to invalid IL or missing references) //IL_069a: Unknown result type (might be due to invalid IL or missing references) //IL_06a2: Unknown result type (might be due to invalid IL or missing references) //IL_06cb: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Unknown result type (might be due to invalid IL or missing references) //IL_06d8: Unknown result type (might be due to invalid IL or missing references) if (!((VehicleController)mainScript).hasBeenSpawned || (((VehicleController)mainScript).magnetedToShip && ((VehicleController)mainScript).magnetTime > 0.8f)) { return; } if (((Component)other).CompareTag("Player")) { PlayerControllerB val = default(PlayerControllerB); if (!((Component)other).TryGetComponent(ref val) || Time.realtimeSinceStartup - timeSinceHittingPlayer < 0.25f) { return; } Transform physicsTransform = ((VehicleController)mainScript).physicsRegion.physicsTransform; if ((Object)(object)val.overridePhysicsParent == (Object)(object)physicsTransform) { return; } float num = ((Vector3)(ref ((VehicleController)mainScript).averageVelocity)).magnitude; if (num < 2f) { return; } Vector3 val2 = ((Component)val).transform.position - ((VehicleController)mainScript).mainRigidbody.position; float num2 = Vector3.Angle(Vector3.Normalize(((VehicleController)mainScript).averageVelocity * 1000f), Vector3.Normalize(val2 * 1000f)); if (num2 > 70f) { return; } if (num2 < 30f && mainScript.wheelRPM > 400f) { num += 6f; } if ((((Component)val.gameplayCamera).transform.position - ((VehicleController)mainScript).mainRigidbody.position).y < -0.1f) { num *= 2f; } timeSinceHittingPlayer = Time.realtimeSinceStartup; Vector3 val3 = Vector3.ClampMagnitude(((VehicleController)mainScript).averageVelocity, 40f); if ((Object)(object)val == (Object)(object)GameNetworkManager.Instance.localPlayerController) { if ((Object)(object)physicsTransform == (Object)(object)GameNetworkManager.Instance.localPlayerController.physicsParent) { return; } if (num > 20f) { GameNetworkManager.Instance.localPlayerController.KillPlayer(val3, true, (CauseOfDeath)8, 0, default(Vector3), false); } else { int num3 = 0; if (num > 15f) { num3 = 80; } else if (num > 12f) { num3 = 60; } else if (num > 8f) { num3 = 40; } if (num3 > 0) { GameNetworkManager.Instance.localPlayerController.DamagePlayer(num3, true, true, (CauseOfDeath)8, 0, false, val3); } } if (!GameNetworkManager.Instance.localPlayerController.isPlayerDead && ((Vector3)(ref GameNetworkManager.Instance.localPlayerController.externalForceAutoFade)).sqrMagnitude < ((Vector3)(ref ((VehicleController)mainScript).averageVelocity)).sqrMagnitude) { GameNetworkManager.Instance.localPlayerController.externalForceAutoFade = ((VehicleController)mainScript).averageVelocity; } } else if (((NetworkBehaviour)mainScript).IsOwner && ((Vector3)(ref ((VehicleController)mainScript).averageVelocity)).magnitude > 1.8f) { mainScript.CarReactToObstacle(((VehicleController)mainScript).averageVelocity, ((Component)val).transform.position, ((VehicleController)mainScript).averageVelocity, (CarObstacleType)0); } } else { EnemyAICollisionDetect val4 = default(EnemyAICollisionDetect); if (!((Component)other).gameObject.CompareTag("Enemy") || Time.realtimeSinceStartup - timeSinceHittingEnemy < 0.25f || !((Component)other).TryGetComponent(ref val4) || (Object)(object)val4.mainScript == (Object)null || val4.mainScript.isEnemyDead) { return; } if (val4.mainScript is SandWormAI) { timeSinceHittingEnemy = Time.realtimeSinceStartup; ((VehicleController)mainScript).mainRigidbody.AddExplosionForce(((VehicleController)mainScript).mainRigidbody.mass * 100f, ((Component)mainScript).transform.position + ((Component)mainScript).transform.forward + Vector3.up * 1.5f, 12f, 3f, (ForceMode)1); return; } EnemyAI obj = val4.mainScript; FlowerSnakeEnemy val5 = (FlowerSnakeEnemy)(object)((obj is FlowerSnakeEnemy) ? obj : null); if ((val5 != null && Object.op_Implicit((Object)(object)val5.clingingToPlayer)) || Vector3.Angle(((VehicleController)mainScript).averageVelocity, ((Component)val4.mainScript).transform.position - ((Component)this).transform.position) > 130f || (mainScript.liftGateOpen && (((Collider)insideTruckNavMeshBounds).ClosestPoint(((Component)val4.mainScript).transform.position) == ((Component)val4.mainScript).transform.position || ((Collider)insideTruckNavMeshBounds).ClosestPoint(val4.mainScript.agent.destination) == val4.mainScript.agent.destination))) { return; } bool dealDamage = false; for (int i = 0; i < enemiesLastHit.Length; i++) { if ((Object)(object)enemiesLastHit[i] == (Object)(object)val4.mainScript && (Time.realtimeSinceStartup - timeSinceHittingEnemy < 0.6f || ((Vector3)(ref ((VehicleController)mainScript).averageVelocity)).magnitude < 4f)) { dealDamage = true; } } timeSinceHittingEnemy = Time.realtimeSinceStartup; Vector3 position = ((Component)val4).transform.position; bool enemyDamageByCar = false; if (!ReactToInvidiualEnemies(val4, out enemyDamageByCar, position, dealDamage)) { NavSizeLimit sizeLimit = val4.mainScript.enemyType.SizeLimit; NavSizeLimit val6 = sizeLimit; switch ((int)val6) { case 0: enemyDamageByCar = mainScript.CarReactToObstacle(((VehicleController)mainScript).averageVelocity, position, ((VehicleController)mainScript).averageVelocity, (CarObstacleType)1, 1f, val4.mainScript, dealDamage); break; case 1: enemyDamageByCar = mainScript.CarReactToObstacle(((VehicleController)mainScript).averageVelocity, position, ((VehicleController)mainScript).averageVelocity, (CarObstacleType)1, 3f, val4.mainScript, dealDamage); break; case 2: enemyDamageByCar = mainScript.CarReactToObstacle(((VehicleController)mainScript).averageVelocity, position, ((VehicleController)mainScript).averageVelocity, (CarObstacleType)1, 2f, val4.mainScript, dealDamage); break; } } if (enemyDamageByCar) { enemyIndex = (enemyIndex + 1) % 3; enemiesLastHit[enemyIndex] = val4.mainScript; return; } for (int j = 0; j < enemiesLastHit.Length; j++) { if ((Object)(object)enemiesLastHit[j] == (Object)(object)val4.mainScript) { enemiesLastHit[j] = null; } } } } public bool ReactToInvidiualEnemies(EnemyAICollisionDetect enemyAIcollision, out bool enemyDamageByCar, Vector3 enemyPos, bool dealDamage) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) enemyDamageByCar = false; if (enemyAIcollision.mainScript is BushWolfEnemy) { enemyDamageByCar = mainScript.CarReactToObstacle(((VehicleController)mainScript).averageVelocity, enemyPos, ((VehicleController)mainScript).averageVelocity, (CarObstacleType)1, 3f, enemyAIcollision.mainScript, dealDamage); return true; } if (enemyAIcollision.mainScript is BaboonBirdAI || enemyAIcollision.mainScript is MaskedPlayerEnemy) { enemyDamageByCar = mainScript.CarReactToObstacle(((VehicleController)mainScript).averageVelocity, enemyPos, ((VehicleController)mainScript).averageVelocity, (CarObstacleType)1, 2f, enemyAIcollision.mainScript, dealDamage); return true; } return false; } } public class v55VehicleController : VehicleController { [Header("Gimmicks/Variety")] public v55InteriorType LHDInterior = null; public v55InteriorType RHDInterior = null; public v55InteriorType currentInterior = null; public Transform v55HealthMeter = null; public Transform v56HealthMeter = null; public GameObject v55EngineBay = null; public GameObject v56EngineBay = null; public int interiorType; public bool isInteriorRHD; [Header("Pre-V55 Beta")] public MeshFilter mainBodyAltMeshFilter = null; public MeshFilter mainBodyAltLODMeshFilter = null; public MeshFilter mainBodyMeshFilter = null; public MeshFilter mainBodyLOD1MeshFilter = null; public MeshFilter mainBodyLOD2MeshFilter = null; [Header("Physics")] public List wheels = null; public v55VehicleCollisionTrigger collisionTrigger = null; public Rigidbody playerPhysicsBody = null; public WheelCollider backRightWheel = null; public WheelCollider centerRightWheel = null; public WheelCollider backLeftWheel = null; public WheelCollider frontRightWheel = null; public WheelCollider frontLeftWheel = null; public WheelCollider centerFrontWheel = null; private WheelHit[] wheelHits = (WheelHit[])(object)new WheelHit[4]; public Vector3 previousVehiclePosition; public Quaternion previousVehicleRotation; public bool inBetaMode; public float tyreSteeringAngle; public float steeringAngle; public float currentMotorTorque; public float currentBrakeTorque = 2000f; public float maxBrakingTorque = 2000f; public float forwardWheelSpeed; public float reverseWheelSpeed; public float wheelsRPM; public float wheelRPM; public float frontWheelRPM; public float backWheelRPM; public bool backWheelsGrounded; public bool allWheelsAirborne; public float forwardsSlip; public float sidewaysSlip; public bool hasDeliveredVehicle; [Header("Networking/Player")] public v55PhysicsRegion vehicleZone = null; public v55PlayerZone vehicleStorageZone = null; public Collider vehicleBounds = null; public Collider storageCompartment = null; public PlayerControllerB lastDriver = null; public PlayerControllerB playerWhoShifted = null; public Vector3 playerPositionOffset; public Vector3 seatNodePositionOffset; public Vector2 syncedMoveInputVector; public float syncedPlayerSteeringAnim; public float syncedWheelRotation; public float syncedSteeringInput; public float syncedFrontWheelRPM; public float syncedBackWheelRPM; public float syncedWheelRPM; public float syncedEngineRPM; public float syncedMotorTorque; public float syncedBrakeTorque; public int syncedCarHP; public bool syncedDrivePedalPressed; public bool syncedBrakePedalPressed; public bool forwardSlipping; public bool sidewaySlipping; public bool psuedoSlipping; public float tyreStress; public bool wheelSlipping; public float syncCarEffectsInterval; public float syncWheelTorqueInterval; public float syncCarDrivetrainInterval; public bool canDestroyTrees; public bool preBetaMode; private float syncedSongTime; private string STEERING_WHEEL_SPEED = "steeringWheelTurnSpeed"; private string ANIMATION_SPEED = "animationSpeed"; private string IGNITION_ANIM = "SAIgnition_Anim"; private string CAR_ANIM = "SA_CarAnim"; private string JUMP_WHILE_IN_CAR = "SA_JumpInCar"; private string CAR_MOTION_TIME = "SA_CarMotionTime"; [Header("VFX")] public InteractTrigger pushTruckTrigger = null; public Collider[] weatherEffectBlockers = null; public ParticleSystem frontTireSparks = null; public AnimationCurve engineAudio1Curve = null; public AnimationCurve engineAudio2Curve = null; public GameObject destroyedTruckMeshAlt = null; public GameObject windshieldMesh = null; public GameObject carKeyInHand = null; public MeshRenderer radarMapIcon = null; public MeshRenderer radarMapDestroyedIcon = null; public InteractTrigger startIgnitionTrigger = null; public InteractTrigger stopIgnitionTrigger = null; public Animator ignitionAnimator = null; public GameObject carKeyContainer = null; public Animator verticalColumnAnimator = null; public Animator ejectorButtonAnimator = null; public GameObject ejectorButtonContainer = null; public Transform ignitionKeyPosition = null; private Transform leftHandServerItemTarget = null; public MeshRenderer frontLeftDoorMesh = null; public MeshRenderer frontRightDoorMesh = null; public MeshRenderer steeringWheelMesh = null; public Material destroyedTruckMaterial = null; public Material greyLightOffMat = null; public Material redLightOffMat = null; private Vector3 ignitionKeyScale = Vector3.one; private Vector3 LHD_Pos_Local = new Vector3(0.0489f, 0.1371f, -0.1566f); private Vector3 LHD_Pos_Server = new Vector3(0.0366f, 0.1023f, -0.1088f); private Vector3 LHD_Rot_Local = new Vector3(-3.446f, 3.193f, 172.642f); private Vector3 LHD_Rot_Server = new Vector3(-191.643f, 174.051f, -7.768005f); private Vector3 RHD_Pos_Local = new Vector3(-0.01708288f, 0.1665026f, -0.1157278f); private Vector3 RHD_Pos_Server = new Vector3(-0.0194879f, 0.1340649f, -0.1071167f); private Vector3 RHD_Rot_Local = new Vector3(21.592f, -11.63f, -158.578f); private Vector3 RHD_Rot_Server = new Vector3(-9.158f, -18.16f, -162.445f); public bool isCabLightOn; public bool liftGateOpen; public bool disableAnimations; public bool inIgnitionAnimation; public float playerSteeringWheelAnimFloat; public float ignitionRotSpeed = 45f; [Header("Destruction")] public GameObject[] disableOnDestroy = null; public GameObject mainBodyContainer = null; public GameObject hoodDoorContainer = null; [Header("Audio")] public AudioSource carKeyAudio = null; public AudioSource ejectorButtonAudio = null; public AudioSource reverseWhineAudio = null; public AudioSource verticalColumnAudio = null; public AudioClip dashboardButton = null; public AudioClip engineRev1 = null; public AudioClip revEngineStart1 = null; public AudioClip radio_BabyFace = null; public float timeLastSyncedRadio; public float radioPingTimestamp; public override void OnNetworkSpawn() { ((NetworkBehaviour)this).OnNetworkSpawn(); if (!((NetworkBehaviour)this).IsServer || StartOfRound.Instance.inShipPhase) { return; } int num = 0; bool value = UserConfig.PostBeta.Value; bool noTree = UserConfig.NoTreeDestruction.Value; bool value2 = UserConfig.BabyFaceRadio.Value; if (!value) { if (UserConfig.RightHandedWheel.Value) { num = new Random(StartOfRound.Instance.randomMapSeed).Next(0, 2); } preBetaMode = false; noTree = false; } SetAndSyncCruiserDataRpc(num, value, noTree, value2); } [Rpc(/*Could not decode attribute arguments.*/)] public void SetAndSyncCruiserDataRpc(int interiorType, bool postBetaMode, bool noTree, bool babyFace) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_0111: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3603618885u, val2, val, (SendTo)6, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, interiorType); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref postBetaMode, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref noTree, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref babyFace, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 3603618885u, val2, val, (SendTo)6, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetInteriorType(interiorType); SetPostBetaMode(postBetaMode); canDestroyTrees = !noTree; SetBabyFace(babyFace); base.hasBeenSpawned = true; } } } public void SetInteriorType(int interiorType) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03e6: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0474: Unknown result type (might be due to invalid IL or missing references) switch (interiorType) { case 0: currentInterior = LHDInterior; isInteriorRHD = false; ((Component)RHDInterior).gameObject.SetActive(false); ((Component)ejectorButtonAudio).transform.localPosition = new Vector3(-0.325f, ((Component)ejectorButtonAudio).transform.localPosition.y, ((Component)ejectorButtonAudio).transform.localPosition.z); ((Component)base.steeringWheelAudio).transform.localPosition = new Vector3(-0.956f, ((Component)base.steeringWheelAudio).transform.localPosition.y, ((Component)base.steeringWheelAudio).transform.localPosition.z); ((Component)carKeyAudio).transform.localPosition = new Vector3(-0.5525f, ((Component)carKeyAudio).transform.localPosition.y, ((Component)carKeyAudio).transform.localPosition.z); ((Component)verticalColumnAudio).transform.localPosition = new Vector3(-1.4215f, ((Component)verticalColumnAudio).transform.localPosition.y, ((Component)verticalColumnAudio).transform.localPosition.z); ((Component)base.springAudio).transform.localPosition = new Vector3(-1f, ((Component)base.springAudio).transform.localPosition.y, ((Component)base.springAudio).transform.localPosition.z); ((Component)ignitionAnimator).transform.localPosition = new Vector3(-0.5525247f, ((Component)ignitionAnimator).transform.localPosition.y, ((Component)ignitionAnimator).transform.localPosition.z); ((Component)base.steeringWheelAnimator).transform.localPosition = new Vector3(-0.97943f, 0.18512f, 2.30265f); ((Component)verticalColumnAnimator).transform.localPosition = new Vector3(-1.42f, 0.095f, 2.55f); ejectorButtonContainer.transform.localPosition = new Vector3(-0.3385f, -0.02501607f, 2.508915f); break; case 1: currentInterior = RHDInterior; isInteriorRHD = true; ((Component)LHDInterior).gameObject.SetActive(false); ((Component)ejectorButtonAudio).transform.localPosition = new Vector3(0.325f, ((Component)ejectorButtonAudio).transform.localPosition.y, ((Component)ejectorButtonAudio).transform.localPosition.z); ((Component)base.steeringWheelAudio).transform.localPosition = new Vector3(0.956f, ((Component)base.steeringWheelAudio).transform.localPosition.y, ((Component)base.steeringWheelAudio).transform.localPosition.z); ((Component)carKeyAudio).transform.localPosition = new Vector3(0.5525f, ((Component)carKeyAudio).transform.localPosition.y, ((Component)carKeyAudio).transform.localPosition.z); ((Component)verticalColumnAudio).transform.localPosition = new Vector3(1.4215f, ((Component)verticalColumnAudio).transform.localPosition.y, ((Component)verticalColumnAudio).transform.localPosition.z); ((Component)base.springAudio).transform.localPosition = new Vector3(1f, ((Component)base.springAudio).transform.localPosition.y, ((Component)base.springAudio).transform.localPosition.z); ((Component)ignitionAnimator).transform.localPosition = new Vector3(0.5525247f, ((Component)ignitionAnimator).transform.localPosition.y, ((Component)ignitionAnimator).transform.localPosition.z); ((Component)base.steeringWheelAnimator).transform.localPosition = new Vector3(0.97943f, 0.18512f, 2.30265f); ((Component)verticalColumnAnimator).transform.localPosition = new Vector3(1.42f, 0.095f, 2.55f); ejectorButtonContainer.transform.localPosition = new Vector3(0.3385f, -0.02501607f, 2.508915f); break; } v55InteriorType v55InteriorType = currentInterior; base.driverSeatTrigger = v55InteriorType.driverSeatTrigger; base.passengerSeatTrigger = v55InteriorType.passengerSeatTrigger; base.driverSeatSpringAnimator = v55InteriorType.driverSeatSpringAnimator; base.gearStickAnimator = v55InteriorType.gearStickAnimator; } public void SetPostBetaMode(bool postBetaMode) { //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) inBetaMode = postBetaMode; if (inBetaMode) { JointSpring val = default(JointSpring); val.spring = 2700f; val.damper = 500f; val.targetPosition = 0.5f; JointSpring suspensionSpring = val; base.FrontLeftWheel.suspensionSpring = suspensionSpring; base.FrontRightWheel.suspensionSpring = suspensionSpring; base.BackRightWheel.suspensionSpring = suspensionSpring; base.BackLeftWheel.suspensionSpring = suspensionSpring; base.FrontLeftWheel.sprungMass = 8.976847f; base.FrontRightWheel.sprungMass = 8.976847f; base.BackLeftWheel.sprungMass = 33.38108f; base.BackRightWheel.sprungMass = 33.38108f; } else { JointSpring val = default(JointSpring); val.spring = 6200f; val.damper = 500f; val.targetPosition = 0.8f; JointSpring suspensionSpring = val; base.FrontLeftWheel.suspensionSpring = suspensionSpring; base.FrontRightWheel.suspensionSpring = suspensionSpring; base.BackRightWheel.suspensionSpring = suspensionSpring; base.BackLeftWheel.suspensionSpring = suspensionSpring; base.FrontLeftWheel.sprungMass = 15f; base.FrontRightWheel.sprungMass = 15f; base.BackLeftWheel.sprungMass = 55f; base.BackRightWheel.sprungMass = 55f; } } public void SetBabyFace(bool babyFace) { if (babyFace) { base.radioClips = CollectionExtensions.AddToArray(base.radioClips, radio_BabyFace); } } public void OnEnable() { References.truckController = this; } public void Awake() { //IL_0063: 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_0074: 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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008a: 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) base.ragdollPhysicsBody.interpolation = (RigidbodyInterpolation)1; base.windwiperPhysicsBody1.interpolation = (RigidbodyInterpolation)1; base.windwiperPhysicsBody2.interpolation = (RigidbodyInterpolation)1; playerPhysicsBody.interpolation = (RigidbodyInterpolation)0; playerPhysicsBody.freezeRotation = true; base.backDoorOpen = true; ((VehicleController)this).Awake(); base.physicsRegion.priority = 1; base.syncedPosition = ((Component)this).transform.position; base.syncedRotation = ((Component)this).transform.rotation; seatNodePositionOffset = Vector3.zero; playerPositionOffset = Vector3.zero; SetTruckStats(); } private void SetTruckStats() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) base.gear = (CarGearShift)3; base.MaxEngineRPM = 300f; base.MinEngineRPM = 100f; base.engineIntensityPercentage = 180f; base.EngineTorque = 1100f; base.carAcceleration = 250f; base.idleSpeed = 15f; forwardWheelSpeed = 10000f; reverseWheelSpeed = -10000f; backRightWheel.sprungMass = 32.32506f; centerRightWheel.sprungMass = 21.03854f; backLeftWheel.sprungMass = 30.04548f; frontRightWheel.sprungMass = 9.794424f; frontLeftWheel.sprungMass = 18.06794f; centerFrontWheel.sprungMass = 4.012677f; base.mainRigidbody.drag = 0f; base.mainRigidbody.angularDrag = 0.5f; base.mainRigidbody.automaticCenterOfMass = false; base.mainRigidbody.centerOfMass = new Vector3(0f, -0.5534029f, -0.9468046f); base.mainRigidbody.automaticInertiaTensor = false; base.carMaxSpeed = 60f; base.mainRigidbody.maxLinearVelocity = base.carMaxSpeed; base.mainRigidbody.maxAngularVelocity = 4f; base.brakeSpeed = 2000f; currentBrakeTorque = maxBrakingTorque; base.pushForceMultiplier = 27f; base.pushVerticalOffsetAmount = 1f; base.steeringWheelTurnSpeed = 4f; base.torqueForce = 2.5f; SetWheelFriction(); base.FrontLeftWheel.brakeTorque = maxBrakingTorque; base.FrontRightWheel.brakeTorque = maxBrakingTorque; base.BackLeftWheel.brakeTorque = maxBrakingTorque; base.BackRightWheel.brakeTorque = maxBrakingTorque; base.turboBoostForce = 3000f; base.turboBoostUpwardForce = 7200f; base.jumpForce = 600f; base.baseCarHP = 30; base.carHP = base.baseCarHP; syncedCarHP = base.carHP; base.carFragility = 1f; base.positionOffset = new Vector3(0.0472f, 0.103f, -0.09f); base.rotationOffset = Vector3.zero; v55EngineBay.SetActive(true); v56EngineBay.SetActive(false); ((Component)v55HealthMeter).gameObject.SetActive(true); ((Component)v56HealthMeter).gameObject.SetActive(false); ((Component)base.turboMeter).gameObject.SetActive(false); if (((Component)v55HealthMeter).gameObject.activeSelf) { base.healthMeter = v55HealthMeter; } else { base.healthMeter = v56HealthMeter; } } private void SetWheelFriction() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0050: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) WheelFrictionCurve val = default(WheelFrictionCurve); ((WheelFrictionCurve)(ref val)).extremumSlip = 0.2f; ((WheelFrictionCurve)(ref val)).extremumValue = 1f; ((WheelFrictionCurve)(ref val)).asymptoteSlip = 0.8f; ((WheelFrictionCurve)(ref val)).asymptoteValue = 0.4f; ((WheelFrictionCurve)(ref val)).stiffness = 2.7f; base.FrontLeftWheel.forwardFriction = val; base.FrontRightWheel.forwardFriction = val; ((WheelFrictionCurve)(ref val)).stiffness = 0.75f; base.BackLeftWheel.forwardFriction = val; base.BackRightWheel.forwardFriction = val; ((WheelFrictionCurve)(ref val)).stiffness = 0.8f; ((WheelFrictionCurve)(ref val)).asymptoteValue = 0.75f; ((WheelFrictionCurve)(ref val)).extremumSlip = 0.7f; base.FrontLeftWheel.sidewaysFriction = val; base.FrontRightWheel.sidewaysFriction = val; base.BackLeftWheel.sidewaysFriction = val; base.BackRightWheel.sidewaysFriction = val; } public void Start() { //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) ((MonoBehaviour)this).StartCoroutine(SetCarRainCollisions()); base.currentRadioClip = new Random(StartOfRound.Instance.randomMapSeed).Next(0, base.radioClips.Length); base.radioAudio.clip = base.radioClips[base.currentRadioClip]; base.decals = (DecalProjector[])(object)new DecalProjector[24]; if (StartOfRound.Instance.inShipPhase) { base.magnetedToShip = true; base.loadedVehicleFromSave = true; hasDeliveredVehicle = true; base.inDropshipAnimation = false; base.hasBeenSpawned = true; SetVehicleKinematic(setKinematic: true); ((Component)this).transform.position = StartOfRound.Instance.magnetPoint.position + StartOfRound.Instance.magnetPoint.forward * 7f; ((Component)this).transform.rotation = Quaternion.Euler(0f, 90f, 0f); StartMagneting(); } } public IEnumerator SetCarRainCollisions() { yield return (object)new WaitForSeconds(4f); ParticleSystem[] particleTriggers = (ParticleSystem[])(object)new ParticleSystem[9] { GlobalReferences.rainParticles, GlobalReferences.rainHitParticles, GlobalReferences.stormyRainParticles, GlobalReferences.stormyRainHitParticles, GlobalReferences.wesleyHurricaneRainParticles, GlobalReferences.wesleyHurricaneRainHitParticles, GlobalReferences.wesleyHurricaneSandParticles, GlobalReferences.wesleyForsakenRainParticles, GlobalReferences.wesleyForsakenRainHitParticles }; for (int i = 0; i < particleTriggers.Length; i++) { if ((Object)(object)particleTriggers[i] == (Object)null) { Plugin.Logger.LogDebug((object)"V55: Weather particle (or trigger) is null!"); continue; } TriggerModule trigger = particleTriggers[i].trigger; for (int j = 0; j < weatherEffectBlockers.Length; j++) { int index = ((TriggerModule)(ref trigger)).colliderCount + j; ((TriggerModule)(ref trigger)).SetCollider(index, (Component)(object)weatherEffectBlockers[j]); } trigger = default(TriggerModule); } } public void SendClientSyncData() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: 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_0020: 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_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) if (base.magnetedToShip) { Vector3 eulerAngles = ((Quaternion)(ref base.magnetTargetRotation)).eulerAngles; MagnetCarRpc(base.magnetTargetPosition, eulerAngles, base.magnetStartPosition, base.magnetStartRotation, RoundManager.Instance.tempTransform.eulerAngles, base.averageVelocityAtMagnetStart); } if (interiorType == -1) { interiorType = 0; } bool value = UserConfig.PostBeta.Value; bool noTree = UserConfig.NoTreeDestruction.Value; if (!value) { noTree = false; } bool value2 = UserConfig.BabyFaceRadio.Value; SetAndSyncCruiserDataRpc(interiorType, value, noTree, value2); } public void SetBackDoorOpen(bool open) { liftGateOpen = open; } public void SetFrontCabinLightOn(bool setOn) { isCabLightOn = setOn; if (!preBetaMode) { base.frontCabinLightContainer.SetActive(setOn); ((Renderer)base.frontCabinLightMesh).material = (setOn ? base.headlightsOnMat : base.headlightsOffMat); } } public void StartTryCarIgnition() { if (base.localPlayerInControl && !base.ignitionStarted) { CancelIgnitionCoroutine(); disableAnimations = true; inIgnitionAnimation = true; base.keyIgnitionCoroutine = ((MonoBehaviour)this).StartCoroutine(TryIgnition(isLocalDriver: true)); TryIgnitionRpc(base.keyIsInIgnition, isCabLightOn); } } private IEnumerator TryIgnition(bool isLocalDriver) { if ((Object)(object)base.currentDriver == (Object)null) { base.keyIgnitionCoroutine = null; yield break; } if (base.keyIsInIgnition) { SetKeyIgnitionValues(keyInHand: false, keyInSlot: true); if (base.currentDriver.playerBodyAnimator.GetInteger(CAR_ANIM) == 3) { base.currentDriver.playerBodyAnimator.SetInteger(CAR_ANIM, 2); } else { base.currentDriver.playerBodyAnimator.SetInteger(CAR_ANIM, 12); } int animIndex = base.currentDriver.playerBodyAnimator.GetInteger(CAR_ANIM); ignitionAnimator.SetInteger(IGNITION_ANIM, animIndex); if (inBetaMode) { yield return (object)new WaitForSeconds(0.035f); } else { yield return (object)new WaitForSeconds(0.02f); } carKeyAudio.PlayOneShot(base.twistKey); SetKeyIgnitionValues(keyInHand: true, keyInSlot: true); yield return (object)new WaitForSeconds(0.1467f); SetKeyIgnitionValues(keyInHand: true, keyInSlot: true); } else { PlayerControllerB currentDriver = base.currentDriver; if (currentDriver != null) { currentDriver.playerBodyAnimator.SetInteger(CAR_ANIM, 2); } ignitionAnimator.SetInteger(IGNITION_ANIM, 2); SetKeyIgnitionValues(keyInHand: true, keyInSlot: false); if (inBetaMode) { yield return (object)new WaitForSeconds(0.66f); carKeyAudio.PlayOneShot(base.insertKey); SetKeyIgnitionValues(keyInHand: true, keyInSlot: false); yield return (object)new WaitForSeconds(0.2f); carKeyAudio.PlayOneShot(base.twistKey); SetKeyIgnitionValues(keyInHand: true, keyInSlot: false); yield return (object)new WaitForSeconds(0.1f); } else { yield return (object)new WaitForSeconds(0.6f); carKeyAudio.PlayOneShot(base.insertKey); SetKeyIgnitionValues(keyInHand: true, keyInSlot: true); yield return (object)new WaitForSeconds(0.2f); carKeyAudio.PlayOneShot(base.twistKey); SetKeyIgnitionValues(keyInHand: true, keyInSlot: true); yield return (object)new WaitForSeconds(0.185f); SetKeyIgnitionValues(keyInHand: true, keyInSlot: true); } } if (!isLocalDriver) { yield break; } SetKeyIgnitionValues(keyInHand: true, keyInSlot: true); SetFrontCabinLightOn(base.keyIsInIgnition); PlayIgnitionAudio(); TryStartIgnitionRpc(); yield return (object)new WaitForSeconds(Random.Range(0.4f, 1.1f)); if ((float)Random.Range(0, 100) < base.chanceToStartIgnition) { CancelIgnitionAnimation(ignitionOn: true, setIgnitionAnim: true); disableAnimations = false; inIgnitionAnimation = false; PlayerControllerB currentDriver2 = base.currentDriver; if (currentDriver2 != null) { currentDriver2.playerBodyAnimator.SetInteger(CAR_ANIM, 1); } SetKeyIgnitionValues(keyInHand: false, keyInSlot: true); SetIgnition(started: true, cabLightOn: true); SetFrontCabinLightOn(base.keyIsInIgnition); StartIgnitionRpc(); } else { base.chanceToStartIgnition += 15f; base.chanceToStartIgnition = Mathf.Clamp(base.chanceToStartIgnition, 0f, 99f); } } [Rpc(/*Could not decode attribute arguments.*/)] public void TryIgnitionRpc(bool setKeyInSlot, bool cabLightActive) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a3: 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_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2843149083u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref cabLightActive, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 2843149083u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; CancelIgnitionCoroutine(); disableAnimations = true; inIgnitionAnimation = true; SetKeyIgnitionValues(keyInHand: false, setKeyInSlot); if (!isCabLightOn && cabLightActive) { SetFrontCabinLightOn(cabLightActive); } base.keyIgnitionCoroutine = ((MonoBehaviour)this).StartCoroutine(TryIgnition(isLocalDriver: false)); } } [Rpc(/*Could not decode attribute arguments.*/)] public void TryStartIgnitionRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(41763978u, val2, val, (SendTo)1, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val3, 41763978u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetKeyIgnitionValues(keyInHand: true, keyInSlot: true); SetFrontCabinLightOn(base.keyIsInIgnition); PlayIgnitionAudio(); } } } public void PlayIgnitionAudio() { if (inBetaMode) { base.engineAudio1.clip = base.revEngineStart; base.engineAudio1.volume = 0.7f; base.engineAudio1.PlayOneShot(engineRev1); base.carEngine1AudioActive = true; return; } base.engineAudio1.Stop(); base.engineAudio1.clip = revEngineStart1; base.engineAudio1.volume = 0.7f; if ((Object)(object)base.engineAudio1.clip == (Object)(object)revEngineStart1) { base.engineAudio1.PlayOneShot(base.engineRev); } base.carEngine1AudioActive = true; if ((Object)(object)base.engineAudio1.clip == (Object)(object)revEngineStart1) { base.engineAudio1.pitch = 1f; } } public void CancelTryCarIgnition() { if (base.localPlayerInControl && !base.ignitionStarted && base.keyIgnitionCoroutine != null && (base.keyIgnitionCoroutine != null || !startIgnitionTrigger.isBeingHeldByPlayer)) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (localPlayerController.playerBodyAnimator.GetInteger(CAR_ANIM) == 2 && base.keyIsInIgnition) { localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 3); } else if (localPlayerController.playerBodyAnimator.GetInteger(CAR_ANIM) == 12 && base.keyIsInIgnition) { localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 3); } else { localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 0); } CancelIgnitionAnimation(ignitionOn: false, setIgnitionAnim: false); disableAnimations = true; inIgnitionAnimation = false; int integer = localPlayerController.playerBodyAnimator.GetInteger(CAR_ANIM); int num = integer; if (integer == 13) { num = 3; } ignitionAnimator.SetInteger(IGNITION_ANIM, num); CancelTryIgnitionRpc(base.keyIsInIgnition, isCabLightOn, integer, num); } } [Rpc(/*Could not decode attribute arguments.*/)] public void CancelTryIgnitionRpc(bool setKeyInSlot, bool cabLightActive, int playerAnimIndex, int ignitionAnimIndex) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_0103: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3795050472u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref cabLightActive, default(ForPrimitives)); BytePacker.WriteValueBitPacked(val3, playerAnimIndex); BytePacker.WriteValueBitPacked(val3, ignitionAnimIndex); ((NetworkBehaviour)this).__endSendRpc(ref val3, 3795050472u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; CancelIgnitionAnimation(ignitionOn: false, setIgnitionAnim: false); disableAnimations = true; inIgnitionAnimation = false; PlayerControllerB currentDriver = base.currentDriver; if (currentDriver != null) { currentDriver.playerBodyAnimator.SetInteger(CAR_ANIM, playerAnimIndex); } ignitionAnimator.SetInteger(IGNITION_ANIM, ignitionAnimIndex); if (!inBetaMode && setKeyInSlot && !base.keyIsInIgnition) { carKeyAudio.PlayOneShot(base.insertKey); } SetKeyIgnitionValues(keyInHand: false, setKeyInSlot); if (setKeyInSlot && isCabLightOn != cabLightActive) { SetFrontCabinLightOn(cabLightActive); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void StartIgnitionRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3842753156u, val2, val, (SendTo)1, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val3, 3842753156u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; CancelIgnitionAnimation(ignitionOn: true, setIgnitionAnim: true); disableAnimations = false; inIgnitionAnimation = false; PlayerControllerB currentDriver = base.currentDriver; if (currentDriver != null) { currentDriver.playerBodyAnimator.SetInteger(CAR_ANIM, 1); } SetKeyIgnitionValues(keyInHand: false, keyInSlot: true); SetIgnition(started: true, cabLightOn: true); SetFrontCabinLightOn(base.keyIsInIgnition); } } public void SetIgnition(bool started, bool cabLightOn) { SetFrontCabinLightOn(cabLightOn); base.carEngine1AudioActive = started; if (started) { disableAnimations = false; inIgnitionAnimation = false; base.startKeyIgnitionTrigger.SetActive(false); base.removeKeyIgnitionTrigger.SetActive(true); if (started != base.ignitionStarted) { base.ignitionStarted = true; base.carExhaustParticle.Play(); if (!inBetaMode) { base.engineAudio1.Stop(); } base.engineAudio1.PlayOneShot(base.engineStartSuccessful); base.engineAudio1.clip = base.engineRun; } } else { base.startKeyIgnitionTrigger.SetActive(true); base.removeKeyIgnitionTrigger.SetActive(false); base.ignitionStarted = false; base.carExhaustParticle.Stop(true, (ParticleSystemStopBehavior)1); } } public void RemoveKeyFromIgnition() { if (base.localPlayerInControl && base.ignitionStarted && !inIgnitionAnimation) { CancelIgnitionCoroutine(); base.keyIgnitionCoroutine = ((MonoBehaviour)this).StartCoroutine(RemoveKey()); base.chanceToStartIgnition = 20f; RemoveKeyFromIgnitionRpc(); } } private IEnumerator RemoveKey() { disableAnimations = true; inIgnitionAnimation = false; PlayerControllerB currentDriver = base.currentDriver; if (currentDriver != null) { currentDriver.playerBodyAnimator.SetInteger(CAR_ANIM, 6); } ignitionAnimator.SetInteger(IGNITION_ANIM, 6); yield return (object)new WaitForSeconds(0.26f); SetKeyIgnitionValues(keyInHand: true, keyInSlot: false); carKeyAudio.PlayOneShot(base.removeKey); SetIgnition(started: false, cabLightOn: false); yield return (object)new WaitForSeconds(0.73f); SetKeyIgnitionValues(keyInHand: false, keyInSlot: false); base.keyIgnitionCoroutine = null; } [Rpc(/*Could not decode attribute arguments.*/)] public void RemoveKeyFromIgnitionRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(488072872u, val2, val, (SendTo)1, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val3, 488072872u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (base.ignitionStarted) { CancelIgnitionCoroutine(); base.keyIgnitionCoroutine = ((MonoBehaviour)this).StartCoroutine(RemoveKey()); } } } public void CancelIgnitionAnimation(bool ignitionOn, bool setIgnitionAnim) { CancelIgnitionCoroutine(); base.carEngine1AudioActive = ignitionOn; base.keyIsInDriverHand = false; if (setIgnitionAnim) { ignitionAnimator.SetInteger(IGNITION_ANIM, ignitionOn ? 1 : 0); } } private void CancelIgnitionCoroutine() { if (base.keyIgnitionCoroutine != null) { ((MonoBehaviour)this).StopCoroutine(base.keyIgnitionCoroutine); base.keyIgnitionCoroutine = null; } } public void SetKeyIgnitionValues(bool keyInHand, bool keyInSlot) { base.keyIsInDriverHand = keyInHand; base.keyIsInIgnition = keyInSlot; } public void ResetTruckVelocityTimer() { if (((Vector3)(ref base.averageVelocity)).magnitude < 3f) { base.limitTruckVelocityTimer = 0.7f; } } public void SetTriggerHoverTip(InteractTrigger trigger, string tip) { trigger.hoverTip = tip; } public void SetDriverInCar() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) SetDriverInCarServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId); } [Rpc(/*Could not decode attribute arguments.*/)] protected void SetDriverInCarServerRpc(int playerId, RpcParams rpcParams = default(RpcParams)) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0122: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(2045075206u, rpcParams, val, (SendTo)2, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendRpc(ref val2, 2045075206u, rpcParams, val, (SendTo)2, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayerControllerB val3 = StartOfRound.Instance.allPlayerScripts[playerId]; if (!((Object)(object)val3 == (Object)null) && !val3.isPlayerDead && val3.isPlayerControlled && !((Object)(object)base.currentDriver != (Object)null)) { base.currentDriver = val3; ((NetworkBehaviour)this).NetworkObject.ChangeOwnership(rpcParams.Receive.SenderClientId); SetDriverInCarOwnerRpc(NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)val3)); } } } [Rpc(/*Could not decode attribute arguments.*/)] protected void SetDriverInCarOwnerRpc(NetworkBehaviourReference playerNetObjRef) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_0279: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1327850510u, val2, val, (SendTo)0, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref playerNetObjRef, default(ForNetworkSerializable)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1327850510u, val2, val, (SendTo)0, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1) { return; } ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayerControllerB val4 = default(PlayerControllerB); if (!((NetworkBehaviourReference)(ref playerNetObjRef)).TryGet(ref val4, (NetworkManager)null)) { Plugin.Logger.LogError((object)"V55: SetDriverIntoCarOwnerRpc failed to find player object reference from network behaviour!"); return; } PlayerUtils.disableAnimationSync = true; ((VehicleSeatAnimator)currentInterior.driverSeat).SetLocalPlayerIntoSeat(); ActivateControl(); InteractTrigger trigger = (isInteriorRHD ? base.passengerSideDoorTrigger : base.driverSideDoorTrigger); AnimatedObjectTrigger val5 = (isInteriorRHD ? base.passengerSideDoor : base.driverSideDoor); SetTriggerHoverTip(trigger, "Exit : [LMB]"); startIgnitionTrigger.isBeingHeldByPlayer = false; stopIgnitionTrigger.isBeingHeldByPlayer = false; CancelIgnitionCoroutine(); GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetFloat(ANIMATION_SPEED, 0.5f); playerSteeringWheelAnimFloat = 0.5f; syncedPlayerSteeringAnim = 0.5f; if (isCabLightOn && !base.keyIsInIgnition) { SetFrontCabinLightOn(setOn: false); } if (base.keyIsInIgnition) { GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 0); } else if (base.ignitionStarted) { GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 1); } else { GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 0); } int integer = GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.GetInteger(CAR_ANIM); if (val5.boolValue) { val5.TriggerAnimation(GameNetworkManager.Instance.localPlayerController); } SetDriverInCarNotOwnerRpc(NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)val4), isCabLightOn, base.keyIsInIgnition, base.ignitionStarted, integer); } [Rpc(/*Could not decode attribute arguments.*/)] public void SetDriverInCarNotOwnerRpc(NetworkBehaviourReference playerNetObjRef, bool setCabLight, bool setKeyInSlot, bool engineStarted, int currentAnimIndex) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: 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) //IL_012c: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2406511531u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref playerNetObjRef, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setCabLight, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref engineStarted, default(ForPrimitives)); BytePacker.WriteValueBitPacked(val3, currentAnimIndex); ((NetworkBehaviour)this).__endSendRpc(ref val3, 2406511531u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayerControllerB val4 = default(PlayerControllerB); if (!((NetworkBehaviourReference)(ref playerNetObjRef)).TryGet(ref val4, (NetworkManager)null)) { Plugin.Logger.LogError((object)"V55: SetDriverIntoCarNotOwnerRpc failed to find player object reference from network behaviour!"); return; } base.currentDriver = val4; ((VehicleSeatAnimator)currentInterior.driverSeat).SetPlayerAnimations(val4, false); startIgnitionTrigger.isBeingHeldByPlayer = false; stopIgnitionTrigger.isBeingHeldByPlayer = false; CancelIgnitionCoroutine(); val4.playerBodyAnimator.SetFloat(ANIMATION_SPEED, 0.5f); playerSteeringWheelAnimFloat = 0.5f; syncedPlayerSteeringAnim = 0.5f; SetIgnition(engineStarted, setCabLight); base.keyIsInIgnition = setKeyInSlot; val4.playerBodyAnimator.SetInteger(CAR_ANIM, currentAnimIndex); } } public void OnDriverExitCar() { //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) if (((NetworkBehaviour)this).IsSpawned && !((Object)(object)((NetworkBehaviour)this).NetworkManager == (Object)null) && ((NetworkBehaviour)this).NetworkManager.IsListening) { PlayerUtils.disableAnimationSync = false; base.localPlayerInControl = false; InteractTrigger trigger = (isInteriorRHD ? base.passengerSideDoorTrigger : base.driverSideDoorTrigger); SetTriggerHoverTip(trigger, "Use door : [LMB]"); disableAnimations = !base.ignitionStarted; inIgnitionAnimation = false; startIgnitionTrigger.isBeingHeldByPlayer = false; stopIgnitionTrigger.isBeingHeldByPlayer = false; GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 0); GlobalUtilities.ResetHUDToolTips(GameNetworkManager.Instance.localPlayerController); if ((Object)(object)base.currentDriver != (Object)(object)GameNetworkManager.Instance.localPlayerController) { HUDManager.Instance.DisplayTip("Err?", "This state should not occur! aborting!", false, false, "LC_Tip1"); return; } DisableControl(); CancelIgnitionAnimation(base.ignitionStarted, setIgnitionAnim: true); SetIgnition(base.ignitionStarted, isCabLightOn); base.chanceToStartIgnition = 10f; base.syncedPosition = ((Component)this).transform.position; base.syncedRotation = ((Component)this).transform.rotation; OnDriverExitCarRpc(NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)GameNetworkManager.Instance.localPlayerController), base.syncedPosition, base.syncedRotation, base.drivePedalPressed, base.brakePedalPressed, base.keyIsInIgnition, base.ignitionStarted, isCabLightOn); } } [Rpc(/*Could not decode attribute arguments.*/)] public void OnDriverExitCarRpc(NetworkBehaviourReference playerNetObjRef, Vector3 carLocation, Quaternion carRotation, bool gasFloored, bool brakeFloored, bool setKeyInSlot, bool engineStarted, bool accessoriesActive) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: 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_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3401388119u, val2, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref playerNetObjRef, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref carLocation); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref carRotation); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref gasFloored, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref brakeFloored, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref engineStarted, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref accessoriesActive, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 3401388119u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1) { return; } ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (((NetworkBehaviour)this).IsServer) { ((NetworkBehaviour)this).NetworkObject.ChangeOwnership(0uL); } PlayerControllerB val4 = default(PlayerControllerB); if (!((NetworkBehaviourReference)(ref playerNetObjRef)).TryGet(ref val4, (NetworkManager)null)) { Plugin.Logger.LogError((object)"V55: OnDriverExitRpc failed to find player object reference from network behaviour!"); return; } base.syncedPosition = carLocation; base.syncedRotation = carRotation; base.drivePedalPressed = false; base.brakePedalPressed = false; base.currentDriver = null; ((VehicleSeatAnimator)currentInterior.driverSeat).ReturnPlayerAnimations(val4, false); base.keyIsInIgnition = setKeyInSlot; base.ignitionStarted = engineStarted; if (base.ignitionStarted && !base.carExhaustParticle.isEmitting) { base.carExhaustParticle.Play(); } else if (!base.ignitionStarted && base.carExhaustParticle.isEmitting) { base.carExhaustParticle.Stop(true, (ParticleSystemStopBehavior)1); } disableAnimations = !base.ignitionStarted; inIgnitionAnimation = false; startIgnitionTrigger.isBeingHeldByPlayer = false; stopIgnitionTrigger.isBeingHeldByPlayer = false; CancelIgnitionAnimation(base.ignitionStarted, setIgnitionAnim: true); SetIgnition(base.ignitionStarted, accessoriesActive); base.chanceToStartIgnition = 10f; } public void SetPassengerInCar() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) SetPassengerInCarServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId); } [Rpc(/*Could not decode attribute arguments.*/)] protected void SetPassengerInCarServerRpc(int playerId, RpcParams rpcParams = default(RpcParams)) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_010b: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3097541392u, rpcParams, val, (SendTo)2, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3097541392u, rpcParams, val, (SendTo)2, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayerControllerB val3 = StartOfRound.Instance.allPlayerScripts[playerId]; if (!((Object)(object)val3 == (Object)null) && !val3.isPlayerDead && val3.isPlayerControlled && !((Object)(object)base.currentPassenger != (Object)null)) { base.currentPassenger = val3; SetPassengerInCarRpc(NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)val3)); } } } [Rpc(/*Could not decode attribute arguments.*/)] protected void SetPassengerInCarRpc(NetworkBehaviourReference playerNetObjRef) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2563769890u, val2, val, (SendTo)6, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref playerNetObjRef, default(ForNetworkSerializable)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 2563769890u, val2, val, (SendTo)6, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1) { return; } ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayerControllerB val4 = default(PlayerControllerB); if (!((NetworkBehaviourReference)(ref playerNetObjRef)).TryGet(ref val4, (NetworkManager)null)) { Plugin.Logger.LogError((object)"V55: SetPassengerInCarRpc failed to find player object reference from network behaviour!"); return; } if ((Object)(object)val4 == (Object)(object)GameNetworkManager.Instance.localPlayerController) { PlayerUtils.disableAnimationSync = true; ((VehicleSeatAnimator)currentInterior.passengerSeat).SetLocalPlayerIntoSeat(); base.localPlayerInPassengerSeat = true; InteractTrigger trigger = (isInteriorRHD ? base.driverSideDoorTrigger : base.passengerSideDoorTrigger); AnimatedObjectTrigger val5 = (isInteriorRHD ? base.driverSideDoor : base.passengerSideDoor); SetTriggerHoverTip(trigger, "Exit : [LMB]"); if (val5.boolValue) { val5.TriggerAnimation(GameNetworkManager.Instance.localPlayerController); } } else { ((VehicleSeatAnimator)currentInterior.passengerSeat).SetPlayerAnimations(val4, false); } base.currentPassenger = val4; val4.playerBodyAnimator.SetFloat(ANIMATION_SPEED, 0.5f); } public void OnPassengerExitCar() { //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) if (((NetworkBehaviour)this).IsSpawned && !((Object)(object)((NetworkBehaviour)this).NetworkManager == (Object)null) && ((NetworkBehaviour)this).NetworkManager.IsListening) { PlayerUtils.disableAnimationSync = false; base.localPlayerInPassengerSeat = false; InteractTrigger trigger = (isInteriorRHD ? base.driverSideDoorTrigger : base.passengerSideDoorTrigger); SetTriggerHoverTip(trigger, "Use door : [LMB]"); GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 0); base.currentPassenger = null; OnPassengerExitCarRpc(NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)GameNetworkManager.Instance.localPlayerController), ((Component)GameNetworkManager.Instance.localPlayerController).transform.position); } } [Rpc(/*Could not decode attribute arguments.*/)] public void OnPassengerExitCarRpc(NetworkBehaviourReference playerNetObjRef, Vector3 exitPoint) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_012c: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1712975515u, val2, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref playerNetObjRef, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref exitPoint); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1712975515u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayerControllerB val4 = default(PlayerControllerB); if (!((NetworkBehaviourReference)(ref playerNetObjRef)).TryGet(ref val4, (NetworkManager)null)) { Plugin.Logger.LogError((object)"V55: OnPassengerExitCarRpc failed to find player object reference from network behaviour!"); return; } ((VehicleSeatAnimator)currentInterior.passengerSeat).ReturnPlayerAnimations(val4, false); val4.playerBodyAnimator.SetInteger(CAR_ANIM, 0); val4.TeleportPlayer(exitPoint, false, 0f, false, true); base.currentPassenger = null; } } [Rpc(/*Could not decode attribute arguments.*/)] public void CancelSetPlayerInVehicleClientRpc(int playerId) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1393046261u, val2, val, (SendTo)6, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, playerId); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1393046261u, val2, val, (SendTo)6, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if ((int)GameNetworkManager.Instance.localPlayerController.playerClientId == playerId) { HUDManager.Instance.DisplayTip("Kicked from vehicle", "You have been forcefully kicked to prevent a softlock!", false, false, "LC_Tip1"); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void OnDriverLeaveGameServerRpc(int playerId) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(922548461u, val2, val, (SendTo)2, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, playerId); ((NetworkBehaviour)this).__endSendRpc(ref val3, 922548461u, val2, val, (SendTo)2, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayerControllerB val4 = StartOfRound.Instance.allPlayerScripts[playerId]; if (!((Object)(object)val4 == (Object)null)) { ((NetworkBehaviour)this).NetworkObject.ChangeOwnership(StartOfRound.Instance.allPlayerScripts[0].actualClientId); OnDriverLeave(val4, base.ignitionStarted, base.keyIsInIgnition, base.drivePedalPressed, base.brakePedalPressed, isCabLightOn); OnDriverLeaveGameRpc(playerId, base.syncedPosition, base.syncedRotation, base.ignitionStarted, base.keyIsInIgnition, base.drivePedalPressed, base.brakePedalPressed, isCabLightOn); } } } public void OnDriverLeave(PlayerControllerB playerController, bool setIgnitionState, bool setKeyInSlot, bool gasFloored, bool brakeFloored, bool setCabLight) { //IL_00c3: Unknown result type (might be due to invalid IL or missing references) base.drivePedalPressed = false; base.brakePedalPressed = false; base.currentDriver = null; base.keyIsInIgnition = setKeyInSlot; base.ignitionStarted = setIgnitionState; if (base.ignitionStarted && !base.carExhaustParticle.isEmitting) { base.carExhaustParticle.Play(); } else if (!base.ignitionStarted && base.carExhaustParticle.isEmitting) { base.carExhaustParticle.Stop(true, (ParticleSystemStopBehavior)1); } disableAnimations = !base.ignitionStarted; inIgnitionAnimation = false; base.startKeyIgnitionTrigger.GetComponent().isBeingHeldByPlayer = false; base.removeKeyIgnitionTrigger.GetComponent().isBeingHeldByPlayer = false; ((VehicleSeatAnimator)currentInterior.driverSeat).ReturnPlayerAnimations(playerController, false); playerController.TeleportPlayer(Vector3.zero, false, 0f, false, true); CancelIgnitionAnimation(base.ignitionStarted, setIgnitionAnim: true); SetIgnition(base.ignitionStarted, setCabLight); } [Rpc(/*Could not decode attribute arguments.*/)] public void OnDriverLeaveGameRpc(int playerId, Vector3 carLocation, Quaternion carRotation, bool setIgnitionState, bool setKeyInSlot, bool gasFloored, bool brakeFloored, bool preIgnition) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_018b: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2891603058u, val2, val, (SendTo)3, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, playerId); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref carLocation); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref carRotation); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setIgnitionState, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref gasFloored, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref brakeFloored, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref preIgnition, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 2891603058u, val2, val, (SendTo)3, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayerControllerB val4 = StartOfRound.Instance.allPlayerScripts[playerId]; if (!((Object)(object)val4 == (Object)null)) { base.syncedPosition = carLocation; base.syncedRotation = carRotation; OnDriverLeave(val4, setIgnitionState, setKeyInSlot, gasFloored, brakeFloored, preIgnition); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void OnPassengerLeaveGameRpc(int playerId) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3769073087u, val2, val, (SendTo)6, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, playerId); ((NetworkBehaviour)this).__endSendRpc(ref val3, 3769073087u, val2, val, (SendTo)6, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayerControllerB val4 = StartOfRound.Instance.allPlayerScripts[playerId]; if (!((Object)(object)val4 == (Object)null)) { ((VehicleSeatAnimator)currentInterior.passengerSeat).ReturnPlayerAnimations(val4, false); val4.TeleportPlayer(Vector3.zero, false, 0f, false, true); base.currentPassenger = null; } } } public void ExitFrontLeftSideSeat() { //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) if ((base.localPlayerInControl || isInteriorRHD) && (base.localPlayerInPassengerSeat || !isInteriorRHD)) { GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 0); if (!base.driverSideDoor.boolValue) { base.driverSideDoor.TriggerAnimation(GameNetworkManager.Instance.localPlayerController); } int num = CanExitCar(passengerSide: false); if (num != -1) { GameNetworkManager.Instance.localPlayerController.TeleportPlayer(base.driverSideExitPoints[num].position, false, 0f, false, true); } else { GameNetworkManager.Instance.localPlayerController.TeleportPlayer(base.driverSideExitPoints[1].position, false, 0f, false, true); } } } public void ExitFrontRightSideSeat() { //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) if ((base.localPlayerInPassengerSeat || isInteriorRHD) && (base.localPlayerInControl || !isInteriorRHD)) { GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 0); if (!base.passengerSideDoor.boolValue) { base.passengerSideDoor.TriggerAnimation(GameNetworkManager.Instance.localPlayerController); } int num = CanExitCar(passengerSide: true); if (num != -1) { GameNetworkManager.Instance.localPlayerController.TeleportPlayer(base.passengerSideExitPoints[num].position, false, 0f, false, true); } else { GameNetworkManager.Instance.localPlayerController.TeleportPlayer(base.passengerSideExitPoints[1].position, false, 0f, false, true); } } } private int CanExitCar(bool passengerSide) { //IL_0086: 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_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) if (!passengerSide) { for (int i = 0; i < base.driverSideExitPoints.Length; i++) { if (!CheckExitPointInvalid(((Component)GameNetworkManager.Instance.localPlayerController.gameplayCamera).transform.position, base.driverSideExitPoints[i].position, base.exitCarLayerMask, (QueryTriggerInteraction)1)) { return i; } } return -1; } for (int j = 0; j < base.passengerSideExitPoints.Length; j++) { if (!CheckExitPointInvalid(((Component)GameNetworkManager.Instance.localPlayerController.gameplayCamera).transform.position, base.passengerSideExitPoints[j].position, base.exitCarLayerMask, (QueryTriggerInteraction)1)) { return j; } } return -1; } public bool CheckExitPointInvalid(Vector3 playerPos, Vector3 exitPoint, int layerMask, QueryTriggerInteraction interaction) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //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_0026: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: 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) if (Physics.Linecast(playerPos, exitPoint, layerMask, interaction)) { return true; } if (Physics.CheckCapsule(exitPoint, exitPoint + Vector3.up, 0.5f, layerMask, interaction)) { return true; } LayerMask val = LayerMask.op_Implicit(layerMask | LayerMask.GetMask(new string[1] { "Vehicle" })); if (!Physics.Linecast(exitPoint, exitPoint + Vector3.down * 4f, LayerMask.op_Implicit(val), interaction)) { return true; } return false; } public void EnableVehicleCollisionForAllPlayers() { //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: 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) //IL_007f: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < StartOfRound.Instance.allPlayerScripts.Length; i++) { if ((Object)(object)StartOfRound.Instance.allPlayerScripts[i] != (Object)(object)base.currentPassenger) { if ((Object)(object)StartOfRound.Instance.allPlayerScripts[i] != (Object)(object)GameNetworkManager.Instance.localPlayerController) { ((Collider)StartOfRound.Instance.allPlayerScripts[i].thisController).excludeLayers = LayerMask.op_Implicit(1073745920); StartOfRound.Instance.allPlayerScripts[i].playerRigidbody.excludeLayers = LayerMask.op_Implicit(1073745920); break; } ((Collider)StartOfRound.Instance.allPlayerScripts[i].thisController).excludeLayers = LayerMask.op_Implicit(0); StartOfRound.Instance.allPlayerScripts[i].playerRigidbody.excludeLayers = LayerMask.op_Implicit(0); } } } public void DisableVehicleCollisionForAllPlayers() { //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < StartOfRound.Instance.allPlayerScripts.Length; i++) { if (!base.localPlayerInControl && !base.localPlayerInPassengerSeat && (Object)(object)StartOfRound.Instance.allPlayerScripts[i] == (Object)(object)GameNetworkManager.Instance.localPlayerController) { ((Collider)StartOfRound.Instance.allPlayerScripts[i].thisController).excludeLayers = LayerMask.op_Implicit(0); StartOfRound.Instance.allPlayerScripts[i].playerRigidbody.excludeLayers = LayerMask.op_Implicit(0); } else { ((Collider)StartOfRound.Instance.allPlayerScripts[i].thisController).excludeLayers = LayerMask.op_Implicit(1073745920); StartOfRound.Instance.allPlayerScripts[i].playerRigidbody.excludeLayers = LayerMask.op_Implicit(1073745920); } } } public void SetVehicleCollisionForPlayer(bool setEnabled, PlayerControllerB player) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) if (!setEnabled) { ((Collider)player.thisController).excludeLayers = LayerMask.op_Implicit(1073745920); player.playerRigidbody.excludeLayers = LayerMask.op_Implicit(1073745920); } else { ((Collider)player.thisController).excludeLayers = LayerMask.op_Implicit(0); player.playerRigidbody.excludeLayers = LayerMask.op_Implicit(0); } } private void GetVehicleInput() { //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (!((Object)(object)localPlayerController == (Object)null) && !localPlayerController.isTypingChat && !localPlayerController.quickMenuManager.isMenuOpen) { SyncVehicleInput(); if (!base.ignitionStarted) { base.moveInputVector = Vector2.zero; base.steeringAnimValue = 0f; base.drivePedalPressed = false; base.brakePedalPressed = false; } else { base.moveInputVector = IngamePlayerSettings.Instance.playerInput.actions.FindAction("Move", false).ReadValue(); base.steeringAnimValue = base.moveInputVector.x; base.steeringInput = Mathf.Clamp(base.steeringInput + base.moveInputVector.x * base.steeringWheelTurnSpeed * Time.deltaTime, -3f, 3f); base.drivePedalPressed = base.moveInputVector.y > 0.1f; base.brakePedalPressed = base.moveInputVector.y < -0.1f; } } } private void SyncVehicleInput() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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) //IL_0064: Unknown result type (might be due to invalid IL or missing references) if (syncedMoveInputVector != base.moveInputVector || syncedDrivePedalPressed != base.drivePedalPressed || syncedBrakePedalPressed != base.brakePedalPressed) { syncedMoveInputVector = base.moveInputVector; syncedDrivePedalPressed = base.drivePedalPressed; syncedBrakePedalPressed = base.brakePedalPressed; SyncPlayerInputsRpc(base.moveInputVector, base.drivePedalPressed, base.brakePedalPressed); } } private void ActivateControl() { base.localPlayerInControl = true; base.steeringAnimValue = 0f; base.drivePedalPressed = false; base.brakePedalPressed = false; base.currentDriver = GameNetworkManager.Instance.localPlayerController; } private void DisableControl() { base.localPlayerInControl = false; if (!inBetaMode) { base.steeringAnimValue = 0f; } base.currentDriver = null; } public void ShiftGearForwardInput(CallbackContext context) { if (((CallbackContext)(ref context)).performed) { ShiftGearForward(); } } public void ShiftGearForward() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Invalid comparison between Unknown and I4 //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Invalid comparison between Unknown and I4 if ((int)base.gear != 3) { if ((int)base.gear == 2) { ShiftToGearAndSync(3); } else if ((int)base.gear == 1) { ShiftToGearAndSync(2); } } } public void ShiftGearBackInput(CallbackContext context) { if (((CallbackContext)(ref context)).performed) { ShiftGearBack(); } } private void ShiftGearBack() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Invalid comparison between Unknown and I4 //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Invalid comparison between Unknown and I4 if ((int)base.gear != 1) { if ((int)base.gear == 3) { ShiftToGearAndSync(2); } else if ((int)base.gear == 2) { ShiftToGearAndSync(1); } } } public void ShiftToGearAndSync(int setGear) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 //IL_002d: Unknown result type (might be due to invalid IL or missing references) if ((int)base.gear != setGear) { base.timeAtLastGearShift = Time.realtimeSinceStartup; playerWhoShifted = GameNetworkManager.Instance.localPlayerController; base.gear = (CarGearShift)setGear; base.gearStickAudio.PlayOneShot(base.gearStickAudios[setGear - 1]); ShiftToGearRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId, setGear); } } [Rpc(/*Could not decode attribute arguments.*/)] public void ShiftToGearRpc(int playerId, int setGear) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(4010263211u, val2, val, (SendTo)5, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, playerId); BytePacker.WriteValueBitPacked(val3, setGear); ((NetworkBehaviour)this).__endSendRpc(ref val3, 4010263211u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; base.timeAtLastGearShift = Time.realtimeSinceStartup; playerWhoShifted = StartOfRound.Instance.allPlayerScripts[playerId]; base.gear = (CarGearShift)setGear; base.gearStickAudio.PlayOneShot(base.gearStickAudios[setGear - 1]); } } } public void StartMagneting() { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0089: 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) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: 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_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: 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) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_02a5: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) if (!((NetworkBehaviour)this).IsOwner) { return; } SetVehicleKinematic(setKinematic: true); base.magnetedToShip = true; base.magnetTime = 0f; base.magnetRotationTime = 0f; StartOfRound.Instance.isObjectAttachedToMagnet = true; StartOfRound.Instance.attachedVehicle = (VehicleController)(object)this; base.averageVelocityAtMagnetStart = base.averageVelocity; Transform tempTransform = RoundManager.Instance.tempTransform; Quaternion rotation = base.mainRigidbody.rotation; tempTransform.eulerAngles = new Vector3(0f, ((Quaternion)(ref rotation)).eulerAngles.y, 0f); Vector3 eulerAngles = RoundManager.Instance.tempTransform.eulerAngles; float num = Vector3.Angle(RoundManager.Instance.tempTransform.forward, -StartOfRound.Instance.magnetPoint.forward); rotation = base.mainRigidbody.rotation; Vector3 eulerAngles2 = ((Quaternion)(ref rotation)).eulerAngles; if (num < 47f || num > 133f) { if (eulerAngles2.y < 0f) { eulerAngles2.y -= 46f - num; } else { eulerAngles2.y += 46f - num; } } eulerAngles2.y = Mathf.Round(eulerAngles2.y / 90f) * 90f; eulerAngles2.z = Mathf.Round(eulerAngles2.z / 90f) * 90f; eulerAngles2.x += Random.Range(-5f, 5f); base.magnetTargetRotation = Quaternion.Euler(eulerAngles2); base.magnetStartRotation = base.mainRigidbody.rotation; Quaternion rotation2 = base.mainRigidbody.rotation; base.mainRigidbody.rotation = base.magnetTargetRotation; base.magnetTargetPosition = ((Collider)base.boundsCollider).ClosestPoint(StartOfRound.Instance.magnetPoint.position) - base.mainRigidbody.position; float y = base.magnetTargetPosition.y; Bounds bounds = ((Collider)base.boundsCollider).bounds; if (y >= ((Bounds)(ref bounds)).extents.y) { ref float y2 = ref base.magnetTargetPosition.y; float num2 = y2; bounds = ((Collider)base.boundsCollider).bounds; y2 = num2 - ((Bounds)(ref bounds)).extents.y / 2f; } else { float y3 = base.magnetTargetPosition.y; bounds = ((Collider)base.boundsCollider).bounds; if (y3 <= ((Bounds)(ref bounds)).extents.y * 0.4f) { ref float y4 = ref base.magnetTargetPosition.y; float num3 = y4; bounds = ((Collider)base.boundsCollider).bounds; y4 = num3 + ((Bounds)(ref bounds)).extents.y / 2f; } } base.magnetTargetPosition = StartOfRound.Instance.magnetPoint.position - base.magnetTargetPosition; base.magnetTargetPosition.z = Mathf.Min(-20.4f, base.magnetTargetPosition.z); base.magnetTargetPosition.y = Mathf.Max(2.5f, base.magnetStartPosition.y); base.magnetTargetPosition = StartOfRound.Instance.elevatorTransform.InverseTransformPoint(base.magnetTargetPosition); base.mainRigidbody.rotation = rotation2; base.magnetStartPosition = base.mainRigidbody.position; CollectItemsInTruck(); if (!StartOfRound.Instance.inShipPhase && !((Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)null)) { MagnetCarRpc(base.magnetTargetPosition, eulerAngles2, base.magnetStartPosition, base.magnetStartRotation, eulerAngles, base.averageVelocityAtMagnetStart); } } [Rpc(/*Could not decode attribute arguments.*/)] public void MagnetCarRpc(Vector3 targetPosition, Vector3 targetRotation, Vector3 startPosition, Quaternion startRotation, Vector3 tempRotation, Vector3 avgVel) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_016d: 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_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0179: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(21932990u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref targetPosition); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref targetRotation); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref startPosition); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref startRotation); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref tempRotation); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref avgVel); ((NetworkBehaviour)this).__endSendRpc(ref val3, 21932990u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetVehicleKinematic(setKinematic: true); base.magnetedToShip = true; base.magnetTime = 0f; base.magnetRotationTime = 0f; base.averageVelocityAtMagnetStart = avgVel; RoundManager.Instance.tempTransform.eulerAngles = tempRotation; StartOfRound.Instance.isObjectAttachedToMagnet = true; StartOfRound.Instance.attachedVehicle = (VehicleController)(object)this; base.magnetStartPosition = startPosition; base.magnetStartRotation = startRotation; base.magnetTargetPosition = targetPosition; base.magnetTargetRotation = Quaternion.Euler(targetRotation); CollectItemsInTruck(); } } } public void CollectItemsInTruck() { } public void AddEngineOil() { } public void AddEngineOilOnLocalClient(int setCarHP) { base.hoodAudio.PlayOneShot(base.pourOil); base.carHP = setCarHP; } [Rpc(/*Could not decode attribute arguments.*/)] public void AddEngineOilRpc(int setHP) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(918372418u, val2, val, (SendTo)5, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, setHP); ((NetworkBehaviour)this).__endSendRpc(ref val3, 918372418u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; AddEngineOilOnLocalClient(setHP); } } } public void AddTurboBoost() { } public void AddTurboBoostOnLocalClient(int setTurboBoosts) { base.hoodAudio.PlayOneShot(base.pourTurbo); base.turboBoosts = setTurboBoosts; } [Rpc(/*Could not decode attribute arguments.*/)] public void AddTurboBoostRpc(int setTurboBoosts) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3360889087u, val2, val, (SendTo)5, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, setTurboBoosts); ((NetworkBehaviour)this).__endSendRpc(ref val3, 3360889087u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; AddTurboBoostOnLocalClient(setTurboBoosts); } } } private void DoTurboBoost(CallbackContext context) { //IL_00a3: 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_00aa: Unknown result type (might be due to invalid IL or missing references) if (((CallbackContext)(ref context)).performed) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (!((Object)(object)localPlayerController == (Object)null) && !localPlayerController.isPlayerDead && localPlayerController.isPlayerControlled && !localPlayerController.isTypingChat && !localPlayerController.quickMenuManager.isMenuOpen && base.localPlayerInControl && base.ignitionStarted && !base.jumpingInCar && !base.keyIsInDriverHand) { Vector2 dir = IngamePlayerSettings.Instance.playerInput.actions.FindAction("Move", false).ReadValue(); UseTurboBoostLocalClient(dir); UseTurboBoostRpc(); } } } public void UseTurboBoostLocalClient(Vector2 dir = default(Vector2)) { //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0148: 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_0088: 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_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) PlayerControllerB currentDriver = base.currentDriver; if (currentDriver != null) { currentDriver.playerBodyAnimator.SetTrigger(JUMP_WHILE_IN_CAR); } PlayerControllerB currentDriver2 = base.currentDriver; if (currentDriver2 != null) { currentDriver2.movementAudio.PlayOneShot(base.jumpInCarSFX); } if (((NetworkBehaviour)this).IsOwner) { if (base.turboBoosts == 0) { base.jumpingInCar = true; ((MonoBehaviour)this).StartCoroutine(jerkCarUpward(Vector2.op_Implicit(dir))); return; } Vector3 val = ((Component)this).transform.TransformDirection(new Vector3(dir.x, 0f, dir.y)); base.mainRigidbody.AddForce(val * base.turboBoostForce + Vector3.up * base.turboBoostUpwardForce * 0.6f, (ForceMode)1); } if (base.turboBoosts > 0) { base.turboBoosts = Mathf.Max(0, base.turboBoosts - 1); base.turboBoostAudio.PlayOneShot(base.turboBoostSFX); base.engineAudio1.PlayOneShot(base.turboBoostSFX2); base.turboBoostParticle.Play(true); if (Vector3.Distance(((Component)StartOfRound.Instance.audioListener).transform.position, ((Component)base.turboBoostAudio).transform.position) < 10f) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); } } } private IEnumerator jerkCarUpward(Vector3 dir) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) if (!((NetworkBehaviour)this).IsOwner) { base.jumpingInCar = false; yield break; } yield return (object)new WaitForSeconds(0.16f); Vector3 jerkForce = ((Component)this).transform.TransformDirection(new Vector3(dir.x, 0f, dir.y)); base.mainRigidbody.AddForce(jerkForce * base.turboBoostForce * 0.22f + Vector3.up * base.turboBoostUpwardForce * 0.1f, (ForceMode)1); base.mainRigidbody.AddForceAtPosition(Vector3.up * base.jumpForce, ((Component)base.hoodFireAudio).transform.position - Vector3.up * 2f, (ForceMode)1); yield return (object)new WaitForSeconds(0.15f); base.jumpingInCar = false; } [Rpc(/*Could not decode attribute arguments.*/)] public void UseTurboBoostRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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_00c2: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1336299420u, val2, val, (SendTo)1, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1336299420u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; UseTurboBoostLocalClient(); } } } public void SetHonkingLocalClient(bool honk) { base.honkingHorn = honk; SetHonkRpc(honk); } [Rpc(/*Could not decode attribute arguments.*/)] public void SetHonkRpc(bool honk) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2695918748u, val2, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref honk, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 2695918748u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; base.honkingHorn = honk; } } } public void OnDisable() { //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) RemoveCarRainCollision(); DisableControl(); if (base.localPlayerInControl || base.localPlayerInPassengerSeat) { GameNetworkManager.Instance.localPlayerController.CancelSpecialTriggerAnimations(); } GrabbableObject[] componentsInChildren = ((Component)base.physicsRegion.physicsTransform).GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { if ((Object)(object)RoundManager.Instance.mapPropsContainer != (Object)null) { ((Component)componentsInChildren[i]).transform.SetParent(RoundManager.Instance.mapPropsContainer.transform, true); } else { ((Component)componentsInChildren[i]).transform.SetParent((Transform)null, true); } if (!componentsInChildren[i].isHeld) { componentsInChildren[i].FallToGround(false, false, default(Vector3)); } } base.physicsRegion.disablePhysicsRegion = true; if (StartOfRound.Instance.CurrentPlayerPhysicsRegions.Contains(base.physicsRegion)) { StartOfRound.Instance.CurrentPlayerPhysicsRegions.Remove(base.physicsRegion); } PlayerUtils.isSeatedInTruck = false; References.truckController = null; } public void Update() { //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_043d: Unknown result type (might be due to invalid IL or missing references) //IL_0442: Unknown result type (might be due to invalid IL or missing references) if (base.destroyNextFrame) { if (((NetworkBehaviour)this).IsOwner) { Object.Destroy((Object)(object)((Component)base.windwiperPhysicsBody1).gameObject); Object.Destroy((Object)(object)((Component)base.windwiperPhysicsBody2).gameObject); Object.Destroy((Object)(object)((Component)base.ragdollPhysicsBody).gameObject); Object.Destroy((Object)(object)((Component)playerPhysicsBody).gameObject); Object.Destroy((Object)(object)((Component)this).gameObject); } return; } if ((Object)(object)((NetworkBehaviour)this).NetworkObject != (Object)null && !((NetworkBehaviour)this).NetworkObject.IsSpawned) { RemoveCarRainCollision(); base.physicsRegion.disablePhysicsRegion = true; if (StartOfRound.Instance.CurrentPlayerPhysicsRegions.Contains(base.physicsRegion)) { StartOfRound.Instance.CurrentPlayerPhysicsRegions.Remove(base.physicsRegion); } if (base.localPlayerInControl || base.localPlayerInPassengerSeat) { GameNetworkManager.Instance.localPlayerController.CancelSpecialTriggerAnimations(); } GrabbableObject[] componentsInChildren = ((Component)base.physicsRegion.physicsTransform).GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { if ((Object)(object)RoundManager.Instance.mapPropsContainer != (Object)null) { ((Component)componentsInChildren[i]).transform.SetParent(RoundManager.Instance.mapPropsContainer.transform, true); } else { ((Component)componentsInChildren[i]).transform.SetParent((Transform)null, true); } if (!componentsInChildren[i].isHeld) { componentsInChildren[i].FallToGround(false, false, default(Vector3)); } } base.destroyNextFrame = true; return; } if (base.magnetedToShip) { if (!StartOfRound.Instance.magnetOn) { base.magnetedToShip = false; StartOfRound.Instance.isObjectAttachedToMagnet = false; CollectItemsInTruck(); return; } base.magnetTime = Mathf.Min(base.magnetTime + Time.deltaTime, 1f); base.magnetRotationTime = Mathf.Min(base.magnetTime + Time.deltaTime * 0.75f, 1f); if (StartOfRound.Instance.inShipPhase) { base.carHP = base.baseCarHP; syncedCarHP = base.carHP; } if (!base.finishedMagneting && base.magnetTime > 0.7f) { base.finishedMagneting = true; base.turbulenceAmount = 2f; base.turbulenceAudio.volume = 0.6f; base.turbulenceAudio.PlayOneShot(base.maxCollisions[Random.Range(0, base.maxCollisions.Length)]); } } else { base.finishedMagneting = false; if ((Object)(object)StartOfRound.Instance.attachedVehicle == (Object)(object)this) { StartOfRound.Instance.attachedVehicle = null; } } ReactToDamage(); if (base.carDestroyed) { RHDInterior.driverSeatTrigger.interactable = false; RHDInterior.passengerSeatTrigger.interactable = false; LHDInterior.driverSeatTrigger.interactable = false; LHDInterior.passengerSeatTrigger.interactable = false; return; } RHDInterior.driverSeatTrigger.interactable = isInteriorRHD && base.hasBeenSpawned && Time.realtimeSinceStartup - base.timeSinceSpringingDriverSeat > 3f; RHDInterior.passengerSeatTrigger.interactable = isInteriorRHD && base.hasBeenSpawned; LHDInterior.driverSeatTrigger.interactable = !isInteriorRHD && base.hasBeenSpawned && Time.realtimeSinceStartup - base.timeSinceSpringingDriverSeat > 3f; LHDInterior.passengerSeatTrigger.interactable = !isInteriorRHD && base.hasBeenSpawned; SetCarEffects(base.steeringAnimValue); UpdateOccupantAnimations(); if (base.localPlayerInControl && base.ignitionStarted) { GetVehicleInput(); } else if (!((NetworkBehaviour)this).IsOwner) { base.moveInputVector = syncedMoveInputVector; base.steeringAnimValue = base.moveInputVector.x; base.drivePedalPressed = syncedDrivePedalPressed; base.brakePedalPressed = syncedBrakePedalPressed; } } private void UpdateOccupantAnimations() { if (!((Object)(object)base.currentDriver == (Object)null) && !((Object)(object)base.currentDriver.playerBodyAnimator == (Object)null) && !disableAnimations && base.keyIgnitionCoroutine == null && base.ignitionStarted) { base.currentDriver.playerBodyAnimator.SetFloat(ANIMATION_SPEED, playerSteeringWheelAnimFloat); base.currentDriver.playerBodyAnimator.SetFloat(CAR_MOTION_TIME, base.gearStickAnimValue); int num = 1; float num2 = base.currentDriver.ladderCameraHorizontal; if (!base.localPlayerInControl) { PlayerControllerBPatches.PlayerControllerBData playerControllerBData = PlayerControllerBPatches.playerData[base.currentDriver]; num2 = playerControllerBData.syncedCameraHorizontal; } float cameraLookAngle = currentInterior.cameraLookAngle; if (isInteriorRHD ? (num2 < cameraLookAngle) : (num2 > cameraLookAngle)) { num = ((!((Object)(object)playerWhoShifted == (Object)(object)base.currentDriver) || !(Time.realtimeSinceStartup - base.timeAtLastGearShift < 1.35f)) ? 4 : 5); base.currentDriver.playerBodyAnimator.SetInteger(CAR_ANIM, num); } else { base.currentDriver.playerBodyAnimator.SetInteger(CAR_ANIM, num); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void SyncRadioTimeRpc(float songTime, float syncedTime, float staticTime) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_0104: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(242240265u, val2, val, (SendTo)3, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref songTime, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref syncedTime, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref staticTime, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 242240265u, val2, val, (SendTo)3, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; base.currentSongTime = songTime; syncedSongTime = syncedTime; timeLastSyncedRadio = Time.realtimeSinceStartup; SetRadioTime(); SetRadioStaticTime(staticTime); } } } public void SetRadioTime() { if (!((Object)(object)base.radioAudio.clip == (Object)null) && base.radioOn) { float num = (syncedSongTime + (Time.realtimeSinceStartup - timeLastSyncedRadio)) % base.radioAudio.clip.length; float num2 = num - base.radioAudio.time; if (Mathf.Abs(num2) > 1f) { base.radioAudio.time = num; } } } public void SetRadioStaticTime(float staticTime) { float num = (staticTime + (Time.realtimeSinceStartup - timeLastSyncedRadio)) % base.radioInterference.clip.length; float num2 = num - base.radioInterference.time; if (Mathf.Abs(num2) > 1f) { base.radioInterference.time = num; } } public void ChangeRadioStation() { if (base.radioClips.Length == 0) { Plugin.Logger.LogWarning((object)"V55: No music found! are you using CruiserTunes to remove the original tracks?"); return; } base.currentRadioClip = (base.currentRadioClip + 1) % base.radioClips.Length; switch ((int)Mathf.Round(base.radioSignalQuality)) { case 0: base.radioSignalQuality = 3f; base.radioSignalDecreaseThreshold = 90f; break; case 1: base.radioSignalQuality = 2f; base.radioSignalDecreaseThreshold = 70f; break; case 2: base.radioSignalQuality = 1f; base.radioSignalDecreaseThreshold = 30f; break; case 3: base.radioSignalQuality = 1f; base.radioSignalDecreaseThreshold = 10f; break; } ((VehicleController)this).SetRadioOnLocalClient(true, true); float num = Mathf.Clamp(base.currentSongTime % base.radioAudio.clip.length, 0.01f, base.radioAudio.clip.length - 0.1f); timeLastSyncedRadio = Time.realtimeSinceStartup; base.radioAudio.time = num; SetRadioStationRpc(base.currentRadioClip, num, base.radioSignalQuality, base.radioSignalDecreaseThreshold); } [Rpc(/*Could not decode attribute arguments.*/)] public void SetRadioStationRpc(int radioStation, float setTime, float signalQuality, float signalDecrease) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_0111: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2877346515u, val2, val, (SendTo)5, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, radioStation); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setTime, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref signalQuality, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref signalDecrease, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 2877346515u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (base.radioClips.Length == 0) { Plugin.Logger.LogWarning((object)"V55: No music found! are you using CruiserTunes to remove the original tracks?"); return; } base.currentRadioClip = radioStation; base.radioSignalQuality = signalQuality; base.radioSignalDecreaseThreshold = signalDecrease; ((VehicleController)this).SetRadioOnLocalClient(true, true); timeLastSyncedRadio = Time.realtimeSinceStartup; base.radioAudio.time = setTime; } } public void SwitchRadio() { if (base.radioClips.Length == 0) { Plugin.Logger.LogWarning((object)"V55: No music found! are you using CruiserTunes to remove the original tracks?"); return; } ((VehicleController)this).SetRadioOnLocalClient(!base.radioOn, false); float num = Mathf.Clamp(base.currentSongTime % base.radioAudio.clip.length, 0.01f, base.radioAudio.clip.length - 0.1f); timeLastSyncedRadio = Time.realtimeSinceStartup; base.radioAudio.time = num; SetRadioRpc(base.radioOn, base.currentRadioClip, num, base.radioSignalQuality, base.radioSignalDecreaseThreshold); } [Rpc(/*Could not decode attribute arguments.*/)] public void SetRadioRpc(bool setRadioOn, int radioStation, float setTime, float signalQuality, float signalDecrease) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: 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) //IL_012c: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(4016335049u, val2, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setRadioOn, default(ForPrimitives)); BytePacker.WriteValueBitPacked(val3, radioStation); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setTime, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref signalQuality, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref signalDecrease, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 4016335049u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (base.radioClips.Length == 0) { Plugin.Logger.LogWarning((object)"V55: No music found! are you using CruiserTunes to remove the original tracks?"); return; } base.currentRadioClip = radioStation; base.radioSignalQuality = signalQuality; base.radioSignalDecreaseThreshold = signalDecrease; ((VehicleController)this).SetRadioOnLocalClient(setRadioOn, false); timeLastSyncedRadio = Time.realtimeSinceStartup; base.radioAudio.time = setTime; } } public void SetRadioValues() { //IL_0146: Unknown result type (might be due to invalid IL or missing references) if (((NetworkBehaviour)this).IsServer && base.radioTurnedOnBefore) { base.currentSongTime += Time.deltaTime; if (Time.realtimeSinceStartup - timeLastSyncedRadio > 1f) { timeLastSyncedRadio = Time.realtimeSinceStartup; syncedSongTime = base.radioAudio.time; SyncRadioTimeRpc(base.currentSongTime, syncedSongTime, base.radioInterference.time); } } if (!base.radioOn || (Object)(object)base.radioAudio.clip == (Object)null) { if (base.radioAudio.isPlaying) { base.radioAudio.Stop(); } if (base.radioInterference.isPlaying) { base.radioInterference.Stop(); } return; } if (!base.radioTurnedOnBefore) { base.radioTurnedOnBefore = true; } if (((NetworkBehaviour)this).IsOwner) { if (base.radioAudio.isPlaying && Time.realtimeSinceStartup > radioPingTimestamp) { radioPingTimestamp = Time.realtimeSinceStartup + 1f; RoundManager.Instance.PlayAudibleNoise(((Component)base.radioAudio).transform.position, 16f, Mathf.Min((base.radioAudio.volume + base.radioInterference.volume) * 0.5f, 0.9f), 0, false, 106217); } float num = Random.Range(0, 100); float num2 = (3f - base.radioSignalQuality - 1.5f) * base.radioSignalTurbulence; base.radioSignalDecreaseThreshold = Mathf.Clamp(base.radioSignalDecreaseThreshold + Time.deltaTime * num2, 0f, 100f); if (num > base.radioSignalDecreaseThreshold) { base.radioSignalQuality = Mathf.Clamp(base.radioSignalQuality - Time.deltaTime, 0f, 3f); } else { base.radioSignalQuality = Mathf.Clamp(base.radioSignalQuality + Time.deltaTime, 0f, 3f); } if (Time.realtimeSinceStartup - base.changeRadioSignalTime > 0.3f) { base.changeRadioSignalTime = Time.realtimeSinceStartup; if (base.radioSignalQuality < 1.2f && Random.Range(0, 100) < 6) { base.radioSignalQuality = Mathf.Min(base.radioSignalQuality + 1.5f, 3f); base.radioSignalDecreaseThreshold = Mathf.Min(base.radioSignalDecreaseThreshold + 30f, 100f); } SetRadioSignalQualityRpc((int)Mathf.Round(base.radioSignalQuality), base.radioSignalDecreaseThreshold); } } switch ((int)Mathf.Round(base.radioSignalQuality)) { case 3: base.radioAudio.volume = Mathf.Lerp(base.radioAudio.volume, 1f, 2f * Time.deltaTime); base.radioInterference.volume = Mathf.Lerp(base.radioInterference.volume, 0f, 2f * Time.deltaTime); break; case 2: base.radioAudio.volume = Mathf.Lerp(base.radioAudio.volume, 0.85f, 2f * Time.deltaTime); base.radioInterference.volume = Mathf.Lerp(base.radioInterference.volume, 0.4f, 2f * Time.deltaTime); break; case 1: base.radioAudio.volume = Mathf.Lerp(base.radioAudio.volume, 0.6f, 2f * Time.deltaTime); base.radioInterference.volume = Mathf.Lerp(base.radioInterference.volume, 0.8f, 2f * Time.deltaTime); break; case 0: base.radioAudio.volume = Mathf.Lerp(base.radioAudio.volume, 0.4f, 2f * Time.deltaTime); base.radioInterference.volume = Mathf.Lerp(base.radioInterference.volume, 1f, 2f * Time.deltaTime); break; } } [Rpc(/*Could not decode attribute arguments.*/)] public void SetRadioSignalQualityRpc(int signalQuality, float signalDecrease) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00db: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3722939512u, val2, val, (SendTo)1, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, signalQuality); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref signalDecrease, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 3722939512u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; base.radioSignalQuality = signalQuality; base.radioSignalDecreaseThreshold = signalDecrease; } } } public void SetRadioOnLocalClient(bool setRadioOn, bool setClip = true) { Plugin.Logger.LogDebug((object)$"V55: Radio called with setRadioOn? {setRadioOn}, setClip? {setClip}"); base.radioOn = setRadioOn; if (setRadioOn) { if (setClip || (Object)(object)base.radioAudio.clip == (Object)null) { if ((Object)(object)base.radioAudio.clip == (Object)null) { Plugin.Logger.LogDebug((object)"V55: Setting station, was null!"); } base.radioAudio.clip = base.radioClips[base.currentRadioClip]; Plugin.Logger.LogDebug((object)$"V55: Set radio clip to {base.currentRadioClip}, station? {((Object)base.radioAudio.clip).name}"); } base.radioAudio.Play(); base.radioInterference.Play(); } else { base.radioAudio.Stop(); base.radioInterference.Stop(); Plugin.Logger.LogDebug((object)"V55: Stop radio playback!"); } } private void MatchWheelMeshToCollider(MeshRenderer wheelMesh, WheelCollider wheelCollider, float steeringInput = 0f) { //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: 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_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0093: 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) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: 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) if (inBetaMode) { Vector3 position = ((Component)wheelCollider).transform.position; if (Physics.Raycast(position, -((Component)wheelCollider).transform.up, ref base.hit, wheelCollider.suspensionDistance + wheelCollider.radius, 2305)) { ((Component)wheelMesh).transform.position = ((RaycastHit)(ref base.hit)).point + ((Component)wheelCollider).transform.up * wheelCollider.radius; } else { ((Component)wheelMesh).transform.position = position - ((Component)wheelCollider).transform.up * wheelCollider.suspensionDistance; } ((Component)wheelMesh).transform.localRotation = Quaternion.Euler(wheelsRPM, steeringInput, 0f); } else { Vector3 position2 = default(Vector3); Quaternion rotation = default(Quaternion); wheelCollider.GetWorldPose(ref position2, ref rotation); ((Component)wheelMesh).transform.position = position2; ((Component)wheelMesh).transform.rotation = rotation; } } private void SetCarEffects(float setSteering) { setSteering = (((NetworkBehaviour)this).IsOwner ? setSteering : 0f); base.steeringWheelAnimFloat = Mathf.Clamp(base.steeringWheelAnimFloat + setSteering * base.steeringWheelTurnSpeed * Time.deltaTime / 6f, -1f, 1f); float num = Mathf.Clamp((base.steeringWheelAnimFloat + 1f) / 2f, 0f, 1f) - base.steeringWheelAnimator.GetFloat(STEERING_WHEEL_SPEED); base.steeringWheelAnimator.SetFloat(STEERING_WHEEL_SPEED, Mathf.Clamp((base.steeringWheelAnimFloat + 1f) / 2f, 0f, 1f)); if (base.localPlayerInControl && (Object)(object)base.currentDriver != (Object)null) { playerSteeringWheelAnimFloat = base.currentDriver.playerBodyAnimator.GetFloat(ANIMATION_SPEED) + num * -2f; } SetCarAutomaticShifter(); SetCarLightingEffects(); SetCarAudioEffects(); SetCarTyreEffects(); SetCarKeyEffects(); if (((NetworkBehaviour)this).IsOwner) { SyncCarEffects(); if (!base.syncedExtremeStress && base.underExtremeStress && base.extremeStressAudio.volume > 0.35f) { base.syncedExtremeStress = true; SyncExtremeStressRpc(base.underExtremeStress); } else if (base.syncedExtremeStress && !base.underExtremeStress && base.extremeStressAudio.volume < 0.5f) { base.syncedExtremeStress = false; SyncExtremeStressRpc(base.underExtremeStress); } } else { base.steeringWheelAnimFloat = Mathf.MoveTowards(base.steeringWheelAnimFloat, syncedWheelRotation, base.steeringWheelTurnSpeed * Time.deltaTime / 6f); base.steeringInput = Mathf.MoveTowards(base.steeringInput, syncedSteeringInput, base.steeringWheelTurnSpeed * Time.deltaTime); playerSteeringWheelAnimFloat = Mathf.MoveTowards(playerSteeringWheelAnimFloat, syncedPlayerSteeringAnim, base.steeringWheelTurnSpeed * Time.deltaTime / 6f); } } private void SetCarAutomaticShifter() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected I4, but got Unknown CarGearShift gear = base.gear; CarGearShift val = gear; switch (val - 1) { case 2: base.gearStickAnimValue = Mathf.MoveTowards(base.gearStickAnimValue, 1f, 15f * Time.deltaTime * (Time.realtimeSinceStartup - base.timeAtLastGearShift)); break; case 1: base.gearStickAnimValue = Mathf.MoveTowards(base.gearStickAnimValue, 0.5f, 15f * Time.deltaTime * (Time.realtimeSinceStartup - base.timeAtLastGearShift)); break; case 0: base.gearStickAnimValue = Mathf.MoveTowards(base.gearStickAnimValue, 0f, 15f * Time.deltaTime * (Time.realtimeSinceStartup - base.timeAtLastGearShift)); break; } base.gearStickAnimator.SetFloat("gear", Mathf.Clamp(base.gearStickAnimValue, 0.01f, 0.99f)); } private void SetCarManualShifter() { } private void SetCarLightingEffects() { float num = Mathf.Round(wheelRPM / 5f) * 5f; bool backLightsOn = base.ignitionStarted && num <= -5f; SetBackLightsOn(backLightsOn); } private void SetBackLightsOn(bool setOn) { if (base.backLightsOn != setOn) { base.backLightsOn = setOn; ((Renderer)base.backLightsMesh).material = (setOn ? base.backLightOnMat : base.headlightsOffMat); base.backLightsContainer.SetActive(setOn); } } private void SetVehicleAudioProperties(AudioSource audio, bool audioActive, float lowest, float highest, float lerpSpeed, bool useVolumeInsteadOfPitch = false, float onVolume = 1f) { if (audioActive && ((Object)(object)audio == (Object)(object)base.rollingAudio || (Object)(object)audio == (Object)(object)base.skiddingAudio) && (base.magnetedToShip || allWheelsAirborne)) { audioActive = false; } if (!audioActive) { if (useVolumeInsteadOfPitch) { audio.volume = Mathf.Lerp(audio.volume, 0f, lerpSpeed * Time.deltaTime); } else { audio.volume = Mathf.Lerp(audio.volume, 0f, 4f * Time.deltaTime); audio.pitch = Mathf.Lerp(audio.pitch, lowest, 4f * Time.deltaTime); } if (!audio.isPlaying) { return; } if ((Object)(object)audio == (Object)(object)base.engineAudio1 || (Object)(object)audio == (Object)(object)base.engineAudio2) { if (audio.volume == 0f) { audio.Stop(); } } else if (audio.volume <= 0.001f) { audio.Stop(); } } else { if (!audio.isPlaying) { audio.Play(); } if (useVolumeInsteadOfPitch) { audio.volume = Mathf.Max(Mathf.Lerp(audio.volume, highest, lerpSpeed * Time.deltaTime), lowest); return; } audio.volume = Mathf.Lerp(audio.volume, onVolume, 20f * Time.deltaTime); audio.pitch = Mathf.Lerp(audio.pitch, highest, lerpSpeed * Time.deltaTime); } } public void SetCarAudioEffects() { //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_020e: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_03e2: Unknown result type (might be due to invalid IL or missing references) float highest = Mathf.Clamp(base.EngineRPM / base.engineIntensityPercentage, 0.65f, 1.15f); float highest2 = Mathf.Clamp(base.EngineRPM / base.engineIntensityPercentage, 0.7f, 1.5f); float num = Mathf.Abs(wheelRPM); float highest3 = Mathf.Clamp(num / 63f, 0f, 1f); base.carEngine2AudioActive = base.ignitionStarted; base.carRollingAudioActive = !allWheelsAirborne && num > 10f; if (!base.ignitionStarted) { highest = 1f; } SetVehicleAudioProperties(base.engineAudio1, base.carEngine1AudioActive, 0.7f, highest, 2f, useVolumeInsteadOfPitch: false, 0.7f); SetVehicleAudioProperties(base.engineAudio2, base.carEngine2AudioActive, 0.7f, highest2, 3f, useVolumeInsteadOfPitch: false, 0.5f); SetVehicleAudioProperties(base.rollingAudio, base.carRollingAudioActive, 0f, highest3, 5f, useVolumeInsteadOfPitch: true); SetVehicleAudioProperties(base.extremeStressAudio, base.underExtremeStress, 0.2f, 1f, 3f, useVolumeInsteadOfPitch: true); SetRadioValues(); if (base.engineAudio1.volume > 0.3f && base.engineAudio1.isPlaying && !inBetaMode && Time.realtimeSinceStartup - base.timeAtLastEngineAudioPing > (inBetaMode ? 0.01f : 2f)) { base.timeAtLastEngineAudioPing = Time.realtimeSinceStartup; int num2 = (inBetaMode ? 106217 : 2692); if (base.EngineRPM > 130f) { RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 32f, 0.75f, 0, false, num2); } if (base.EngineRPM > 60f) { RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 25f, 0.6f, 0, false, num2); } else if (!base.ignitionStarted) { RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 15f, 0.6f, 0, false, num2); } else { RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 11f, 0.5f, 0, false, num2); } } base.turbulenceAudio.volume = Mathf.Lerp(base.turbulenceAudio.volume, Mathf.Min(1f, base.turbulenceAmount), 10f * Time.deltaTime); base.turbulenceAmount = Mathf.Max(base.turbulenceAmount - Time.deltaTime, 0f); if (base.turbulenceAudio.volume > 0.02f) { if (!base.turbulenceAudio.isPlaying) { base.turbulenceAudio.Play(); } } else if (base.turbulenceAudio.isPlaying) { base.turbulenceAudio.Stop(); } if (base.honkingHorn) { if (!inBetaMode) { base.hornAudio.pitch = 1f; } if (!base.hornAudio.isPlaying) { base.hornAudio.Play(); if (inBetaMode) { base.hornAudio.pitch = 1f; } } if (Time.realtimeSinceStartup - base.timeAtLastHornPing > 2f) { base.timeAtLastHornPing = Time.realtimeSinceStartup; RoundManager.Instance.PlayAudibleNoise(((Component)base.hornAudio).transform.position, 28f, 0.85f, 0, false, 106217); } } else { base.hornAudio.pitch = Mathf.Max(base.hornAudio.pitch - Time.deltaTime * 6f, 0.01f); if (base.hornAudio.pitch <= 0.02f) { base.hornAudio.Stop(); } } } public void SetCarTyreEffects() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) if (((NetworkBehaviour)this).IsOwner) { float num = Vector3.Dot(Vector3.Normalize(base.mainRigidbody.velocity * 1000f), ((Component)this).transform.forward); float num2 = Mathf.Abs(backWheelRPM); bool flag = num > -0.6f && num < 0.4f && (((Vector3)(ref base.averageVelocity)).magnitude > 4f || num2 > 400f); if (backWheelsGrounded) { if (psuedoSlipping || forwardSlipping || sidewaySlipping) { flag = true; num = Mathf.Max(num, 0.8f); if (((Vector3)(ref base.averageVelocity)).magnitude > 8f && !base.tireSparks.isPlaying) { base.tireSparks.Play(true); } } else { flag = false; if (base.tireSparks.isEmitting) { base.tireSparks.Stop(true, (ParticleSystemStopBehavior)1); } } } else { flag = false; if (base.tireSparks.isEmitting) { base.tireSparks.Stop(true, (ParticleSystemStopBehavior)1); } } SetVehicleAudioProperties(base.skiddingAudio, flag, 0f, num, 3f, useVolumeInsteadOfPitch: true); if (Mathf.Abs(tyreStress - num) > 0.02f || wheelSlipping != flag) { tyreStress = num; wheelSlipping = flag; SetTyreStressRpc(num, flag); } } else { if (wheelSlipping && ((Vector3)(ref base.averageVelocity)).magnitude > 8f && !base.tireSparks.isPlaying) { base.tireSparks.Play(true); } else if (!wheelSlipping && base.tireSparks.isEmitting) { base.tireSparks.Stop(true, (ParticleSystemStopBehavior)1); } SetVehicleAudioProperties(base.skiddingAudio, wheelSlipping, 0f, tyreStress, 3f, useVolumeInsteadOfPitch: true); } } public void SetCarKeyEffects() { //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_04b6: Unknown result type (might be due to invalid IL or missing references) //IL_04cc: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_04fe: Unknown result type (might be due to invalid IL or missing references) //IL_051a: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_07d5: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_082e: Unknown result type (might be due to invalid IL or missing references) //IL_0844: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_0892: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_0662: Unknown result type (might be due to invalid IL or missing references) //IL_065a: Unknown result type (might be due to invalid IL or missing references) //IL_060c: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_0667: Unknown result type (might be due to invalid IL or missing references) //IL_0611: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03af: Unknown result type (might be due to invalid IL or missing references) //IL_067a: Unknown result type (might be due to invalid IL or missing references) //IL_0672: Unknown result type (might be due to invalid IL or missing references) //IL_0624: Unknown result type (might be due to invalid IL or missing references) //IL_061c: Unknown result type (might be due to invalid IL or missing references) //IL_067f: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06d4: Unknown result type (might be due to invalid IL or missing references) //IL_06ea: Unknown result type (might be due to invalid IL or missing references) //IL_0742: Unknown result type (might be due to invalid IL or missing references) //IL_0755: Unknown result type (might be due to invalid IL or missing references) //IL_0757: Unknown result type (might be due to invalid IL or missing references) if (((Behaviour)ignitionAnimator).enabled != !inBetaMode) { ((Behaviour)ignitionAnimator).enabled = !inBetaMode; } if (inBetaMode) { if ((Object)(object)((Component)base.keyObject).transform.parent != (Object)(object)carKeyContainer.transform) { ((Component)base.keyObject).transform.SetParent(carKeyContainer.transform); } ((Component)base.keyObject).transform.localScale = ignitionKeyScale; if ((Object)(object)base.currentDriver == (Object)null || !base.keyIsInDriverHand) { if (((Renderer)base.keyObject).enabled != base.keyIsInIgnition) { ((Renderer)base.keyObject).enabled = base.keyIsInIgnition; } if ((Object)(object)carKeyInHand.transform.parent != (Object)(object)carKeyContainer.transform) { carKeyInHand.transform.SetParent(carKeyContainer.transform, false); } carKeyInHand.transform.localScale = Vector3.one; carKeyInHand.transform.localPosition = Vector3.zero; carKeyInHand.transform.localRotation = Quaternion.identity; if (base.ignitionStarted) { ((Component)base.keyObject).transform.position = base.ignitionTurnedPosition.position; ((Component)base.keyObject).transform.rotation = base.ignitionTurnedPosition.rotation; } else { ((Component)base.keyObject).transform.position = base.ignitionNotTurnedPosition.position; ((Component)base.keyObject).transform.rotation = base.ignitionNotTurnedPosition.rotation; } } else if (base.keyIsInDriverHand) { if (!((Renderer)base.keyObject).enabled) { ((Renderer)base.keyObject).enabled = true; } Transform val = ((!base.localPlayerInControl) ? base.currentDriver.serverItemHolder : base.currentDriver.localItemHolder); if ((Object)(object)carKeyInHand.transform.parent != (Object)(object)val.parent) { carKeyInHand.transform.SetParent(val.parent, false); } carKeyInHand.transform.localScale = Vector3.one; if (base.localPlayerInControl) { carKeyInHand.transform.SetLocalPositionAndRotation(new Vector3(-0.002f, 0.036f, -0.042f), Quaternion.Euler(-3.616f, -2.302f, 0.145f)); } else { carKeyInHand.transform.SetLocalPositionAndRotation(new Vector3(-0.04170258f, 6.530248E-05f, -0.03752365f), Quaternion.Euler(13.794f, -3.466f, -20.947f)); } ((Component)base.keyObject).transform.position = carKeyInHand.transform.position; ((Component)base.keyObject).transform.rotation = carKeyInHand.transform.rotation; ((Component)base.keyObject).transform.Rotate(base.rotationOffset); Vector3 positionOffset = base.positionOffset; positionOffset = carKeyInHand.transform.rotation * positionOffset; Transform transform = ((Component)base.keyObject).transform; transform.position += positionOffset; } } else if ((Object)(object)base.currentDriver == (Object)null || base.keyIsInIgnition) { if (((Renderer)base.keyObject).enabled != base.keyIsInIgnition) { ((Renderer)base.keyObject).enabled = base.keyIsInIgnition; } if ((Object)(object)((Component)base.keyObject).transform.parent != (Object)(object)carKeyContainer.transform) { ((Component)base.keyObject).transform.SetParent(carKeyContainer.transform); } ((Component)base.keyObject).transform.localScale = ignitionKeyScale; if ((Object)(object)carKeyInHand.transform.parent != (Object)(object)carKeyContainer.transform) { carKeyInHand.transform.SetParent(carKeyContainer.transform, false); } carKeyInHand.transform.localScale = Vector3.one; carKeyInHand.transform.localPosition = Vector3.zero; carKeyInHand.transform.localRotation = Quaternion.identity; ((Component)base.keyObject).transform.position = ignitionKeyPosition.position; ((Component)base.keyObject).transform.rotation = ignitionKeyPosition.rotation; if ((Object)(object)base.currentDriver == (Object)null && (Object)(object)leftHandServerItemTarget != (Object)null) { leftHandServerItemTarget = null; } } else if ((Object)(object)leftHandServerItemTarget == (Object)null) { leftHandServerItemTarget = ((Component)base.currentDriver.bodyParts[2].Find("hand.L")).transform; } else if (base.keyIsInDriverHand) { if (!((Renderer)base.keyObject).enabled) { ((Renderer)base.keyObject).enabled = true; } Transform val2; Vector3 localPosition; Vector3 val3; if (!isInteriorRHD) { val2 = (base.localPlayerInControl ? base.currentDriver.localItemHolder.parent : base.currentDriver.serverItemHolder.parent); localPosition = (base.localPlayerInControl ? LHD_Pos_Local : LHD_Pos_Server); val3 = (base.localPlayerInControl ? LHD_Rot_Local : LHD_Rot_Server); } else { val2 = (Transform)(base.localPlayerInControl ? ((object)((Component)base.currentDriver.leftHandItemTarget).transform) : ((object)leftHandServerItemTarget)); localPosition = (base.localPlayerInControl ? RHD_Pos_Local : RHD_Pos_Server); val3 = (base.localPlayerInControl ? RHD_Rot_Local : RHD_Rot_Server); } if ((Object)(object)carKeyInHand.transform.parent != (Object)(object)val2) { carKeyInHand.transform.SetParent(val2, false); } carKeyInHand.transform.localScale = Vector3.one; carKeyInHand.transform.localPosition = Vector3.zero; carKeyInHand.transform.localRotation = Quaternion.identity; if ((Object)(object)((Component)base.keyObject).transform.parent != (Object)(object)carKeyInHand.transform) { ((Component)base.keyObject).transform.SetParent(carKeyInHand.transform); } ((Component)base.keyObject).transform.localPosition = localPosition; ((Component)base.keyObject).transform.localRotation = Quaternion.Euler(val3); } else { if (((Renderer)base.keyObject).enabled) { ((Renderer)base.keyObject).enabled = false; } if ((Object)(object)((Component)base.keyObject).transform.parent != (Object)(object)carKeyContainer.transform) { ((Component)base.keyObject).transform.SetParent(carKeyContainer.transform); } ((Component)base.keyObject).transform.localScale = ignitionKeyScale; if ((Object)(object)carKeyInHand.transform.parent != (Object)(object)carKeyContainer.transform) { carKeyInHand.transform.SetParent(carKeyContainer.transform, false); } carKeyInHand.transform.localScale = Vector3.one; carKeyInHand.transform.localPosition = Vector3.zero; carKeyInHand.transform.localRotation = Quaternion.identity; ((Component)base.keyObject).transform.position = ignitionKeyPosition.position; ((Component)base.keyObject).transform.rotation = ignitionKeyPosition.rotation; } } public void FixedUpdate() { SetVehicleToDropship(); SetVehicleToFixedPosition(); TryAttachToShipMagnet(); MovePhysicsBodies(); CalculateVehicleVelocity(); SyncCarPhysicsToOtherClients(); if (base.carDestroyed) { SetPreviousVehiclePosition(); return; } ApplySteering(); ApplyWheelForces(); SetVFXWheelSpeed(); MatchWheelMeshToCollider(base.leftWheelMesh, base.FrontLeftWheel, tyreSteeringAngle); MatchWheelMeshToCollider(base.rightWheelMesh, base.FrontRightWheel, tyreSteeringAngle); MatchWheelMeshToCollider(base.backLeftWheelMesh, base.BackLeftWheel); MatchWheelMeshToCollider(base.backRightWheelMesh, base.BackRightWheel); allWheelsAirborne = !base.FrontLeftWheel.isGrounded && !base.FrontRightWheel.isGrounded && !base.BackLeftWheel.isGrounded && !base.BackRightWheel.isGrounded; backWheelsGrounded = base.BackLeftWheel.isGrounded && base.BackRightWheel.isGrounded; if (!((NetworkBehaviour)this).IsOwner) { SetCarPhysicsValuesOnClient(); SetTorqueForces(useSynced: true); CalculateWheelSlip(calculatePhysics: false); SetPreviousVehiclePosition(); return; } UpdateCarStress(); UpdateEngineRPMFromWheels(); SetTorqueForces(useSynced: false); SyncCarDrivetrain(); SyncCarWheelTorque(); if (base.mainRigidbody.IsSleeping() || base.magnetedToShip || allWheelsAirborne) { CalculateWheelSlip(calculatePhysics: false); SetPreviousVehiclePosition(); } else { CalculateWheelSlip(calculatePhysics: true); SetPreviousVehiclePosition(); } } private void SetCarPhysicsValuesOnClient() { if (base.ignitionStarted) { base.EngineRPM = syncedEngineRPM; } else { base.EngineRPM = Mathf.Lerp(base.EngineRPM, 0f, 3f * Time.fixedDeltaTime); } frontWheelRPM = syncedFrontWheelRPM; backWheelRPM = syncedBackWheelRPM; wheelRPM = syncedWheelRPM; } private void SetPreviousVehiclePosition() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) previousVehiclePosition = base.mainRigidbody.position; previousVehicleRotation = base.mainRigidbody.rotation; } private void SetVehicleToDropship() { //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: 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_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) if (!StartOfRound.Instance.inShipPhase && !base.loadedVehicleFromSave && !hasDeliveredVehicle) { if ((Object)(object)base.itemShip == (Object)null && (Object)(object)References.itemShip != (Object)null) { base.itemShip = References.itemShip; } if ((Object)(object)base.itemShip == (Object)null) { base.inDropshipAnimation = false; SetVehicleKinematic(setKinematic: true); base.mainRigidbody.MovePosition(StartOfRound.Instance.notSpawnedPosition.position + Vector3.forward * 30f); base.syncedPosition = base.mainRigidbody.position; base.syncedRotation = base.mainRigidbody.rotation; } else if (base.itemShip.untetheredVehicle) { base.inDropshipAnimation = false; base.mainRigidbody.MovePosition(base.itemShip.deliverVehiclePoint.position); base.mainRigidbody.MoveRotation(base.itemShip.deliverVehiclePoint.rotation); base.syncedPosition = base.mainRigidbody.position; base.syncedRotation = base.mainRigidbody.rotation; base.hasBeenSpawned = true; hasDeliveredVehicle = true; } else if (base.itemShip.deliveringVehicle) { base.inDropshipAnimation = true; SetVehicleKinematic(setKinematic: true); base.mainRigidbody.MovePosition(base.itemShip.deliverVehiclePoint.position); base.mainRigidbody.MoveRotation(base.itemShip.deliverVehiclePoint.rotation); base.syncedPosition = base.mainRigidbody.position; base.syncedRotation = base.mainRigidbody.rotation; } } } private void SetVehicleKinematic(bool setKinematic) { if (base.mainRigidbody.isKinematic != setKinematic) { base.mainRigidbody.isKinematic = setKinematic; Plugin.Logger.LogDebug((object)$"V55: Set 'mainRigidbody' kinematic to: {setKinematic}"); } } private void SetVehicleToFixedPosition() { //IL_001e: 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_002f: 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_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: 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) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: 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) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) if (base.magnetedToShip) { SetVehicleKinematic(setKinematic: true); base.syncedPosition = base.mainRigidbody.position; base.syncedRotation = base.mainRigidbody.rotation; base.mainRigidbody.MovePosition(Vector3.Lerp(base.magnetStartPosition, StartOfRound.Instance.elevatorTransform.position + base.magnetTargetPosition, base.magnetPositionCurve.Evaluate(base.magnetTime))); base.mainRigidbody.MoveRotation(Quaternion.Lerp(base.magnetStartRotation, base.magnetTargetRotation, base.magnetRotationCurve.Evaluate(base.magnetRotationTime))); base.averageVelocityAtMagnetStart = Vector3.Lerp(base.averageVelocityAtMagnetStart, Vector3.ClampMagnitude(base.averageVelocityAtMagnetStart, 4f), 4f * Time.fixedDeltaTime); if (!base.finishedMagneting) { base.magnetStartPosition += Vector3.ClampMagnitude(base.averageVelocityAtMagnetStart, 5f) * Time.fixedDeltaTime; } } else if (!((NetworkBehaviour)this).IsOwner && !base.inDropshipAnimation) { SetVehicleKinematic(setKinematic: true); Vector3 val = base.syncedPosition + base.averageVelocity * Time.fixedDeltaTime; Vector3 val2 = Vector3.Lerp(base.mainRigidbody.position, val, Time.fixedDeltaTime * base.syncSpeedMultiplier); base.mainRigidbody.MovePosition(val2); base.mainRigidbody.MoveRotation(Quaternion.Lerp(base.mainRigidbody.rotation, base.syncedRotation, base.syncRotationSpeed)); base.truckVelocityLastFrame = base.mainRigidbody.velocity; } } private void TryAttachToShipMagnet() { //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) if (!base.magnetedToShip && ((NetworkBehaviour)this).IsOwner && !base.carDestroyed && !StartOfRound.Instance.isObjectAttachedToMagnet && !((Object)(object)StartOfRound.Instance.attachedVehicle != (Object)null) && StartOfRound.Instance.magnetOn && !(Vector3.Distance(((Component)this).transform.position, StartOfRound.Instance.magnetPoint.position) >= 10f) && !Physics.Linecast(((Component)this).transform.position, StartOfRound.Instance.magnetPoint.position, 256, (QueryTriggerInteraction)1)) { StartMagneting(); } } private void MovePhysicsBodies() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) base.ragdollPhysicsBody.Move(((Component)this).transform.position, ((Component)this).transform.rotation); base.windwiperPhysicsBody1.Move(base.windwiper1.position, base.windwiper1.rotation); base.windwiperPhysicsBody2.Move(base.windwiper2.position, base.windwiper2.rotation); ((Component)playerPhysicsBody).transform.localPosition = Vector3.zero; ((Component)playerPhysicsBody).transform.localRotation = Quaternion.identity; } private void CalculateVehicleVelocity() { //IL_005d: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_003a: 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) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0098: 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) if (base.averageCount > base.movingAverageLength) { base.averageVelocity += (base.mainRigidbody.velocity - base.averageVelocity) / (float)(base.movingAverageLength + 1); return; } base.averageCount++; base.averageVelocity += base.mainRigidbody.velocity; if (base.averageCount == base.movingAverageLength) { base.averageVelocity /= (float)base.averageCount; } } private void ApplySteering() { tyreSteeringAngle = 50f * base.steeringWheelAnimFloat; steeringAngle = (inBetaMode ? (15f * base.steeringInput) : tyreSteeringAngle); base.FrontLeftWheel.steerAngle = steeringAngle; base.FrontRightWheel.steerAngle = steeringAngle; } private void ApplyWheelForces() { SetTorqueToWheelCollider(base.FrontLeftWheel, currentMotorTorque, currentBrakeTorque); SetTorqueToWheelCollider(base.FrontRightWheel, currentMotorTorque, currentBrakeTorque); SetTorqueToWheelCollider(base.BackLeftWheel, currentMotorTorque, currentBrakeTorque); SetTorqueToWheelCollider(base.BackRightWheel, currentMotorTorque, currentBrakeTorque); } private void SetTorqueToWheelCollider(WheelCollider wheelCollider, float motorForce, float brakeForce) { wheelCollider.motorTorque = motorForce; wheelCollider.brakeTorque = brakeForce; } private void SetWheelRotationVelocity() { base.FrontLeftWheel.rotationSpeed = Mathf.Clamp(base.FrontLeftWheel.rotationSpeed, reverseWheelSpeed, forwardWheelSpeed); base.FrontRightWheel.rotationSpeed = Mathf.Clamp(base.FrontRightWheel.rotationSpeed, reverseWheelSpeed, forwardWheelSpeed); base.BackLeftWheel.rotationSpeed = Mathf.Clamp(base.BackLeftWheel.rotationSpeed, reverseWheelSpeed, forwardWheelSpeed); base.BackRightWheel.rotationSpeed = Mathf.Clamp(base.BackRightWheel.rotationSpeed, reverseWheelSpeed, forwardWheelSpeed); } private void SetVFXWheelSpeed() { float num = Mathf.Round(wheelRPM / 4f) * 4f; wheelsRPM = Mathf.Repeat(wheelsRPM + num * 0.5f * 57.29578f * Time.fixedDeltaTime, 360f); } private void CalculateWheelSlip(bool calculatePhysics) { //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) if (!calculatePhysics) { forwardsSlip = 0f; sidewaysSlip = 0f; return; } if (inBetaMode) { psuedoSlipping = currentMotorTorque > 900f; forwardsSlip = 0f; sidewaysSlip = 0f; return; } WheelHit val = default(WheelHit); for (int i = 0; i < wheels.Count; i++) { if (wheels[i].GetGroundHit(ref val)) { wheelHits[i] = val; } else { wheelHits[i] = default(WheelHit); } } forwardsSlip = (((WheelHit)(ref wheelHits[2])).forwardSlip + ((WheelHit)(ref wheelHits[3])).forwardSlip) * 0.5f; sidewaysSlip = (((WheelHit)(ref wheelHits[2])).sidewaysSlip + ((WheelHit)(ref wheelHits[3])).sidewaysSlip) * 0.5f; forwardSlipping = currentMotorTorque > 900f && Mathf.Abs(forwardsSlip) > 0.2f; } private void UpdateCarStress() { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003d: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected I4, but got Unknown if (!base.ignitionStarted || (!base.localPlayerInControl && inBetaMode)) { return; } float num = 0f; CarGearShift gear = base.gear; CarGearShift val = gear; switch (val - 1) { case 2: if (base.drivePedalPressed) { num += 1.2f; base.lastStressType += "; Accelerating while in park"; } else if (!allWheelsAirborne && Mathf.Abs(wheelRPM) > 150f) { num += Mathf.Clamp((Mathf.Abs(wheelRPM) - 100f) / 350f, 0f, 1.3f); base.lastStressType += "; In park while at high speed"; } break; case 1: if (base.brakePedalPressed && base.drivePedalPressed) { num += 2f; base.lastStressType += "; Accelerating while braking"; } else if (wheelRPM > 250f) { num += Mathf.Max((wheelRPM - 250f) / 1000f, 0f); base.lastStressType += "; Reversing while at high speed"; } break; case 0: if (base.brakePedalPressed && base.drivePedalPressed) { num += 2f; base.lastStressType += "; Accelerating while braking"; } else if (wheelRPM < -250f) { num += Mathf.Max((wheelRPM - 250f) / 1000f, 0f); base.lastStressType += "; Reversing while at high speed"; } break; } SetInternalStress(num); base.stressPerSecond = num; } private void UpdateEngineRPMFromWheels() { if (!base.localPlayerInControl && inBetaMode) { if (!base.ignitionStarted || base.magnetedToShip) { base.EngineRPM = Mathf.Lerp(base.EngineRPM, 0f, 3f * Time.fixedDeltaTime); } return; } frontWheelRPM = (NormaliseFloat(base.FrontLeftWheel.rpm) + NormaliseFloat(base.FrontRightWheel.rpm)) / 2f; backWheelRPM = (NormaliseFloat(base.BackLeftWheel.rpm) + NormaliseFloat(base.BackRightWheel.rpm)) / 2f; wheelRPM = (frontWheelRPM + backWheelRPM) / 2f; if ((base.ignitionStarted && !base.magnetedToShip) || (base.magnetedToShip && base.drivePedalPressed)) { base.EngineRPM = Mathf.Abs(wheelRPM); } else { base.EngineRPM = Mathf.Lerp(base.EngineRPM, 0f, 3f * Time.fixedDeltaTime); } } private void SetTorqueForces(bool useSynced) { //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Expected I4, but got Unknown if (!base.ignitionStarted) { currentMotorTorque = 0f; currentBrakeTorque = maxBrakingTorque; } else if (useSynced) { currentMotorTorque = syncedMotorTorque; currentBrakeTorque = syncedBrakeTorque; } else if (base.localPlayerInControl || !inBetaMode) { CarGearShift gear = base.gear; CarGearShift val = gear; switch (val - 1) { case 2: currentMotorTorque = 0f; currentBrakeTorque = maxBrakingTorque; break; case 1: currentMotorTorque = (base.drivePedalPressed ? (0f - base.EngineTorque) : (0f - base.idleSpeed)); currentBrakeTorque = (base.brakePedalPressed ? maxBrakingTorque : 0f); break; case 0: currentMotorTorque = (base.drivePedalPressed ? Mathf.Clamp(Mathf.MoveTowards(currentMotorTorque, base.EngineTorque, base.carAcceleration * Time.fixedDeltaTime), 325f, 1000f) : base.idleSpeed); currentBrakeTorque = (base.brakePedalPressed ? maxBrakingTorque : 0f); break; } } } public float NormaliseFloat(float num) { if (float.IsNaN(num) || float.IsInfinity(num) || float.IsNegativeInfinity(num) || float.IsPositiveInfinity(num)) { return 0f; } return num; } public void SyncCarEffects() { if (syncCarEffectsInterval > 0.02f) { if (syncedWheelRotation != base.steeringWheelAnimFloat) { syncCarEffectsInterval = 0f; syncedWheelRotation = base.steeringWheelAnimFloat; syncedSteeringInput = base.steeringInput; syncedPlayerSteeringAnim = playerSteeringWheelAnimFloat; SyncCarEffectsRpc(base.steeringWheelAnimFloat, base.steeringInput, playerSteeringWheelAnimFloat); } } else { syncCarEffectsInterval += Time.deltaTime; } } [Rpc(/*Could not decode attribute arguments.*/)] public void SyncCarEffectsRpc(float wheelRotation, float steerInput, float playerSteering) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_0104: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(4051414770u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref wheelRotation, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref steerInput, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref playerSteering, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 4051414770u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; syncedWheelRotation = wheelRotation; syncedSteeringInput = steerInput; syncedPlayerSteeringAnim = playerSteering; } } } [Rpc(/*Could not decode attribute arguments.*/)] public void SyncPlayerInputsRpc(Vector2 playerInput, bool gasPressed, bool brakePressed) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: 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) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: 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) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(197659815u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref playerInput); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref gasPressed, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref brakePressed, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 197659815u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; syncedMoveInputVector = playerInput; syncedDrivePedalPressed = gasPressed; syncedBrakePedalPressed = brakePressed; } } } private void SyncCarPhysicsToOtherClients() { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_0074: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) if (!((NetworkBehaviour)this).IsOwner || base.magnetedToShip || base.inDropshipAnimation) { return; } SetVehicleKinematic(setKinematic: false); if (base.syncCarPositionInterval > 0.12f) { if (Vector3.Distance(base.syncedPosition, ((Component)this).transform.position) > 0.02f) { base.syncCarPositionInterval = 0f; base.syncedPosition = ((Component)this).transform.position; base.syncedRotation = ((Component)this).transform.rotation; SyncCarPositionRpc(((Component)this).transform.position, ((Component)this).transform.eulerAngles); } else if (Vector3.Angle(((Component)this).transform.forward, base.syncedRotation * Vector3.forward) > 2f) { base.syncCarPositionInterval = 0f; base.syncedPosition = ((Component)this).transform.position; base.syncedRotation = ((Component)this).transform.rotation; SyncCarPositionRpc(((Component)this).transform.position, ((Component)this).transform.eulerAngles); } } else { base.syncCarPositionInterval += Time.deltaTime; } } [Rpc(/*Could not decode attribute arguments.*/)] public void SyncCarPositionRpc(Vector3 carPosition, Vector3 carRotation) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00db: 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_00e1: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1832740683u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref carPosition); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref carRotation); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1832740683u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; base.syncedPosition = carPosition; base.syncedRotation = Quaternion.Euler(carRotation); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void SetTyreStressRpc(float wheelStress, bool wheelSkidding) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a3: 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_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(509756710u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref wheelStress, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref wheelSkidding, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 509756710u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; tyreStress = wheelStress; wheelSlipping = wheelSkidding; } } } public void SyncCarDrivetrain() { float num = 0.14f * ((Vector3)(ref base.averageVelocity)).magnitude; num = Mathf.Clamp(num, 0.14f, 0.21f); if (syncCarDrivetrainInterval >= num) { float num2 = NormaliseFloat(Mathf.Round(frontWheelRPM)); float num3 = NormaliseFloat(Mathf.Round(backWheelRPM)); if (syncedFrontWheelRPM != num2 || syncedBackWheelRPM != num3) { syncCarDrivetrainInterval = 0f; syncedFrontWheelRPM = num2; syncedBackWheelRPM = num3; syncedWheelRPM = wheelRPM; syncedEngineRPM = base.EngineRPM; SyncCarDrivetrainRpc(frontWheelRPM, backWheelRPM, wheelRPM); } } else { syncCarDrivetrainInterval += Time.fixedDeltaTime; } } [Rpc(/*Could not decode attribute arguments.*/)] public void SyncCarDrivetrainRpc(float frontWheelSpeed, float backWheelSpeed, float wheelSpeed) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_0104: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(4214428700u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref frontWheelSpeed, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref backWheelSpeed, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref wheelSpeed, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 4214428700u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; syncedFrontWheelRPM = frontWheelSpeed; syncedBackWheelRPM = backWheelSpeed; syncedWheelRPM = wheelSpeed; syncedEngineRPM = Mathf.Abs(wheelSpeed); } } } public void SyncCarWheelTorque() { if (syncWheelTorqueInterval >= 0.14f) { float num = Mathf.Round(currentMotorTorque); float num2 = Mathf.Round(currentBrakeTorque); if (syncedMotorTorque != num || syncedBrakeTorque != num2) { syncWheelTorqueInterval = 0f; syncedMotorTorque = currentMotorTorque; syncedBrakeTorque = currentBrakeTorque; SyncWheelTorqueRpc(currentMotorTorque, currentBrakeTorque); } } else { syncWheelTorqueInterval += Time.fixedDeltaTime; } } [Rpc(/*Could not decode attribute arguments.*/)] public void SyncWheelTorqueRpc(float motorTorque, float brakeTorque) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a3: 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_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2949658452u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref motorTorque, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref brakeTorque, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 2949658452u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; syncedMotorTorque = motorTorque; syncedBrakeTorque = brakeTorque; } } } public void LateUpdate() { bool mute = base.magnetedToShip && (StartOfRound.Instance.inShipPhase || !StartOfRound.Instance.shipDoorsEnabled); base.hornAudio.mute = mute; base.engineAudio1.mute = mute; base.engineAudio2.mute = mute; carKeyAudio.mute = mute; ejectorButtonAudio.mute = mute; base.springAudio.mute = mute; reverseWhineAudio.mute = mute; verticalColumnAudio.mute = mute; base.rollingAudio.mute = mute; base.skiddingAudio.mute = mute; base.turbulenceAudio.mute = mute; base.hoodFireAudio.mute = mute; base.extremeStressAudio.mute = mute; base.pushAudio.mute = mute; base.radioAudio.mute = mute; base.radioInterference.mute = mute; if ((Object)(object)base.currentDriver != (Object)null && (Object)(object)lastDriver != (Object)(object)base.currentDriver && !base.magnetedToShip) { lastDriver = base.currentDriver; } if (!inBetaMode && base.honkingHorn && base.hornAudio.isPlaying && base.hornAudio.pitch < 1f) { base.hornAudio.Stop(); } } public bool CarReactToObstacle(Vector3 vel, Vector3 position, Vector3 impulse, CarObstacleType type, float obstacleSize = 1f, EnemyAI enemyScript = null, bool dealDamage = true) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected I4, but got Unknown //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: 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) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: 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_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_0085: 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_0304: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) switch ((int)type) { case 2: if (base.carHP < 10) { base.mainRigidbody.AddForceAtPosition(Vector3.up * base.torqueForce + vel, position, (ForceMode)1); } else { base.mainRigidbody.AddForceAtPosition((Vector3.up * base.torqueForce + vel) * 0.5f, position, (ForceMode)1); } CarBumpLocalClient(base.averageVelocity * 0.7f); if (dealDamage) { DealPermanentDamage(1, position); } return true; case 0: PlayCollisionAudio(position, 5, Mathf.Clamp(((Vector3)(ref vel)).magnitude / 7f, 0.65f, 1f)); if (((Vector3)(ref vel)).magnitude < 4.25f) { base.mainRigidbody.velocity = Vector3.Normalize(-impulse * 100000000f) * 9f; DealPermanentDamage(1); return true; } base.mainRigidbody.AddForceAtPosition(Vector3.up * base.torqueForce, position, (ForceMode)2); return false; case 1: { float num; if (obstacleSize <= 1f) { num = 1f; _ = base.carReactToPlayerHitMultiplier; } else if (obstacleSize <= 2f) { num = 9f; _ = base.carReactToPlayerHitMultiplier; } else { num = 15f; _ = base.carReactToPlayerHitMultiplier; } vel = Vector3.Scale(vel, new Vector3(1f, 0f, 1f)); base.mainRigidbody.AddForceAtPosition(Vector3.up * base.torqueForce, position, (ForceMode)2); bool result = false; if (((Vector3)(ref vel)).magnitude < num) { if (obstacleSize <= 1f) { base.mainRigidbody.AddForce(Vector3.Normalize(-impulse * 1E+09f) * 4f, (ForceMode)1); if (((Vector3)(ref vel)).magnitude > 1f) { enemyScript.KillEnemyOnOwnerClient(false); } } else { CarBumpLocalClient(base.averageVelocity); base.mainRigidbody.velocity = Vector3.Normalize(-impulse * 100000000f) * 9f; PlayerControllerB val = (((Object)(object)base.currentDriver != (Object)null) ? base.currentDriver : base.currentPassenger); if (((Vector3)(ref vel)).magnitude > 2f && dealDamage) { enemyScript.HitEnemyOnLocalClient(2, Vector3.zero, val, true, 331); } result = true; } DealPermanentDamage(2, position); } else { base.mainRigidbody.AddForce(Vector3.Normalize(-impulse * 1E+09f) * (base.carReactToPlayerHitMultiplier - 220f), (ForceMode)1); if (dealDamage) { DealPermanentDamage(1, position); } enemyScript.KillEnemyOnOwnerClient(false); } PlayCollisionAudio(position, 5, 1f); return result; } default: return false; } } public void OnCollisionEnter(Collision collision) { //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_0109: 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) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: 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_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_044c: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Unknown result type (might be due to invalid IL or missing references) //IL_045b: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_040a: Unknown result type (might be due to invalid IL or missing references) //IL_0418: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_0437: Unknown result type (might be due to invalid IL or missing references) //IL_043d: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) TerrainObstacleTrigger val = default(TerrainObstacleTrigger); if (!((NetworkBehaviour)this).IsOwner || base.magnetedToShip || !base.hasBeenSpawned || (((Component)collision.collider).gameObject.layer != 8 && canDestroyTrees) || (((Component)collision.collider).gameObject.TryGetComponent(ref val) && !canDestroyTrees)) { return; } float num = 0f; int contacts = collision.GetContacts(base.contacts); Vector3 val2 = Vector3.zero; Vector3 damagePosition; for (int i = 0; i < contacts; i++) { damagePosition = ((ContactPoint)(ref base.contacts[i])).impulse; if (((Vector3)(ref damagePosition)).magnitude > num) { damagePosition = ((ContactPoint)(ref base.contacts[i])).impulse; num = ((Vector3)(ref damagePosition)).magnitude; } val2 += ((ContactPoint)(ref base.contacts[i])).point; } val2 /= (float)contacts; num /= Time.fixedDeltaTime; if (num < base.minimalBumpForce || ((Vector3)(ref base.averageVelocity)).magnitude < 4f) { if (contacts > 3 && ((Vector3)(ref base.averageVelocity)).magnitude > 2.5f) { SetInternalStress(0.35f); base.lastStressType = "Scraping"; } return; } float setVolume = 0.5f; int num2 = -1; if (((Vector3)(ref base.averageVelocity)).magnitude > 27f) { if (base.carHP < 3) { DestroyCarRpc(); DestroyCar(); return; } int damageAmount = base.carHP - 2; damagePosition = default(Vector3); DealPermanentDamage(damageAmount, damagePosition); } if (num > base.maximumBumpForce && ((Vector3)(ref base.averageVelocity)).magnitude > 11f) { num2 = 2; setVolume = Mathf.Clamp((num - base.maximumBumpForce) / 20000f, 0.8f, 1f); setVolume = Mathf.Clamp(setVolume + Random.Range(-0.15f, 0.25f), 0.7f, 1f); damagePosition = default(Vector3); DealPermanentDamage(2, damagePosition); } else if (num > base.mediumBumpForce && ((Vector3)(ref base.averageVelocity)).magnitude > 3f) { num2 = 1; setVolume = Mathf.Clamp((num - base.mediumBumpForce) / (base.maximumBumpForce - base.mediumBumpForce), 0.67f, 1f); setVolume = Mathf.Clamp(setVolume + Random.Range(-0.15f, 0.25f), 0.5f, 1f); damagePosition = default(Vector3); DealPermanentDamage(1, damagePosition); } else if (((Vector3)(ref base.averageVelocity)).magnitude > 1.5f) { num2 = 0; setVolume = Mathf.Clamp((num - base.mediumBumpForce) / (base.maximumBumpForce - base.mediumBumpForce), 0.25f, 1f); setVolume = Mathf.Clamp(setVolume + Random.Range(-0.15f, 0.25f), 0.25f, 1f); } if (num2 == -1) { return; } PlayCollisionAudio(val2, num2, setVolume); if (num > base.maximumBumpForce + 10000f && ((Vector3)(ref base.averageVelocity)).magnitude > 19f) { if (Random.Range(0, 2) == 0) { CarCollisionRpc(Vector3.ClampMagnitude(-collision.relativeVelocity, 60f), onlyLocalDriver: false); DamagePlayerInVehicle(Vector3.ClampMagnitude(-collision.relativeVelocity, 60f), onlyLocalDriver: false); BreakWindshield(); damagePosition = default(Vector3); DealPermanentDamage(2, damagePosition); } else { CarCollisionRpc(Vector3.ClampMagnitude(-collision.relativeVelocity, 60f), onlyLocalDriver: true); DamagePlayerInVehicle(Vector3.ClampMagnitude(-collision.relativeVelocity, 60f), onlyLocalDriver: true); damagePosition = default(Vector3); DealPermanentDamage(2, damagePosition); } } else { CarBumpLocalClient(Vector3.ClampMagnitude(-collision.relativeVelocity, 40f)); } } public void CarBumpLocalClient(Vector3 vel) { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0059: 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) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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) if ((base.localPlayerInControl || base.localPlayerInPassengerSeat) && ((Vector3)(ref vel)).magnitude > 50f) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; localPlayerController.externalForceAutoFade += vel; } else if (VehicleUtils.IsPlayerInTruckBounds(this)) { vel = Vector3.ClampMagnitude(vel, 30f); PlayerControllerB localPlayerController2 = GameNetworkManager.Instance.localPlayerController; localPlayerController2.externalForceAutoFade += vel; CarBumpRpc(vel); } } [Rpc(/*Could not decode attribute arguments.*/)] public void CarBumpRpc(Vector3 vel) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(727985888u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref vel); ((NetworkBehaviour)this).__endSendRpc(ref val3, 727985888u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if ((base.localPlayerInControl || base.localPlayerInPassengerSeat) && ((Vector3)(ref vel)).magnitude > 50f) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; localPlayerController.externalForceAutoFade += vel; } else if (VehicleUtils.IsPlayerInTruckBounds(this)) { vel = Vector3.ClampMagnitude(vel, 30f); PlayerControllerB localPlayerController2 = GameNetworkManager.Instance.localPlayerController; localPlayerController2.externalForceAutoFade += vel; } } } [Rpc(/*Could not decode attribute arguments.*/)] public void CarCollisionRpc(Vector3 vel, bool onlyLocalDriver) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(4051615060u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref vel); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref onlyLocalDriver, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 4051615060u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; DamagePlayerInVehicle(vel, onlyLocalDriver); if (!onlyLocalDriver) { BreakWindshield(); } } } private void DamagePlayerInVehicle(Vector3 vel, bool onlyLocalDriver) { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0047: 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_00d3: 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_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_008c: 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_00a1: Unknown result type (might be due to invalid IL or missing references) if (base.localPlayerInPassengerSeat && onlyLocalDriver) { return; } if (base.localPlayerInPassengerSeat || base.localPlayerInControl) { GameNetworkManager.Instance.localPlayerController.KillPlayer(vel, true, (CauseOfDeath)16, 0, ((Component)this).transform.up * 0.77f, false); } else if (VehicleUtils.IsPlayerInTruckBounds(this)) { if (GameNetworkManager.Instance.localPlayerController.health <= 40) { GameNetworkManager.Instance.localPlayerController.KillPlayer(vel, true, (CauseOfDeath)16, 0, ((Component)this).transform.up * 0.77f, false); return; } GameNetworkManager.Instance.localPlayerController.DamagePlayer(30, true, true, (CauseOfDeath)16, 0, false, vel); PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; localPlayerController.externalForceAutoFade += vel; } } private void BreakWindshield() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) if (!base.windshieldBroken) { base.windshieldBroken = true; ((Collider)base.windshieldPhysicsCollider).enabled = false; windshieldMesh.SetActive(false); base.glassParticle.Play(); ((Component)base.miscAudio).transform.localPosition = windshieldMesh.transform.localPosition; base.miscAudio.PlayOneShot(base.windshieldBreak); } } public void PlayCollisionAudio(Vector3 setPosition, int audioType, float setVolume) { //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_007b: 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) if (Time.realtimeSinceStartup - base.audio1Time > Time.realtimeSinceStartup - base.audio2Time) { bool flag = Time.realtimeSinceStartup - base.audio1Time >= base.collisionAudio1.clip.length * 0.8f; if (base.audio1Type <= audioType || flag) { base.audio1Time = Time.realtimeSinceStartup; base.audio1Type = audioType; ((Component)base.collisionAudio1).transform.position = setPosition; CarCollisionSFXRpc(((Component)base.collisionAudio1).transform.localPosition, 0, audioType, setVolume); PlayRandomClipAndPropertiesFromAudio(base.collisionAudio1, setVolume, flag, audioType); } } else { bool flag2 = Time.realtimeSinceStartup - base.audio2Time >= base.collisionAudio2.clip.length * 0.8f; if (base.audio1Type <= audioType || flag2) { base.audio2Time = Time.realtimeSinceStartup; base.audio2Type = audioType; ((Component)base.collisionAudio2).transform.position = setPosition; CarCollisionSFXRpc(((Component)base.collisionAudio2).transform.localPosition, 1, audioType, setVolume); PlayRandomClipAndPropertiesFromAudio(base.collisionAudio2, setVolume, flag2, audioType); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void CarCollisionSFXRpc(Vector3 audioPosition, int audio, int audioType, float vol) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: 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_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_012d: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(113234185u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref audioPosition); BytePacker.WriteValueBitPacked(val3, audio); BytePacker.WriteValueBitPacked(val3, audioType); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref vol, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 113234185u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; AudioSource val4 = ((audio != 0) ? base.collisionAudio2 : base.collisionAudio1); bool isAudioFinished = val4.clip.length - val4.time < 0.2f; ((Component)val4).transform.localPosition = audioPosition; PlayRandomClipAndPropertiesFromAudio(val4, vol, isAudioFinished, audioType); } } } private void PlayRandomClipAndPropertiesFromAudio(AudioSource source, float volume, bool isAudioFinished, int collisionType) { //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) if (!isAudioFinished) { source.Stop(); } AudioClip[] array; switch (collisionType) { case 0: array = base.minCollisions; base.turbulenceAmount = Mathf.Min(base.turbulenceAmount + 0.4f, 2f); break; case 1: array = base.medCollisions; base.turbulenceAmount = Mathf.Min(base.turbulenceAmount + 0.75f, 2f); break; case 2: array = base.maxCollisions; base.turbulenceAmount = Mathf.Min(base.turbulenceAmount + 1.4f, 2f); break; default: array = base.obstacleCollisions; base.turbulenceAmount = Mathf.Min(base.turbulenceAmount + 0.75f, 2f); break; } AudioClip val = array[Random.Range(0, array.Length)]; if ((Object)(object)val == (Object)(object)source.clip && Random.Range(0, 10) <= 5) { val = array[Random.Range(0, array.Length)]; } if (isAudioFinished) { source.pitch = Random.Range(0.8f, 1.2f); } source.clip = val; source.PlayOneShot(val, volume); int num = (inBetaMode ? 106217 : 2692); if (collisionType >= 2) { RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 18f + volume * 7f, 0.6f, 0, false, num); } else if (collisionType >= 1) { RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 12f + volume * 7f, 0.6f, 0, false, num); } if (collisionType == -1) { array = base.minCollisions; val = array[Random.Range(0, array.Length)]; source.PlayOneShot(val); } } public void SetInternalStress(float carStressIncrease = 0f) { //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) if (((NetworkBehaviour)this).IsOwner && !base.magnetedToShip && !base.carDestroyed) { if (carStressIncrease <= 0f) { base.carStressChange = Mathf.Clamp(base.carStressChange - Time.fixedDeltaTime, -0.25f, 0.5f); } else { base.carStressChange = Mathf.Clamp(base.carStressChange + Time.fixedDeltaTime * carStressIncrease, 0f, 10f); } base.underExtremeStress = carStressIncrease >= 1f; base.carStress = Mathf.Clamp(base.carStress + base.carStressChange, 0f, 100f); if (base.carStress > 7f) { base.carStress = 0f; DealPermanentDamage(2); base.lastDamageType = "Stress"; } } } public void DealPermanentDamage(int damageAmount, Vector3 damagePosition = default(Vector3)) { if (((NetworkBehaviour)this).IsOwner && !base.magnetedToShip && !base.carDestroyed) { base.timeAtLastDamage = Time.realtimeSinceStartup; base.carHP -= damageAmount; syncedCarHP = base.carHP; if (base.carHP <= 0) { DealDamageRpc(base.carHP); DestroyCarRpc(); DestroyCar(); } else { DealDamageRpc(base.carHP); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void DealDamageRpc(int carHealth) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3190658997u, val2, val, (SendTo)1, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, carHealth); ((NetworkBehaviour)this).__endSendRpc(ref val3, 3190658997u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; base.timeAtLastDamage = Time.realtimeSinceStartup; base.carHP = carHealth; syncedCarHP = base.carHP; } } } [Rpc(/*Could not decode attribute arguments.*/)] public void DestroyCarRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1771295468u, val2, val, (SendTo)1, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1771295468u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; DestroyCar(); } } } public void DestroyCar() { //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) if (!base.carDestroyed) { base.carDestroyed = true; UnMagnetCar(); StopAudiosPlayback(); RemoveCarRainCollision(); CollectItemsInTruck(); StopParticleVFX(); SetDestroyedMaterials(); BreakWindshield(); RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 20f, 0.8f, 0, false, 106217); DisableWheelCollider(base.FrontLeftWheel); DisableWheelCollider(base.FrontRightWheel); DisableWheelCollider(base.BackLeftWheel); DisableWheelCollider(base.BackRightWheel); DisableObjectsOnDestroy(); SetPositionsAndEnableOnDestroy(); destroyedTruckMeshAlt.SetActive(isInteriorRHD); base.destroyedTruckMesh.SetActive(!isInteriorRHD); SetExplosionForce(1560f, ((Component)base.hoodFireAudio).transform.position); DisableIgnition(); DisableDrivetrain(); ResetControl(); KillOccupants(); SetInteractions(); ResetOccupants(); Landmine.SpawnExplosion(((Component)this).transform.position + ((Component)this).transform.forward + Vector3.up * 1.5f, true, 6f, 10f, 30, 200f, base.truckDestroyedExplosion, true); } } private void UnMagnetCar() { if (base.magnetedToShip && !((Object)(object)StartOfRound.Instance.attachedVehicle != (Object)(object)this)) { base.magnetedToShip = false; StartOfRound.Instance.attachedVehicle = null; StartOfRound.Instance.isObjectAttachedToMagnet = false; CollectItemsInTruck(); } } private void StopAudiosPlayback() { base.underExtremeStress = false; base.engineAudio1.Stop(); base.engineAudio2.Stop(); base.turbulenceAudio.Stop(); base.pushAudio.Stop(); base.miscAudio.Stop(); base.steeringWheelAudio.Stop(); base.gearStickAudio.Stop(); base.rollingAudio.Stop(); base.radioAudio.Stop(); base.radioInterference.Stop(); base.extremeStressAudio.Stop(); carKeyAudio.Stop(); base.honkingHorn = false; base.hornAudio.Stop(); base.skiddingAudio.Stop(); base.turboBoostAudio.Stop(); } private void StopParticleVFX() { frontTireSparks.Stop(); base.tireSparks.Stop(); base.turboBoostParticle.Stop(); } private void SetDestroyedMaterials() { ((Renderer)frontLeftDoorMesh).material = destroyedTruckMaterial; ((Renderer)frontRightDoorMesh).material = destroyedTruckMaterial; ((Renderer)steeringWheelMesh).material = destroyedTruckMaterial; } private void DisableWheelCollider(WheelCollider wheelCollider) { if (!((Object)(object)wheelCollider == (Object)null) && ((Collider)wheelCollider).enabled) { wheelCollider.motorTorque = 0f; wheelCollider.brakeTorque = 0f; ((Collider)wheelCollider).enabled = false; } } private void DisableObjectsOnDestroy() { for (int i = 0; i < disableOnDestroy.Length; i++) { if (disableOnDestroy[i].activeSelf) { disableOnDestroy[i].SetActive(false); } } ((Component)radarMapIcon).gameObject.SetActive(false); mainBodyContainer.SetActive(false); hoodDoorContainer.SetActive(false); base.backDoorContainer.SetActive(false); base.headlightsContainer.SetActive(false); base.backLightsContainer.SetActive(false); ((Component)base.healthMeter).gameObject.SetActive(false); } private void SetPositionsAndEnableOnDestroy() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) ((Component)radarMapDestroyedIcon).gameObject.SetActive(true); base.backLightsOn = false; ((Component)base.backLightsMesh).transform.localPosition = new Vector3(0.033f, 0f, 0.081f); ((Component)base.backLightsMesh).transform.localRotation = Quaternion.Euler(0f, 3.881f, 0f); ((Renderer)base.backLightsMesh).material = base.headlightsOffMat; base.frontCabinLightContainer.transform.localPosition = new Vector3(0f, -0.239f, 0f); ((Component)base.frontCabinLightMesh).transform.localPosition = new Vector3(-0.662f, 0.073f, -0.222f); ((Component)base.frontCabinLightMesh).transform.localRotation = Quaternion.Euler(0f, 11.641f, 0f); ((Component)base.frontCabinLightMesh).gameObject.SetActive(true); ((Renderer)base.frontCabinLightMesh).enabled = true; ((Component)base.steeringWheelAnimator).transform.localEulerAngles = new Vector3(-141.303f, 0f, 90f); if (isInteriorRHD) { ((Component)base.steeringWheelAnimator).transform.localPosition = new Vector3(0.97943f, 0.101f, 2.363f); } else { ((Component)base.steeringWheelAnimator).transform.localPosition = new Vector3(-0.97943f, 0.101f, 2.363f); } } private void SetExplosionForce(float forceMultiplier, Vector3 explosionPos) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) base.mainRigidbody.ResetCenterOfMass(); base.mainRigidbody.AddForceAtPosition(Vector3.up * forceMultiplier, explosionPos - Vector3.up, (ForceMode)1); } private void DisableIgnition() { CancelIgnitionCoroutine(); base.ignitionStarted = false; if (base.carExhaustParticle.isEmitting) { base.carExhaustParticle.Stop(true, (ParticleSystemStopBehavior)1); } base.keyIsInIgnition = false; base.keyIsInDriverHand = false; } private void DisableDrivetrain() { base.EngineRPM = 0f; frontWheelRPM = 0f; backWheelRPM = 0f; wheelRPM = 0f; wheelsRPM = 0f; } private void ResetControl() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) base.steeringAnimValue = 0f; base.drivePedalPressed = false; base.brakePedalPressed = false; base.moveInputVector = Vector2.zero; syncedMoveInputVector = Vector2.zero; } private void KillOccupants() { //IL_0019: 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_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: 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) //IL_0049: Unknown result type (might be due to invalid IL or missing references) if (VehicleUtils.IsPlayerSeatedInTruck()) { GameNetworkManager.Instance.localPlayerController.KillPlayer(Vector3.up * 27f + 20f * Random.insideUnitSphere, true, (CauseOfDeath)3, 6, Vector3.up * 1.5f, false); } } private void SetInteractions() { InteractTrigger[] componentsInChildren = ((Component)this).gameObject.GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { componentsInChildren[i].interactable = false; componentsInChildren[i].CancelAnimationExternally(); } base.driverSideDoorTrigger.interactable = true; base.passengerSideDoorTrigger.interactable = true; pushTruckTrigger.interactable = false; } private void ResetOccupants() { base.currentDriver = null; base.currentPassenger = null; if (VehicleUtils.IsPlayerSeatedInTruck()) { PlayerUtils.isSeatedInTruck = false; } } public void RemoveCarRainCollision() { //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Expected O, but got Unknown ParticleSystem[] array = (ParticleSystem[])(object)new ParticleSystem[9] { GlobalReferences.rainParticles, GlobalReferences.rainHitParticles, GlobalReferences.stormyRainParticles, GlobalReferences.stormyRainHitParticles, GlobalReferences.wesleyHurricaneRainParticles, GlobalReferences.wesleyHurricaneRainHitParticles, GlobalReferences.wesleyHurricaneSandParticles, GlobalReferences.wesleyForsakenRainParticles, GlobalReferences.wesleyForsakenRainHitParticles }; ParticleSystem[] array2 = array; foreach (ParticleSystem val in array2) { if ((Object)(object)val == (Object)null) { Plugin.Logger.LogDebug((object)"V55: Weather particle (or trigger) is null!"); continue; } TriggerModule trigger = val.trigger; for (int num = ((TriggerModule)(ref trigger)).colliderCount - 1; num >= 0; num--) { Collider value = (Collider)((TriggerModule)(ref trigger)).GetCollider(num); if (weatherEffectBlockers.Contains(value)) { ((TriggerModule)(ref trigger)).RemoveCollider(num); } } } } private void ReactToDamage() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) base.healthMeter.localScale = new Vector3(1f, 1f, Mathf.Lerp(base.healthMeter.localScale.z, Mathf.Clamp((float)base.carHP / (float)base.baseCarHP, 0.01f, 1f), 6f * Time.deltaTime)); base.turboMeter.localScale = new Vector3(1f, 1f, Mathf.Lerp(base.turboMeter.localScale.z, Mathf.Clamp((float)base.turboBoosts / 5f, 0.01f, 1f), 6f * Time.deltaTime)); if (!((NetworkBehaviour)this).IsOwner) { return; } if (base.carHP < 7 && Time.realtimeSinceStartup - base.timeAtLastDamage > 16f) { base.timeAtLastDamage = Time.realtimeSinceStartup; base.carHP++; syncedCarHP = base.carHP; SyncCarHealthRpc(base.carHP); } if (base.carHP < 3) { if (!base.isHoodOnFire) { SetHoodFireAndSync(setOnFire: true); } } else if (base.isHoodOnFire) { SetHoodFireAndSync(setOnFire: false); } } [Rpc(/*Could not decode attribute arguments.*/)] private void SyncCarHealthRpc(int carHealth) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3938964334u, val2, val, (SendTo)1, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val3, carHealth); ((NetworkBehaviour)this).__endSendRpc(ref val3, 3938964334u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; base.timeAtLastDamage = Time.realtimeSinceStartup; syncedCarHP = carHealth; base.carHP = syncedCarHP; } } } [Rpc(/*Could not decode attribute arguments.*/)] public void SyncExtremeStressRpc(bool underStress) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1423326709u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref underStress, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1423326709u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (base.carDestroyed) { base.underExtremeStress = false; } else { base.underExtremeStress = underStress; } } } private void SetHoodFireAndSync(bool setOnFire) { SetHoodOnFireLocalClient(setOnFire); SetHoodOnFireRpc(setOnFire); } [Rpc(/*Could not decode attribute arguments.*/)] public void SetHoodOnFireRpc(bool onFire) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1459409878u, val2, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref onFire, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1459409878u, val2, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetHoodOnFireLocalClient(onFire); } } } private void SetHoodOnFireLocalClient(bool setOnFire) { base.isHoodOnFire = setOnFire; if (setOnFire) { base.hoodFireAudio.Play(); base.hoodFireParticle.Play(); if (!base.carHoodOpen && !base.carDestroyed) { SetHoodOpenLocalClient(setOpen: true); } } else { base.hoodFireAudio.Stop(); base.hoodFireParticle.Stop(true, (ParticleSystemStopBehavior)1); } } public void ToggleHoodOpenLocalClient() { base.carHoodOpen = !base.carHoodOpen; base.carHoodAnimator.SetBool("hoodOpen", base.carHoodOpen); SetHoodOpenRpc(base.carHoodOpen); } public void SetHoodOpenLocalClient(bool setOpen) { if (!base.carHoodOpen || base.carHoodOpen != setOpen) { base.carHoodOpen = setOpen; base.carHoodAnimator.SetBool("hoodOpen", setOpen); } } [Rpc(/*Could not decode attribute arguments.*/)] public void SetHoodOpenRpc(bool open) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2095956418u, val2, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref open, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 2095956418u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; base.carHoodOpen = open; base.carHoodAnimator.SetBool("hoodOpen", base.carHoodOpen); } } } public void PushTruckWithArms() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_008a: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: 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) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) if (!base.magnetedToShip && !((Object)(object)GameNetworkManager.Instance.localPlayerController.overridePhysicsParent != (Object)null) && Physics.Raycast(((Component)GameNetworkManager.Instance.localPlayerController.gameplayCamera).transform.position, ((Component)GameNetworkManager.Instance.localPlayerController.gameplayCamera).transform.forward, ref base.hit, 10f, 1073742656, (QueryTriggerInteraction)1)) { Vector3 point = ((RaycastHit)(ref base.hit)).point; Vector3 forward = ((Component)GameNetworkManager.Instance.localPlayerController.gameplayCamera).transform.forward; if (((NetworkBehaviour)this).IsOwner) { base.mainRigidbody.AddForceAtPosition(Vector3.Normalize(forward * 1000f) * Random.Range(40f, 50f) * base.pushForceMultiplier, point - ((Component)base.mainRigidbody).transform.up * base.pushVerticalOffsetAmount, (ForceMode)1); PushTruckFromOwnerRpc(point); } else { PushTruckRpc(point, forward); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void PushTruckRpc(Vector3 pushPosition, Vector3 dir) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0169: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1225320926u, val2, val, (SendTo)6, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref pushPosition); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref dir); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1225320926u, val2, val, (SendTo)6, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ((Component)base.pushAudio).transform.position = pushPosition; base.pushAudio.Play(); base.turbulenceAmount = Mathf.Min(base.turbulenceAmount + 0.5f, 2f); if (((NetworkBehaviour)this).IsOwner) { base.mainRigidbody.AddForceAtPosition(Vector3.Normalize(dir * 1000f) * Random.Range(40f, 50f) * base.pushForceMultiplier, pushPosition - ((Component)base.mainRigidbody).transform.up * base.pushVerticalOffsetAmount, (ForceMode)1); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void PushTruckFromOwnerRpc(Vector3 pos) { //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(4175260202u, val2, val, (SendTo)6, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref pos); ((NetworkBehaviour)this).__endSendRpc(ref val3, 4175260202u, val2, val, (SendTo)6, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ((Component)base.pushAudio).transform.position = pos; base.pushAudio.Play(); base.turbulenceAmount = Mathf.Min(base.turbulenceAmount + 0.5f, 2f); } } } public void UseButtonOnLocalClient(string triggerString) { verticalColumnAnimator.SetTrigger(triggerString); } public void ToggleWipersOnLocalClient() { verticalColumnAudio.PlayOneShot(dashboardButton); UseButtonOnLocalClient("clickWiperButton"); ToggleWipersRpc(); } [Rpc(/*Could not decode attribute arguments.*/)] public void ToggleWipersRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1085326842u, val2, val, (SendTo)5, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1085326842u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; verticalColumnAudio.PlayOneShot(dashboardButton); UseButtonOnLocalClient("clickWiperButton"); } } } public void OpenCabinWindowOnLocalClient() { verticalColumnAudio.PlayOneShot(dashboardButton); UseButtonOnLocalClient("clickCabinButton"); OpenCabinWindowRpc(); } [Rpc(/*Could not decode attribute arguments.*/)] public void OpenCabinWindowRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1499313525u, val2, val, (SendTo)5, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1499313525u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; verticalColumnAudio.PlayOneShot(dashboardButton); UseButtonOnLocalClient("clickCabinButton"); } } } public void ToggleHeadlightsLocalClient() { base.headlightsContainer.SetActive(!base.headlightsContainer.activeSelf); verticalColumnAudio.PlayOneShot(base.headlightsToggleSFX); SetHeadlightMaterial(base.headlightsContainer.activeSelf); UseButtonOnLocalClient("clickLightButton"); ToggleHeadlightsRpc(base.headlightsContainer.activeSelf); } [Rpc(/*Could not decode attribute arguments.*/)] public void ToggleHeadlightsRpc(bool setLightsOn) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(379102476u, val2, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setLightsOn, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 379102476u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; base.headlightsContainer.SetActive(setLightsOn); verticalColumnAudio.PlayOneShot(base.headlightsToggleSFX); SetHeadlightMaterial(setLightsOn); UseButtonOnLocalClient("clickLightButton"); } } } private void SetHeadlightMaterial(bool on) { Material[] sharedMaterials = ((Renderer)base.mainBodyMesh).sharedMaterials; sharedMaterials[1] = (on ? base.headlightsOnMat : base.headlightsOffMat); ((Renderer)base.mainBodyMesh).sharedMaterials = sharedMaterials; sharedMaterials = ((Renderer)base.lod1Mesh).sharedMaterials; sharedMaterials[1] = (on ? base.headlightsOnMat : base.headlightsOffMat); ((Renderer)base.lod1Mesh).sharedMaterials = sharedMaterials; sharedMaterials = ((Renderer)base.lod2Mesh).sharedMaterials; sharedMaterials[1] = (on ? base.headlightsOnMat : base.headlightsOffMat); ((Renderer)base.lod2Mesh).sharedMaterials = sharedMaterials; } public void SpringDriverSeatLocalClient() { if (!(Time.realtimeSinceStartup - base.timeSinceSpringingDriverSeat < 3f)) { base.timeSinceSpringingDriverSeat = Time.realtimeSinceStartup; SpringDriverSeatRpc(); } } [Rpc(/*Could not decode attribute arguments.*/)] public void SpringDriverSeatRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: 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) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1615077013u, val2, val, (SendTo)6, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val3, 1615077013u, val2, val, (SendTo)6, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; base.timeSinceSpringingDriverSeat = Time.realtimeSinceStartup; ejectorButtonAudio.PlayOneShot(dashboardButton); base.driverSeatSpringAnimator.SetTrigger("spring"); ejectorButtonAnimator.SetTrigger("press"); base.springAudio.Play(); RoundManager.Instance.PlayAudibleNoise(((Component)base.springAudio).transform.position, 30f, 1f, 0, false, 106217); PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (!((Object)(object)localPlayerController == (Object)null) && localPlayerController.isPlayerControlled && !localPlayerController.isPlayerDead && (base.localPlayerInControl || Vector3.Distance(((Component)localPlayerController).transform.position, ((Component)base.springAudio).transform.position) < 0.9f)) { localPlayerController.externalForceAutoFade += ((Component)this).transform.up * base.springForce; } } } protected override void __initializeVariables() { ((VehicleController)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 //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Expected O, but got Unknown //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Expected O, but got Unknown //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Expected O, but got Unknown //IL_0221: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Expected O, but got Unknown //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Expected O, but got Unknown //IL_0259: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Expected O, but got Unknown //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Expected O, but got Unknown //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Expected O, but got Unknown //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Expected O, but got Unknown //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Expected O, but got Unknown //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Expected O, but got Unknown //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_0310: Expected O, but got Unknown //IL_031d: Unknown result type (might be due to invalid IL or missing references) //IL_032c: Expected O, but got Unknown //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Expected O, but got Unknown //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_0364: Expected O, but got Unknown //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Expected O, but got Unknown //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Expected O, but got Unknown //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Expected O, but got Unknown //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Expected O, but got Unknown //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03f0: Expected O, but got Unknown //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Expected O, but got Unknown //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Expected O, but got Unknown //IL_0435: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Expected O, but got Unknown //IL_0451: Unknown result type (might be due to invalid IL or missing references) //IL_0460: Expected O, but got Unknown //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Expected O, but got Unknown //IL_0489: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Expected O, but got Unknown //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04b4: Expected O, but got Unknown //IL_04c1: Unknown result type (might be due to invalid IL or missing references) //IL_04d0: Expected O, but got Unknown //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04ec: Expected O, but got Unknown //IL_04f9: Unknown result type (might be due to invalid IL or missing references) //IL_0508: Expected O, but got Unknown //IL_0515: Unknown result type (might be due to invalid IL or missing references) //IL_0524: Expected O, but got Unknown //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(3603618885u, new RpcReceiveHandler(__rpc_handler_3603618885), "SetAndSyncCruiserDataRpc"); ((NetworkBehaviour)this).__registerRpc(2843149083u, new RpcReceiveHandler(__rpc_handler_2843149083), "TryIgnitionRpc"); ((NetworkBehaviour)this).__registerRpc(41763978u, new RpcReceiveHandler(__rpc_handler_41763978), "TryStartIgnitionRpc"); ((NetworkBehaviour)this).__registerRpc(3795050472u, new RpcReceiveHandler(__rpc_handler_3795050472), "CancelTryIgnitionRpc"); ((NetworkBehaviour)this).__registerRpc(3842753156u, new RpcReceiveHandler(__rpc_handler_3842753156), "StartIgnitionRpc"); ((NetworkBehaviour)this).__registerRpc(488072872u, new RpcReceiveHandler(__rpc_handler_488072872), "RemoveKeyFromIgnitionRpc"); ((NetworkBehaviour)this).__registerRpc(2045075206u, new RpcReceiveHandler(__rpc_handler_2045075206), "SetDriverInCarServerRpc"); ((NetworkBehaviour)this).__registerRpc(1327850510u, new RpcReceiveHandler(__rpc_handler_1327850510), "SetDriverInCarOwnerRpc"); ((NetworkBehaviour)this).__registerRpc(2406511531u, new RpcReceiveHandler(__rpc_handler_2406511531), "SetDriverInCarNotOwnerRpc"); ((NetworkBehaviour)this).__registerRpc(3401388119u, new RpcReceiveHandler(__rpc_handler_3401388119), "OnDriverExitCarRpc"); ((NetworkBehaviour)this).__registerRpc(3097541392u, new RpcReceiveHandler(__rpc_handler_3097541392), "SetPassengerInCarServerRpc"); ((NetworkBehaviour)this).__registerRpc(2563769890u, new RpcReceiveHandler(__rpc_handler_2563769890), "SetPassengerInCarRpc"); ((NetworkBehaviour)this).__registerRpc(1712975515u, new RpcReceiveHandler(__rpc_handler_1712975515), "OnPassengerExitCarRpc"); ((NetworkBehaviour)this).__registerRpc(1393046261u, new RpcReceiveHandler(__rpc_handler_1393046261), "CancelSetPlayerInVehicleClientRpc"); ((NetworkBehaviour)this).__registerRpc(922548461u, new RpcReceiveHandler(__rpc_handler_922548461), "OnDriverLeaveGameServerRpc"); ((NetworkBehaviour)this).__registerRpc(2891603058u, new RpcReceiveHandler(__rpc_handler_2891603058), "OnDriverLeaveGameRpc"); ((NetworkBehaviour)this).__registerRpc(3769073087u, new RpcReceiveHandler(__rpc_handler_3769073087), "OnPassengerLeaveGameRpc"); ((NetworkBehaviour)this).__registerRpc(4010263211u, new RpcReceiveHandler(__rpc_handler_4010263211), "ShiftToGearRpc"); ((NetworkBehaviour)this).__registerRpc(21932990u, new RpcReceiveHandler(__rpc_handler_21932990), "MagnetCarRpc"); ((NetworkBehaviour)this).__registerRpc(918372418u, new RpcReceiveHandler(__rpc_handler_918372418), "AddEngineOilRpc"); ((NetworkBehaviour)this).__registerRpc(3360889087u, new RpcReceiveHandler(__rpc_handler_3360889087), "AddTurboBoostRpc"); ((NetworkBehaviour)this).__registerRpc(1336299420u, new RpcReceiveHandler(__rpc_handler_1336299420), "UseTurboBoostRpc"); ((NetworkBehaviour)this).__registerRpc(2695918748u, new RpcReceiveHandler(__rpc_handler_2695918748), "SetHonkRpc"); ((NetworkBehaviour)this).__registerRpc(242240265u, new RpcReceiveHandler(__rpc_handler_242240265), "SyncRadioTimeRpc"); ((NetworkBehaviour)this).__registerRpc(2877346515u, new RpcReceiveHandler(__rpc_handler_2877346515), "SetRadioStationRpc"); ((NetworkBehaviour)this).__registerRpc(4016335049u, new RpcReceiveHandler(__rpc_handler_4016335049), "SetRadioRpc"); ((NetworkBehaviour)this).__registerRpc(3722939512u, new RpcReceiveHandler(__rpc_handler_3722939512), "SetRadioSignalQualityRpc"); ((NetworkBehaviour)this).__registerRpc(4051414770u, new RpcReceiveHandler(__rpc_handler_4051414770), "SyncCarEffectsRpc"); ((NetworkBehaviour)this).__registerRpc(197659815u, new RpcReceiveHandler(__rpc_handler_197659815), "SyncPlayerInputsRpc"); ((NetworkBehaviour)this).__registerRpc(1832740683u, new RpcReceiveHandler(__rpc_handler_1832740683), "SyncCarPositionRpc"); ((NetworkBehaviour)this).__registerRpc(509756710u, new RpcReceiveHandler(__rpc_handler_509756710), "SetTyreStressRpc"); ((NetworkBehaviour)this).__registerRpc(4214428700u, new RpcReceiveHandler(__rpc_handler_4214428700), "SyncCarDrivetrainRpc"); ((NetworkBehaviour)this).__registerRpc(2949658452u, new RpcReceiveHandler(__rpc_handler_2949658452), "SyncWheelTorqueRpc"); ((NetworkBehaviour)this).__registerRpc(727985888u, new RpcReceiveHandler(__rpc_handler_727985888), "CarBumpRpc"); ((NetworkBehaviour)this).__registerRpc(4051615060u, new RpcReceiveHandler(__rpc_handler_4051615060), "CarCollisionRpc"); ((NetworkBehaviour)this).__registerRpc(113234185u, new RpcReceiveHandler(__rpc_handler_113234185), "CarCollisionSFXRpc"); ((NetworkBehaviour)this).__registerRpc(3190658997u, new RpcReceiveHandler(__rpc_handler_3190658997), "DealDamageRpc"); ((NetworkBehaviour)this).__registerRpc(1771295468u, new RpcReceiveHandler(__rpc_handler_1771295468), "DestroyCarRpc"); ((NetworkBehaviour)this).__registerRpc(3938964334u, new RpcReceiveHandler(__rpc_handler_3938964334), "SyncCarHealthRpc"); ((NetworkBehaviour)this).__registerRpc(1423326709u, new RpcReceiveHandler(__rpc_handler_1423326709), "SyncExtremeStressRpc"); ((NetworkBehaviour)this).__registerRpc(1459409878u, new RpcReceiveHandler(__rpc_handler_1459409878), "SetHoodOnFireRpc"); ((NetworkBehaviour)this).__registerRpc(2095956418u, new RpcReceiveHandler(__rpc_handler_2095956418), "SetHoodOpenRpc"); ((NetworkBehaviour)this).__registerRpc(1225320926u, new RpcReceiveHandler(__rpc_handler_1225320926), "PushTruckRpc"); ((NetworkBehaviour)this).__registerRpc(4175260202u, new RpcReceiveHandler(__rpc_handler_4175260202), "PushTruckFromOwnerRpc"); ((NetworkBehaviour)this).__registerRpc(1085326842u, new RpcReceiveHandler(__rpc_handler_1085326842), "ToggleWipersRpc"); ((NetworkBehaviour)this).__registerRpc(1499313525u, new RpcReceiveHandler(__rpc_handler_1499313525), "OpenCabinWindowRpc"); ((NetworkBehaviour)this).__registerRpc(379102476u, new RpcReceiveHandler(__rpc_handler_379102476), "ToggleHeadlightsRpc"); ((NetworkBehaviour)this).__registerRpc(1615077013u, new RpcReceiveHandler(__rpc_handler_1615077013), "SpringDriverSeatRpc"); ((VehicleController)this).__initializeRpcs(); } private static void __rpc_handler_3603618885(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0057: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int num = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref num); bool postBetaMode = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref postBetaMode, default(ForPrimitives)); bool noTree = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref noTree, default(ForPrimitives)); bool babyFace = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref babyFace, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetAndSyncCruiserDataRpc(num, postBetaMode, noTree, babyFace); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2843149083(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool setKeyInSlot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setKeyInSlot, default(ForPrimitives)); bool cabLightActive = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref cabLightActive, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).TryIgnitionRpc(setKeyInSlot, cabLightActive); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_41763978(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; ((v55VehicleController)(object)target).TryStartIgnitionRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3795050472(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0066: 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_009f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool setKeyInSlot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setKeyInSlot, default(ForPrimitives)); bool cabLightActive = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref cabLightActive, default(ForPrimitives)); int playerAnimIndex = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerAnimIndex); int ignitionAnimIndex = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref ignitionAnimIndex); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).CancelTryIgnitionRpc(setKeyInSlot, cabLightActive, playerAnimIndex, ignitionAnimIndex); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3842753156(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; ((v55VehicleController)(object)target).StartIgnitionRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_488072872(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; ((v55VehicleController)(object)target).RemoveKeyFromIgnitionRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2045075206(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004f: 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) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); RpcParams ext = rpcParams.Ext; target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetDriverInCarServerRpc(playerId, ext); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1327850510(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_004f: 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) { NetworkBehaviourReference driverInCarOwnerRpc = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe(ref driverInCarOwnerRpc, default(ForNetworkSerializable)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetDriverInCarOwnerRpc(driverInCarOwnerRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2406511531(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0086: 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_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkBehaviourReference playerNetObjRef = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe(ref playerNetObjRef, default(ForNetworkSerializable)); bool setCabLight = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setCabLight, default(ForPrimitives)); bool setKeyInSlot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setKeyInSlot, default(ForPrimitives)); bool engineStarted = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref engineStarted, default(ForPrimitives)); int currentAnimIndex = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref currentAnimIndex); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetDriverInCarNotOwnerRpc(playerNetObjRef, setCabLight, setKeyInSlot, engineStarted, currentAnimIndex); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3401388119(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_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: 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) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: 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) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkBehaviourReference playerNetObjRef = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe(ref playerNetObjRef, default(ForNetworkSerializable)); Vector3 carLocation = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref carLocation); Quaternion carRotation = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref carRotation); bool gasFloored = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref gasFloored, default(ForPrimitives)); bool brakeFloored = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref brakeFloored, default(ForPrimitives)); bool setKeyInSlot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setKeyInSlot, default(ForPrimitives)); bool engineStarted = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref engineStarted, default(ForPrimitives)); bool accessoriesActive = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref accessoriesActive, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).OnDriverExitCarRpc(playerNetObjRef, carLocation, carRotation, gasFloored, brakeFloored, setKeyInSlot, engineStarted, accessoriesActive); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3097541392(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004f: 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) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); RpcParams ext = rpcParams.Ext; target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetPassengerInCarServerRpc(playerId, ext); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2563769890(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_004f: 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) { NetworkBehaviourReference passengerInCarRpc = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe(ref passengerInCarRpc, default(ForNetworkSerializable)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetPassengerInCarRpc(passengerInCarRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1712975515(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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkBehaviourReference playerNetObjRef = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe(ref playerNetObjRef, default(ForNetworkSerializable)); Vector3 exitPoint = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref exitPoint); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).OnPassengerExitCarRpc(playerNetObjRef, exitPoint); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1393046261(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).CancelSetPlayerInVehicleClientRpc(playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_922548461(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).OnDriverLeaveGameServerRpc(playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2891603058(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: 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) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); Vector3 carLocation = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref carLocation); Quaternion carRotation = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref carRotation); bool setIgnitionState = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setIgnitionState, default(ForPrimitives)); bool setKeyInSlot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setKeyInSlot, default(ForPrimitives)); bool gasFloored = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref gasFloored, default(ForPrimitives)); bool brakeFloored = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref brakeFloored, default(ForPrimitives)); bool preIgnition = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref preIgnition, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).OnDriverLeaveGameRpc(playerId, carLocation, carRotation, setIgnitionState, setKeyInSlot, gasFloored, brakeFloored, preIgnition); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3769073087(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).OnPassengerLeaveGameRpc(playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4010263211(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); int setGear = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref setGear); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).ShiftToGearRpc(playerId, setGear); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_21932990(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008a: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 targetPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref targetPosition); Vector3 targetRotation = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref targetRotation); Vector3 startPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref startPosition); Quaternion startRotation = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref startRotation); Vector3 tempRotation = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref tempRotation); Vector3 avgVel = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref avgVel); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).MagnetCarRpc(targetPosition, targetRotation, startPosition, startRotation, tempRotation, avgVel); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_918372418(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int setHP = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref setHP); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).AddEngineOilRpc(setHP); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3360889087(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int setTurboBoosts = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref setTurboBoosts); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).AddTurboBoostRpc(setTurboBoosts); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1336299420(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; ((v55VehicleController)(object)target).UseTurboBoostRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2695918748(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 honkRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref honkRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetHonkRpc(honkRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_242240265(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { float songTime = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref songTime, default(ForPrimitives)); float syncedTime = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref syncedTime, default(ForPrimitives)); float staticTime = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref staticTime, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SyncRadioTimeRpc(songTime, syncedTime, staticTime); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2877346515(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0057: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int radioStation = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref radioStation); float setTime = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setTime, default(ForPrimitives)); float signalQuality = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref signalQuality, default(ForPrimitives)); float signalDecrease = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref signalDecrease, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetRadioStationRpc(radioStation, setTime, signalQuality, signalDecrease); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4016335049(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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0057: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool setRadioOn = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setRadioOn, default(ForPrimitives)); int radioStation = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref radioStation); float setTime = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setTime, default(ForPrimitives)); float signalQuality = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref signalQuality, default(ForPrimitives)); float signalDecrease = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref signalDecrease, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetRadioRpc(setRadioOn, radioStation, setTime, signalQuality, signalDecrease); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3722939512(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int signalQuality = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref signalQuality); float signalDecrease = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref signalDecrease, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetRadioSignalQualityRpc(signalQuality, signalDecrease); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4051414770(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { float wheelRotation = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref wheelRotation, default(ForPrimitives)); float steerInput = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref steerInput, default(ForPrimitives)); float playerSteering = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref playerSteering, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SyncCarEffectsRpc(wheelRotation, steerInput, playerSteering); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_197659815(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0057: 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_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0077: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector2 playerInput = default(Vector2); ((FastBufferReader)(ref reader)).ReadValueSafe(ref playerInput); bool gasPressed = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref gasPressed, default(ForPrimitives)); bool brakePressed = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref brakePressed, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SyncPlayerInputsRpc(playerInput, gasPressed, brakePressed); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1832740683(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 carPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref carPosition); Vector3 carRotation = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref carRotation); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SyncCarPositionRpc(carPosition, carRotation); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_509756710(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { float wheelStress = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref wheelStress, default(ForPrimitives)); bool wheelSkidding = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref wheelSkidding, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetTyreStressRpc(wheelStress, wheelSkidding); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4214428700(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { float frontWheelSpeed = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref frontWheelSpeed, default(ForPrimitives)); float backWheelSpeed = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref backWheelSpeed, default(ForPrimitives)); float wheelSpeed = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref wheelSpeed, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SyncCarDrivetrainRpc(frontWheelSpeed, backWheelSpeed, wheelSpeed); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2949658452(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { float motorTorque = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref motorTorque, default(ForPrimitives)); float brakeTorque = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref brakeTorque, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SyncWheelTorqueRpc(motorTorque, brakeTorque); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_727985888(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 vel = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref vel); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).CarBumpRpc(vel); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4051615060(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 vel = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref vel); bool onlyLocalDriver = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref onlyLocalDriver, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).CarCollisionRpc(vel, onlyLocalDriver); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_113234185(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 audioPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref audioPosition); int audio = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref audio); int audioType = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref audioType); float vol = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref vol, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).CarCollisionSFXRpc(audioPosition, audio, audioType, vol); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3190658997(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int carHealth = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref carHealth); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).DealDamageRpc(carHealth); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1771295468(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; ((v55VehicleController)(object)target).DestroyCarRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3938964334(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int carHealth = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref carHealth); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SyncCarHealthRpc(carHealth); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1423326709(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 underStress = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref underStress, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SyncExtremeStressRpc(underStress); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1459409878(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 hoodOnFireRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref hoodOnFireRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetHoodOnFireRpc(hoodOnFireRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2095956418(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 hoodOpenRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref hoodOpenRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetHoodOpenRpc(hoodOpenRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1225320926(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 pushPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref pushPosition); Vector3 dir = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref dir); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).PushTruckRpc(pushPosition, dir); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4175260202(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 pos = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref pos); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).PushTruckFromOwnerRpc(pos); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1085326842(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; ((v55VehicleController)(object)target).ToggleWipersRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1499313525(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; ((v55VehicleController)(object)target).OpenCabinWindowRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_379102476(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 setLightsOn = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setLightsOn, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).ToggleHeadlightsRpc(setLightsOn); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1615077013(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; ((v55VehicleController)(object)target).SpringDriverSeatRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "v55VehicleController"; } } namespace v55Cruiser { [BepInPlugin("scandal.v55cruiser", "v55Cruiser", "1.4.1")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { internal static List networkPrefabs = new List(); public static Plugin Instance { get; private set; } = null; internal static ManualLogSource Logger { get; private set; } = null; internal static Harmony? Harmony { get; set; } public void Awake() { Logger = ((BaseUnityPlugin)this).Logger; Instance = this; LoadAssetBundlesAndRegister(); UserConfig.InitConfig(); Patch(); Logger.LogInfo((object)"V55: scandal.v55cruiser v1.4.1 has loaded!"); } private void LoadAssetBundlesAndRegister() { AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), "v55cruiser")); if ((Object)(object)val == (Object)null) { Logger.LogError((object)"V55: [AssetBundle] Failed to load asset bundle: v55cruiser"); return; } References.companyCruiserPrefab = val.LoadAsset("CompanyCruiser.prefab"); References.companyCruiserManualPrefab = val.LoadAsset("CompanyCruiserManual.prefab"); if ((Object)(object)References.companyCruiserPrefab != (Object)null) { if (!networkPrefabs.Contains(References.companyCruiserPrefab)) { networkPrefabs.Add(References.companyCruiserPrefab); } Logger.LogInfo((object)"V55: [AssetBundle] Successfully loaded prefab: CompanyCruiser"); } else { Logger.LogError((object)"V55: [AssetBundle] Failed to load prefab: CompanyCruiser"); } if ((Object)(object)References.companyCruiserManualPrefab != (Object)null) { if (!networkPrefabs.Contains(References.companyCruiserManualPrefab)) { networkPrefabs.Add(References.companyCruiserManualPrefab); } Logger.LogInfo((object)"V55: [AssetBundle] Successfully loaded prefab: CompanyCruiserManual"); } else { Logger.LogError((object)"V55: [AssetBundle] Failed to load prefab: CompanyCruiserManual"); } } internal static void Patch() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown if (Harmony == null) { Harmony = new Harmony("scandal.v55cruiser"); } Logger.LogDebug((object)"Patching..."); Harmony.PatchAll(); if (IsModPresent("voxx.LethalElementsPlugin")) { LethalElementsCompatibility.PatchAllCompatibilityMethods(Harmony); } if (IsModPresent("NoteBoxz.LethalMin")) { LethalMinCompatibility.PatchAllCompatibilityMethods(Harmony); } if (IsModPresent("ImmersiveVisor")) { ImmersiveVisorCompatibility.PatchAllCompatibilityMethods(Harmony); } Logger.LogDebug((object)"Finished patching!"); } internal static void Unpatch() { Logger.LogDebug((object)"Unpatching..."); Harmony? harmony = Harmony; if (harmony != null) { harmony.UnpatchSelf(); } Logger.LogDebug((object)"Finished unpatching!"); } internal static bool IsModPresent(string name) { return Chainloader.PluginInfos.ContainsKey(name); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "scandal.v55cruiser"; public const string PLUGIN_NAME = "v55Cruiser"; public const string PLUGIN_VERSION = "1.4.1"; } } namespace v55Cruiser.Utils { public static class PlayerUtils { public static bool disableAnimationSync; public static bool isSeatedInTruck; } public static class References { internal static ItemDropship itemShip; internal static v55VehicleController truckController; internal static GameObject companyCruiserPrefab; internal static GameObject companyCruiserManualPrefab; } public static class SaveManager { private static string SavePrefix = "Version55CC."; public static void Save(string key, T data) { ES3.Save(SavePrefix + key, data, GameNetworkManager.Instance.currentSaveFileName); } public static bool TryLoad(string key, out T data) { if (!ES3.KeyExists(SavePrefix + key, GameNetworkManager.Instance.currentSaveFileName)) { data = default(T); return false; } data = ES3.Load(SavePrefix + key, GameNetworkManager.Instance.currentSaveFileName); return true; } public static void Delete(string key) { ES3.DeleteKey(SavePrefix + key, GameNetworkManager.Instance.currentSaveFileName); } } internal class UserConfig { internal static ConfigEntry BabyFaceRadio; internal static ConfigEntry RightHandedWheel; internal static ConfigEntry PostBeta; internal static ConfigEntry NoTreeDestruction; internal static void InitConfig() { ConfigFile config = ((BaseUnityPlugin)Plugin.Instance).Config; config.SaveOnConfigSet = false; BabyFaceRadio = config.Bind("Host", "Baby-Face", false, "[Host] If true, will enable the unused (copyrighted) 'Baby-Face' radio track"); RightHandedWheel = config.Bind("Host", "Right-Hand-Drive", false, "[Host] [Must disable True-V55] If true, will enable a random chance for the Cruiser to be right-hand-drive"); PostBeta = config.Bind("Host", "True-V55", true, "[Host] If true, will unfix some issues, and make the Cruiser 'more true to V55'"); NoTreeDestruction = config.Bind("Host", "No Tree Destruction", false, "[Host] [Must enable True-V55] If true, Trees will act like any other solid wall and be unbreakable by the Cruiser like >6 hours before V55 beta went live. Includes snowmen."); ClearOrphanedEntries(config); config.Save(); config.SaveOnConfigSet = true; } private static void ClearOrphanedEntries(ConfigFile config) { PropertyInfo propertyInfo = AccessTools.Property(typeof(ConfigFile), "OrphanedEntries"); Dictionary dictionary = (Dictionary)propertyInfo.GetValue(config); dictionary.Clear(); } } public static class VehicleUtils { public static bool IsEnemyInTruck(EnemyAI enemyScript, v55VehicleController truckController) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0022: 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) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) if (((Collider)truckController.collisionTrigger.insideTruckNavMeshBounds).ClosestPoint(((Component)enemyScript).transform.position) == ((Component)enemyScript).transform.position || ((Collider)truckController.collisionTrigger.insideTruckNavMeshBounds).ClosestPoint(enemyScript.agent.destination) == enemyScript.agent.destination) { return true; } return false; } public static bool IsPlayerInTruckBounds(v55VehicleController truckController) { return truckController.vehicleZone.playerInZone; } public static bool IsPlayerInTruckStorage(v55VehicleController truckController) { return truckController.vehicleStorageZone.playerInZone; } public static bool IsPlayerSeatedInTruck() { return PlayerUtils.isSeatedInTruck; } public static bool IsSeatedPlayerProtected(PlayerControllerB playerController, v55VehicleController truckController, bool velocityCheck = false, float velocityMagnitude = 0f) { float magnitude = ((Vector3)(ref ((VehicleController)truckController).averageVelocity)).magnitude; if (velocityCheck && magnitude > velocityMagnitude) { return true; } if ((Object)(object)playerController == (Object)(object)((VehicleController)truckController).currentDriver || (Object)(object)playerController == (Object)(object)((VehicleController)truckController).currentPassenger) { return false; } return true; } public static bool IsPlayerProtectedByTruck(PlayerControllerB playerController, v55VehicleController truckController, bool velocityCheck = false, float velocityMagnitude = 0f) { if (((VehicleController)truckController).carDestroyed) { return false; } float magnitude = ((Vector3)(ref ((VehicleController)truckController).averageVelocity)).magnitude; if (velocityCheck && magnitude > velocityMagnitude) { return true; } bool liftGateOpen = truckController.liftGateOpen; if (IsPlayerInTruckStorage(truckController) && liftGateOpen) { return false; } if (IsPlayerInTruckBounds(truckController) && !IsPlayerInTruckStorage(truckController)) { return false; } return true; } public static bool IsPlayerNearTruck(PlayerControllerB playerController, v55VehicleController truckController) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) Vector3 position = ((VehicleController)truckController).mainRigidbody.position; Vector3 position2 = ((Component)playerController).transform.position; if (Vector3.Distance(position2, position) > 10f) { return false; } return true; } } } namespace v55Cruiser.Scripts { public class v55InteriorType : MonoBehaviour { public v55SeatAnimator driverSeat = null; public v55SeatAnimator passengerSeat = null; public InteractTrigger driverSeatTrigger = null; public InteractTrigger passengerSeatTrigger = null; public Animator gearStickAnimator = null; public Transform windWiper1 = null; public Transform windWiper2 = null; public Animator driverSeatSpringAnimator = null; public float cameraLookAngle; } public class v55PhysicsRegion : PlayerPhysicsRegion { private bool removePlayerFromZoneNextFrame; private float checkZoneInterval; private bool addedRegionToList; public bool playerInZone; public bool isRegionActive; public bool parentPlayerBodies; public bool setPlayerParent; private void OnDestroy() { //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) base.disablePhysicsRegion = true; TryRemovePhysicsRegionFromList(); for (int i = 0; i < StartOfRound.Instance?.allPlayerScripts.Length; i++) { if ((Object)(object)((Component)StartOfRound.Instance.allPlayerScripts[i]).transform.parent == (Object)(object)base.physicsTransform) { ((Component)StartOfRound.Instance.allPlayerScripts[i]).transform.SetParent((Transform)null); Debug.Log((object)$"V55: Player {i} setting parent null since physics region was destroyed"); } } if (!base.allowDroppingItems || (Object)(object)base.itemDropCollider == (Object)null) { return; } GrabbableObject[] componentsInChildren = ((Component)base.physicsTransform).GetComponentsInChildren(); for (int j = 0; j < componentsInChildren.Length; j++) { if ((Object)(object)RoundManager.Instance.mapPropsContainer != (Object)null) { ((Component)componentsInChildren[j]).transform.SetParent(RoundManager.Instance.mapPropsContainer.transform, true); } else { ((Component)componentsInChildren[j]).transform.SetParent((Transform)null, true); } if (!componentsInChildren[j].isHeld) { componentsInChildren[j].FallToGround(false, false, default(Vector3)); } } } private void OnTriggerStay(Collider other) { if (base.disablePhysicsRegion) { return; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if ((Object)(object)localPlayerController == (Object)null) { return; } if (parentPlayerBodies && ((Component)other).gameObject.layer == 20) { PlayerControllerB val = null; DeadBodyInfo val2 = default(DeadBodyInfo); if (((Component)other).gameObject.TryGetComponent(ref val2)) { val = val2.playerScript; } if ((Object)(object)val != (Object)null && (Object)(object)val.deadBody != (Object)null && !val.deadBody.isParentedToPhysicsRegion && (Object)(object)val.deadBody.physicsParent != (Object)(object)base.physicsTransform) { val.deadBody.SetPhysicsParent(base.physicsTransform, base.physicsCollider); } } if (!((Object)(object)((Component)other).gameObject != (Object)(object)((Component)localPlayerController).gameObject)) { if (isRegionActive) { base.hasLocalPlayer = true; base.removePlayerNextFrame = false; base.checkInterval = 0f; } TryAddPhysicsRegionToList(); if (!VehicleUtils.IsPlayerSeatedInTruck()) { playerInZone = true; removePlayerFromZoneNextFrame = false; checkZoneInterval = 0f; } } } private bool IsPhysicsRegionActive() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) return Vector3.Angle(((Component)this).transform.up, Vector3.up) <= base.maxTippingAngle; } private void TryRemovePhysicsRegionFromList() { if (setPlayerParent) { addedRegionToList = false; if (StartOfRound.Instance?.CurrentPlayerPhysicsRegions != null && StartOfRound.Instance.CurrentPlayerPhysicsRegions.Contains((PlayerPhysicsRegion)(object)this)) { StartOfRound.Instance.CurrentPlayerPhysicsRegions.Remove((PlayerPhysicsRegion)(object)this); } } } private void TryAddPhysicsRegionToList() { if (setPlayerParent && !addedRegionToList && isRegionActive) { addedRegionToList = true; if (StartOfRound.Instance?.CurrentPlayerPhysicsRegions != null && !StartOfRound.Instance.CurrentPlayerPhysicsRegions.Contains((PlayerPhysicsRegion)(object)this)) { StartOfRound.Instance.CurrentPlayerPhysicsRegions.Add((PlayerPhysicsRegion)(object)this); } } } private void Update() { if (base.disablePhysicsRegion) { base.hasLocalPlayer = false; playerInZone = false; TryRemovePhysicsRegionFromList(); } else { isRegionActive = IsPhysicsRegionActive(); SetRegion(ref base.checkInterval, ref base.removePlayerNextFrame, ref base.hasLocalPlayer, ignoreSeated: true); SetRegion(ref checkZoneInterval, ref removePlayerFromZoneNextFrame, ref playerInZone, ignoreSeated: false); } } private void SetRegion(ref float checksInterval, ref bool nextFrame, ref bool setPlayer, bool ignoreSeated) { if (!ignoreSeated && VehicleUtils.IsPlayerSeatedInTruck()) { setPlayer = true; nextFrame = false; checksInterval = 0f; } else { if (!setPlayer) { return; } if (checksInterval <= 0.15f) { checksInterval += Time.deltaTime; return; } if (!nextFrame) { nextFrame = true; return; } nextFrame = false; checksInterval = 0f; setPlayer = false; if (setPlayerParent) { TryRemovePhysicsRegionFromList(); } } } } public class v55PlayerZone : MonoBehaviour { public v55VehicleController haulerController = null; public Transform physicsTransform = null; public Collider physicsCollider = null; private bool removePlayerFromZoneNextFrame; private float checkZoneInterval; public bool unsetInZoneWhileSeated; public bool setInZoneWhileSeated; public bool playerInZone; public bool disableZone; private void OnEnable() { if (setInZoneWhileSeated && unsetInZoneWhileSeated) { Plugin.Logger.LogWarning((object)"V55: 'Set in zone' and 'Unset in zone' are set simulteanously! this will cause issues!"); Plugin.Logger.LogWarning((object)"V55: Fallback to set behaviour 'Set zone --> not seated'"); setInZoneWhileSeated = false; unsetInZoneWhileSeated = true; } else if (!setInZoneWhileSeated && !unsetInZoneWhileSeated) { Plugin.Logger.LogWarning((object)"V55: 'Set in zone' and 'Unset in zone' are unset simulteanously! this will cause issues!"); Plugin.Logger.LogWarning((object)"V55: Fallback to set behaviour 'Set zone --> not seated'"); setInZoneWhileSeated = false; unsetInZoneWhileSeated = true; } } private void OnDestroy() { disableZone = true; } private void OnTriggerStay(Collider other) { if (!disableZone) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (!((Object)(object)localPlayerController == (Object)null) && !VehicleUtils.IsPlayerSeatedInTruck() && !((Object)(object)((Component)other).gameObject != (Object)(object)((Component)localPlayerController).gameObject)) { playerInZone = true; removePlayerFromZoneNextFrame = false; checkZoneInterval = 0f; } } } private void Update() { if (disableZone) { playerInZone = false; return; } if (VehicleUtils.IsPlayerSeatedInTruck()) { if (setInZoneWhileSeated) { playerInZone = true; removePlayerFromZoneNextFrame = false; checkZoneInterval = 0f; return; } if (unsetInZoneWhileSeated) { playerInZone = false; removePlayerFromZoneNextFrame = false; checkZoneInterval = 0f; return; } } SetRemoval(ref checkZoneInterval, ref removePlayerFromZoneNextFrame, ref playerInZone); } private void SetRemoval(ref float checksInterval, ref bool nextFrame, ref bool setPlayer) { if (setPlayer) { if (checksInterval <= 0.15f) { checksInterval += Time.deltaTime; return; } if (!nextFrame) { nextFrame = true; return; } nextFrame = false; checksInterval = 0f; setPlayer = false; } } } public class v55SeatAnimator : VehicleSeatAnimator { public v55VehicleController vehicleController = null; public override void OnPlayerLeaveGame() { if ((Object)(object)base.seatTrigger == (Object)(object)((VehicleController)vehicleController).driverSeatTrigger) { vehicleController.OnDriverLeaveGameServerRpc((int)base.seatTrigger.playerScriptInSpecialAnimation.playerClientId); } else if ((Object)(object)base.seatTrigger == (Object)(object)((VehicleController)vehicleController).passengerSeatTrigger) { vehicleController.OnPassengerLeaveGameRpc((int)base.seatTrigger.playerScriptInSpecialAnimation.playerClientId); } } public override void ResetPlayerData(PlayerControllerB player) { player.ladderCameraHorizontal = 0f; PlayerControllerBPatches.playerData[player].syncedCameraHorizontal = 0f; } public override void SetPlayerSeated(bool setSeated, PlayerControllerB localPlayer) { PlayerUtils.isSeatedInTruck = setSeated; } } } namespace v55Cruiser.Patches { [HarmonyPatch(typeof(ElevatorAnimationEvents))] public static class ElevatorAnimationEventsPatches { [HarmonyPatch("ElevatorFullyRunning")] [HarmonyPrefix] private static void ElevatorFullyRunning_Prefix() { v55VehicleController truckController = References.truckController; if (!((Object)(object)truckController == (Object)null)) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (PlayerUtils.isSeatedInTruck || VehicleUtils.IsPlayerInTruckBounds(truckController) || VehicleUtils.IsPlayerInTruckStorage(truckController)) { localPlayerController.isInElevator = false; } } } } [HarmonyPatch(typeof(GameNetworkManager))] public static class GameNetworkManagerPatches { [HarmonyPatch("Start")] [HarmonyPostfix] private static void Start_Postfix(GameNetworkManager __instance) { V55Networker.Init(); foreach (GameObject networkPrefab in Plugin.networkPrefabs) { if (!NetworkManager.Singleton.NetworkConfig.Prefabs.Contains(networkPrefab)) { NetworkManager.Singleton.AddNetworkPrefab(networkPrefab); } } } [HarmonyPatch("SaveItemsInShip")] [HarmonyPostfix] private static void SaveItemsInShip_Postfix(GameNetworkManager __instance) { try { if (Object.op_Implicit((Object)(object)StartOfRound.Instance.attachedVehicle) && StartOfRound.Instance.attachedVehicle is v55VehicleController v55VehicleController) { SaveManager.Save("AttachedVehicleInterior", v55VehicleController.interiorType); Plugin.Logger.LogMessage((object)"V55: Successfully saved Cruiser data."); } else { SaveManager.Delete("AttachedVehicleInterior"); Plugin.Logger.LogMessage((object)"V55: Successfully deleted Cruiser data."); } } catch (Exception ex) { Plugin.Logger.LogError((object)("V55: Exception caught saving Cruiser data:\n" + ex)); } } } [HarmonyPatch(typeof(HUDManager))] public static class HUDManagerPatches { [HarmonyPatch("HelmetCondensationDrops")] [HarmonyPostfix] private static void HelmetCondensationDrops_Postfix(HUDManager __instance) { v55VehicleController truckController = References.truckController; if (!((Object)(object)truckController == (Object)null) && VehicleUtils.IsPlayerInTruckStorage(truckController)) { __instance.increaseHelmetCondensation = false; } } } [HarmonyPatch(typeof(ItemDropship))] public static class ItemDropshipPatches { [HarmonyPatch("Start")] [HarmonyPrefix] private static void Start_Postfix(ItemDropship __instance) { if (!((Object)(object)__instance == (Object)null)) { References.itemShip = __instance; } } } [HarmonyPatch(typeof(Landmine))] public static class LandminePatches { [HarmonyPatch("SpawnExplosion")] [HarmonyPrefix] private static void SpawnExplosion_Prefix(Landmine __instance, Vector3 explosionPosition, bool spawnExplosionEffect, ref float killRange, ref float damageRange, int nonLethalDamage, float physicsForce, GameObject overridePrefab, bool goThroughCar) { //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) v55VehicleController truckController = References.truckController; if (!((Object)(object)truckController == (Object)null) && VehicleUtils.IsPlayerNearTruck(GameNetworkManager.Instance.localPlayerController, truckController) && !goThroughCar && !spawnExplosionEffect && killRange == 2.4f && damageRange == 5f && (float)nonLethalDamage == 1f && physicsForce == 0f && VehicleUtils.IsPlayerInTruckStorage(truckController) && truckController.storageCompartment.ClosestPoint(explosionPosition) != explosionPosition) { killRange = -1f; damageRange = -1f; } } } [HarmonyPatch(typeof(PlayerControllerB))] public static class PlayerControllerBPatches { public class PlayerControllerBData { public float syncedCameraHorizontal; public bool playerSeatedInTruck; public bool playerRidingOnTruck; public bool playerRidingInTruckStorage; } public static Dictionary playerData = new Dictionary(); private static float checkInterval; private static Quaternion armsMetarigParentRot = Quaternion.Euler(90f, 0f, 0f); private static Quaternion armsMetarigRot = Quaternion.Euler(-90f, 0f, 0f); private static Vector3 localArmsPos = new Vector3(0f, -0.008f, -0.43f); private static Quaternion localArmsRot = Quaternion.Euler(84.78056f, 0f, 0f); private static Vector3 playerBodyPos = Vector3.zero; private static Quaternion playerBodyRot = Quaternion.Euler(-90f, 0f, 0f); private static void RemoveStalePlayerData() { List list = new List(); foreach (PlayerControllerB key in playerData.Keys) { if (!Object.op_Implicit((Object)(object)key)) { list.Add(key); } } foreach (PlayerControllerB item in list) { playerData.Remove(item); } } [HarmonyPatch("Awake")] [HarmonyPostfix] private static void Awake_Postfix(PlayerControllerB __instance) { RemoveStalePlayerData(); if (!playerData.ContainsKey(__instance)) { PlayerControllerBData value = new PlayerControllerBData(); playerData.Add(__instance, value); } } [HarmonyPatch("UpdatePlayerAnimationsToOtherClients")] [HarmonyPrefix] private static bool UpdatePlayerAnimationsToOtherClients_Prefix(PlayerControllerB __instance, Vector2 moveInputVector) { if ((Object)(object)__instance != (Object)(object)GameNetworkManager.Instance.localPlayerController) { return true; } if (PlayerUtils.disableAnimationSync) { return false; } return true; } [HarmonyPatch("SetItemInElevator")] [HarmonyPrefix] private static bool SetItemInElevator_Prefix(PlayerControllerB __instance, bool droppedInShipRoom, bool droppedInElevator, GrabbableObject gObject) { if ((Object)(object)References.truckController == (Object)null) { return true; } v55VehicleController truckController = References.truckController; if ((Object)(object)((Component)gObject).transform.parent == (Object)(object)((Component)truckController).transform) { return false; } return true; } [HarmonyPatch("Update")] [HarmonyPostfix] public static void Update_Postfix(PlayerControllerB __instance) { if (!((Object)(object)__instance == (Object)null) && __instance.isPlayerControlled && !((Object)(object)__instance != (Object)(object)GameNetworkManager.Instance.localPlayerController)) { SyncPlayerLookInput(__instance); } } [HarmonyPatch("LateUpdate")] [HarmonyPostfix] public static void LateUpdate_Zone_Postfix(PlayerControllerB __instance) { if (!((Object)(object)__instance == (Object)null) && __instance.isPlayerControlled && !((Object)(object)__instance != (Object)(object)GameNetworkManager.Instance.localPlayerController)) { SetPlayerVehicleZone(__instance); } } private static void SetPlayerVehicleZone(PlayerControllerB playerController) { //IL_008d: Unknown result type (might be due to invalid IL or missing references) v55VehicleController truckController = References.truckController; PlayerControllerBData playerControllerBData = playerData[playerController]; bool isSeatedInTruck = PlayerUtils.isSeatedInTruck; bool flag = truckController?.vehicleStorageZone.playerInZone ?? false; bool flag2 = truckController?.vehicleZone.playerInZone ?? false; if (playerControllerBData.playerSeatedInTruck != isSeatedInTruck || playerControllerBData.playerRidingInTruckStorage != flag || playerControllerBData.playerRidingOnTruck != flag2) { playerControllerBData.playerSeatedInTruck = isSeatedInTruck; playerControllerBData.playerRidingInTruckStorage = flag; playerControllerBData.playerRidingOnTruck = flag2; V55Networker.Instance?.SyncPlayerZoneRpc(NetworkObjectReference.op_Implicit(((NetworkBehaviour)playerController).NetworkObject), isSeatedInTruck, flag, flag2); } } private static void SyncPlayerLookInput(PlayerControllerB playerController) { //IL_0066: Unknown result type (might be due to invalid IL or missing references) if (checkInterval >= 0.15f) { if (playerData[playerController].syncedCameraHorizontal != playerController.ladderCameraHorizontal) { checkInterval = 0f; playerData[playerController].syncedCameraHorizontal = playerController.ladderCameraHorizontal; V55Networker.Instance?.SyncPlayerLookInputRpc(NetworkObjectReference.op_Implicit(((NetworkBehaviour)playerController).NetworkObject), playerController.ladderCameraHorizontal); } } else { checkInterval += Time.deltaTime; } } [HarmonyPatch("LateUpdate")] [HarmonyPostfix] private static void LateUpdate_Postfix(PlayerControllerB __instance) { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)__instance == (Object)null) && !__instance.isPlayerDead && __instance.isPlayerControlled && __instance.inVehicleAnimation && playerData[__instance].playerSeatedInTruck) { ((Component)__instance.playerModelArmsMetarig.parent).transform.localRotation = armsMetarigParentRot; __instance.playerModelArmsMetarig.localRotation = armsMetarigRot; __instance.localArmsTransform.localPosition = localArmsPos; __instance.localArmsTransform.localRotation = localArmsRot; ((Component)__instance.playerBodyAnimator).transform.localPosition = playerBodyPos; ((Component)__instance.playerBodyAnimator).transform.localRotation = playerBodyRot; } } } [HarmonyPatch(typeof(StartOfRound))] public static class StartOfRoundPatches { [HarmonyPatch("Awake")] [HarmonyPrefix] private static void Awake_Prefix(StartOfRound __instance) { V55Networker.Create(); __instance.VehiclesList[0] = References.companyCruiserPrefab; } [HarmonyPatch("SyncAlreadyHeldObjectsServerRpc")] [HarmonyPostfix] private static void SyncAlreadyHeldObjectsServerRpc_Postfix(StartOfRound __instance, int joiningClientId) { if (!Object.op_Implicit((Object)(object)__instance.attachedVehicle) || !(__instance.attachedVehicle is v55VehicleController v55VehicleController)) { return; } try { v55VehicleController.SendClientSyncData(); } catch (Exception ex) { Plugin.Logger.LogError((object)("V55: Exception caught sending saved Cruiser data:\n" + ex)); } } [HarmonyPatch("LoadAttachedVehicle")] [HarmonyPostfix] private static void LoadAttachedVehicle_Postfix(StartOfRound __instance) { if (!Object.op_Implicit((Object)(object)__instance.attachedVehicle) || !(__instance.attachedVehicle is v55VehicleController v55VehicleController)) { return; } try { if (SaveManager.TryLoad("AttachedVehicleInterior", out var data)) { v55VehicleController.interiorType = data; v55VehicleController.SetInteriorType(v55VehicleController.interiorType); } } catch (Exception ex) { Plugin.Logger.LogError((object)("V55: Exception caught loading saved Cruiser data:\n" + ex)); } } } [HarmonyPatch(typeof(Terminal))] public static class TerminalPatches { [HarmonyPatch("Awake")] [HarmonyPrefix] private static void Awake_Prefix(Terminal __instance) { TerminalNode result = __instance.terminalNodes.allKeywords[0].compatibleNouns[40].result; result.itemCost = 400; result.terminalOptions[0].result.itemCost = 400; __instance.buyableVehicles[0].creditsWorth = 400; __instance.buyableVehicles[0].vehiclePrefab = References.companyCruiserPrefab; __instance.buyableVehicles[0].secondaryPrefab = References.companyCruiserManualPrefab; } } [HarmonyPatch(typeof(TerrainObstacleTrigger))] public static class TerrainObstacleTriggerPatches { [HarmonyPatch("OnTriggerEnter")] [HarmonyPrefix] private static bool OnTriggerEnter_Prefix(TerrainObstacleTrigger __instance, bool __runOriginal, Collider other) { //IL_005d: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: 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) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) if (!__runOriginal) { return false; } v55VehicleController v55VehicleController = default(v55VehicleController); if (!((Component)other).TryGetComponent(ref v55VehicleController)) { return true; } if (!((NetworkBehaviour)v55VehicleController).IsOwner || !v55VehicleController.canDestroyTrees) { return false; } if (((Vector3)(ref ((VehicleController)v55VehicleController).averageVelocity)).magnitude >= 5f && Vector3.Angle(((VehicleController)v55VehicleController).averageVelocity, ((Component)__instance).transform.position - ((VehicleController)v55VehicleController).mainRigidbody.position) < 80f) { RoundManager.Instance.DestroyTreeOnLocalClient(((Component)__instance).transform.position); bool dealDamage = (Object)(object)((Component)__instance).transform.parent != (Object)null && ((Component)((Component)__instance).transform.parent).CompareTag("Wood"); v55VehicleController.CarReactToObstacle(((VehicleController)v55VehicleController).mainRigidbody.position - ((Component)__instance).transform.position, ((Component)__instance).transform.position, Vector3.zero, (CarObstacleType)2, 1f, null, dealDamage); return false; } return true; } } [HarmonyPatch(typeof(VehicleController))] public static class VehicleControllerPatches { [HarmonyPatch("AddEngineOil")] [HarmonyPrefix] private static bool AddEngineOil_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.AddEngineOil(); return false; } [HarmonyPatch("AddTurboBoost")] [HarmonyPrefix] private static bool AddTurboBoost_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.AddTurboBoost(); return false; } [HarmonyPatch("StartMagneting")] [HarmonyPrefix] private static bool StartMagneting_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController)) { return true; } return false; } [HarmonyPatch("CollectItemsInTruck")] [HarmonyPrefix] private static bool CollectItemsInTruck_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController)) { return true; } return false; } [HarmonyPatch("DestroyCar")] [HarmonyPrefix] private static bool DestroyCar_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.DestroyCar(); return false; } [HarmonyPatch("ExitDriverSideSeat")] [HarmonyPrefix] private static bool ExitDriverSideSeat_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } if (v55VehicleController.isInteriorRHD) { v55VehicleController.ExitFrontRightSideSeat(); } else { v55VehicleController.ExitFrontLeftSideSeat(); } return false; } [HarmonyPatch("ExitPassengerSideSeat")] [HarmonyPrefix] private static bool ExitPassengerSideSeat_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } if (v55VehicleController.isInteriorRHD) { v55VehicleController.ExitFrontLeftSideSeat(); } else { v55VehicleController.ExitFrontRightSideSeat(); } return false; } [HarmonyPatch("CarReactToObstacle")] [HarmonyPrefix] private static bool CarReactToObstacle_Prefix(VehicleController __instance, bool __runOriginal, Vector3 vel, Vector3 position, Vector3 impulse, CarObstacleType type, float obstacleSize, EnemyAI enemyScript, bool dealDamage) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.CarReactToObstacle(vel, position, impulse, type, obstacleSize, enemyScript, dealDamage); return false; } [HarmonyPatch("DealPermanentDamage")] [HarmonyPrefix] private static bool DealPermanentDamage_Prefix(VehicleController __instance, bool __runOriginal, int damageAmount, Vector3 damagePosition) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.DealPermanentDamage(damageAmount, damagePosition); return false; } [HarmonyPatch("DamagePlayerInVehicle")] [HarmonyPrefix] private static bool DamagePlayerInVehicle_Prefix(VehicleController __instance, bool __runOriginal, Vector3 vel, float magnitude) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } ((VehicleController)v55VehicleController).DamagePlayerInVehicle(vel, magnitude); return false; } [HarmonyPatch("SetInternalStress")] [HarmonyPrefix] private static bool SetInternalStress_Prefix(VehicleController __instance, bool __runOriginal, float carStressIncrease) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.SetInternalStress(carStressIncrease); return false; } [HarmonyPatch("ToggleHeadlightsLocalClient")] [HarmonyPrefix] private static bool ToggleHeadlightsLocalClient_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.ToggleHeadlightsLocalClient(); return false; } [HarmonyPatch("SetHeadlightMaterial")] [HarmonyPrefix] private static bool SetHeadlightMaterial_Prefix(VehicleController __instance, bool __runOriginal, bool on) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } ((VehicleController)v55VehicleController).SetHeadlightMaterial(on); return false; } [HarmonyPatch("SpringDriverSeatLocalClient")] [HarmonyPrefix] private static bool SpringDriverSeatLocalClient_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController)) { return true; } __instance.SpringDriverSeatLocalClient(); return false; } [HarmonyPatch("SetRadioOnLocalClient")] [HarmonyPrefix] private static bool SetRadioOnLocalClient_Prefix(VehicleController __instance, bool __runOriginal, bool on, bool setClip) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.SetRadioOnLocalClient(on, setClip); return false; } [HarmonyPatch("SwitchRadio")] [HarmonyPrefix] private static bool SwitchRadio_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.SwitchRadio(); return false; } [HarmonyPatch("ChangeRadioStation")] [HarmonyPrefix] private static bool ChangeRadioStation_Prefix(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.ChangeRadioStation(); return false; } } } namespace v55Cruiser.Patches.InternalUtils { [HarmonyPatch] public static class ScandalsTweaksPatches { public static bool IsPlayerInCruiser(PlayerControllerB player) { if (PlayerControllerBPatches.playerData[player].playerSeatedInTruck || PlayerControllerBPatches.playerData[player].playerRidingOnTruck) { return true; } return false; } [HarmonyPatch(typeof(GlobalUtilities), "ShouldAllowSightForVehicle")] [HarmonyPrefix] private static bool ShouldAllowSightForVehicle_Prefix(PlayerControllerB player, EnemyAI enemy, ref bool __result) { if (IsPlayerInCruiser(player)) { __result = true; return false; } return true; } [HarmonyPatch(typeof(GiantKiwiAI_Patches), "IsTargetPlayerInVehicle")] [HarmonyPrefix] private static bool IsTargetPlayerInVehicle_Prefix(GiantKiwiAI giantKiwiAi, VehicleController vehicleController, ref bool __result) { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) if (!(vehicleController is v55VehicleController v55VehicleController)) { return true; } PlayerControllerBPatches.PlayerControllerBData playerControllerBData = PlayerControllerBPatches.playerData[((EnemyAI)giantKiwiAi).targetPlayer]; if (playerControllerBData.playerSeatedInTruck || (playerControllerBData.playerRidingInTruckStorage && !v55VehicleController.liftGateOpen) || ((VehicleController)v55VehicleController).ontopOfTruckCollider.ClosestPoint(((Component)((EnemyAI)giantKiwiAi).targetPlayer).transform.position) == ((Component)((EnemyAI)giantKiwiAi).targetPlayer).transform.position) { __result = true; return false; } return true; } [HarmonyPatch(typeof(Landmine_Patches), "ShouldCheckCustomKnockback")] [HarmonyPrefix] private static bool ShouldCheckCustomKnockback_Prefix(ref bool __result) { return true; } [HarmonyPatch(typeof(Landmine_Patches), "CanPlayerBeKnockedBack")] [HarmonyPrefix] private static bool CanPlayerBeKnockedBack_Prefix(ref bool __result) { return true; } [HarmonyPatch(typeof(Landmine_Patches), "CurrentForceMultiplier")] [HarmonyPrefix] private static bool CurrentForceMultiplier_Prefix(ref float __result) { if ((Object)(object)References.truckController != (Object)null) { __result = 1f; return false; } return true; } } } namespace v55Cruiser.Patches.Enemies { [HarmonyPatch(typeof(BaboonBirdAI))] public static class BaboonBirdAIPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool OnCollideWithPlayer_Prefix(BaboonBirdAI __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB val = ((EnemyAI)__instance).MeetsStandardPlayerCollisionConditions(other, ((EnemyAI)__instance).inSpecialAnimation || __instance.doingKillAnimation, false); if ((Object)(object)val == (Object)null) { return true; } if (VehicleUtils.IsPlayerSeatedInTruck()) { if (VehicleUtils.IsSeatedPlayerProtected(val, truckController, velocityCheck: true, 8f)) { return false; } return true; } bool flag = VehicleUtils.IsEnemyInTruck((EnemyAI)(object)__instance, truckController); bool flag2 = VehicleUtils.IsPlayerInTruckStorage(truckController); bool liftGateOpen = truckController.liftGateOpen; if (VehicleUtils.IsPlayerInTruckBounds(truckController)) { if ((flag2 && !liftGateOpen && !flag) || (!flag2 && flag)) { return false; } if (VehicleUtils.IsPlayerProtectedByTruck(val, truckController, velocityCheck: true, 8f)) { return false; } return true; } if (flag) { return false; } return true; } } [HarmonyPatch(typeof(BushWolfEnemy))] public static class BushWolfEnemyPatches { [HarmonyPatch("Update")] [HarmonyPostfix] private static void Update_Postfix(BushWolfEnemy __instance) { if ((Object)(object)((EnemyAI)__instance).targetPlayer == (Object)null || ((EnemyAI)__instance).targetPlayer.isPlayerDead || !((EnemyAI)__instance).targetPlayer.isPlayerControlled || Object.op_Implicit((Object)(object)((EnemyAI)__instance).targetPlayer.inAnimationWithEnemy) || ((EnemyAI)__instance).stunNormalizedTimer > 0f) { return; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return; } if (((Object)(object)((VehicleController)truckController).currentDriver == (Object)(object)((EnemyAI)__instance).targetPlayer || (Object)(object)((VehicleController)truckController).currentPassenger == (Object)(object)((EnemyAI)__instance).targetPlayer) && VehicleUtils.IsSeatedPlayerProtected(((EnemyAI)__instance).targetPlayer, truckController, velocityCheck: true, 12f)) { ((EnemyAI)__instance).agent.speed = 0f; __instance.CancelReelingPlayerIn(); if (((NetworkBehaviour)__instance).IsOwner && __instance.tongueLengthNormalized < -0.25f) { ((EnemyAI)__instance).SwitchToBehaviourState(0); } return; } PlayerControllerBPatches.PlayerControllerBData playerControllerBData = PlayerControllerBPatches.playerData[((EnemyAI)__instance).targetPlayer]; if (playerControllerBData.playerRidingInTruckStorage && !truckController.liftGateOpen) { ((EnemyAI)__instance).agent.speed = 0f; __instance.CancelReelingPlayerIn(); if (((NetworkBehaviour)__instance).IsOwner && __instance.tongueLengthNormalized < -0.25f) { ((EnemyAI)__instance).SwitchToBehaviourState(0); } } } } [HarmonyPatch(typeof(EnemyAI))] public static class EnemyAIPatches { [HarmonyPatch("PlayerIsTargetable")] [HarmonyPostfix] private static void PlayerIsTargetable_Postfix(EnemyAI __instance, PlayerControllerB playerScript, bool cannotBeInShip, bool overrideInsideFactoryCheck, bool checkForMineshaftStartTile, ref bool __result) { if (!(__instance is BushWolfEnemy)) { return; } v55VehicleController truckController = References.truckController; if (!((Object)(object)truckController == (Object)null)) { PlayerControllerBPatches.PlayerControllerBData playerControllerBData = PlayerControllerBPatches.playerData[playerScript]; if (playerControllerBData.playerRidingInTruckStorage && !truckController.liftGateOpen) { __result = false; } } } } [HarmonyPatch(typeof(ForestGiantAI))] public static class ForestGiantAIPatches { [HarmonyPatch("AnimationEventA")] [HarmonyPrefix] private static bool AnimationEventA_Prefix(ForestGiantAI __instance, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if ((Object)(object)localPlayerController == (Object)null) { return false; } if (VehicleUtils.IsPlayerInTruckStorage(truckController)) { return false; } return true; } [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool OnCollideWithPlayer_Prefix(ForestGiantAI __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB val = ((EnemyAI)__instance).MeetsStandardPlayerCollisionConditions(other, __instance.inEatingPlayerAnimation, false); if ((Object)(object)val == (Object)null) { return true; } if (VehicleUtils.IsPlayerSeatedInTruck()) { if (VehicleUtils.IsSeatedPlayerProtected(val, truckController)) { return false; } return true; } if (VehicleUtils.IsPlayerInTruckBounds(truckController)) { if (VehicleUtils.IsPlayerProtectedByTruck(val, truckController)) { return false; } return true; } return true; } } [HarmonyPatch(typeof(GiantKiwiAI))] public static class GiantKiwiAIPatches { [HarmonyPatch("IsEggInsideClosedTruck")] [HarmonyPrefix] private static bool IsEggInsideClosedTruck_Prefix(GiantKiwiAI __instance, KiwiBabyItem egg, bool closedTruck, ref bool __result, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if ((Object)(object)((GrabbableObject)egg).parentObject == (Object)(object)((Component)((VehicleController)truckController).physicsRegion.parentNetworkObject).transform) { __result = !truckController.liftGateOpen; return false; } return true; } [HarmonyPatch("AnimationEventB")] [HarmonyPrefix] private static void AnimationEventB_Prefix(GiantKiwiAI __instance) { v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if ((Object)(object)localPlayerController == (Object)null || !localPlayerController.isPlayerControlled || localPlayerController.isPlayerDead) { return; } if (VehicleUtils.IsPlayerSeatedInTruck()) { if (VehicleUtils.IsSeatedPlayerProtected(localPlayerController, truckController, velocityCheck: true, 13f)) { __instance.timeSinceHittingPlayer = 0f; } return; } bool flag = VehicleUtils.IsEnemyInTruck((EnemyAI)(object)__instance, truckController); bool flag2 = VehicleUtils.IsPlayerInTruckStorage(truckController); bool liftGateOpen = truckController.liftGateOpen; if (VehicleUtils.IsPlayerInTruckBounds(truckController)) { if ((flag2 && !liftGateOpen && !flag) || (!flag2 && flag)) { __instance.timeSinceHittingPlayer = 0.4f; } else if (VehicleUtils.IsPlayerProtectedByTruck(localPlayerController, truckController, velocityCheck: true, 13f)) { __instance.timeSinceHittingPlayer = 0.4f; } } else if (flag) { __instance.timeSinceHittingPlayer = 0.4f; } } } [HarmonyPatch(typeof(MaskedPlayerEnemy))] public static class MaskedPlayerEnemyPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool OnCollideWithPlayer_Prefix(MaskedPlayerEnemy __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB val = ((EnemyAI)__instance).MeetsStandardPlayerCollisionConditions(other, __instance.inKillAnimation || __instance.startingKillAnimationLocalClient || !__instance.enemyEnabled, false); if ((Object)(object)val == (Object)null) { return true; } if (VehicleUtils.IsPlayerSeatedInTruck()) { if (VehicleUtils.IsSeatedPlayerProtected(val, truckController)) { return false; } return true; } bool flag = VehicleUtils.IsEnemyInTruck((EnemyAI)(object)__instance, truckController); bool flag2 = VehicleUtils.IsPlayerInTruckStorage(truckController); bool liftGateOpen = truckController.liftGateOpen; if (VehicleUtils.IsPlayerInTruckBounds(truckController)) { if ((flag2 && !liftGateOpen && !flag) || (!flag2 && flag)) { return false; } if (VehicleUtils.IsPlayerProtectedByTruck(val, truckController, velocityCheck: true, 5f)) { return false; } return true; } if (flag) { return false; } return true; } } [HarmonyPatch(typeof(MouthDogAI))] public static class MouthDogAIPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool OnCollideWithPlayer_Prefix(MouthDogAI __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB val = ((EnemyAI)__instance).MeetsStandardPlayerCollisionConditions(other, __instance.inKillAnimation, false); if ((Object)(object)val == (Object)null) { return true; } if (VehicleUtils.IsPlayerSeatedInTruck()) { if (VehicleUtils.IsSeatedPlayerProtected(val, truckController)) { return false; } return true; } if (VehicleUtils.IsPlayerInTruckBounds(truckController)) { if (VehicleUtils.IsPlayerProtectedByTruck(val, truckController)) { return false; } return true; } return true; } } [HarmonyPatch(typeof(PumaAI))] public static class PumaAIPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool OnCollideWithPlayer_Prefix(PumaAI __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB val = ((EnemyAI)__instance).MeetsStandardPlayerCollisionConditions(other, false, false); if ((Object)(object)val == (Object)null) { return true; } if (VehicleUtils.IsPlayerSeatedInTruck()) { if (VehicleUtils.IsSeatedPlayerProtected(val, truckController, velocityCheck: true, 10f)) { return false; } return true; } bool flag = VehicleUtils.IsEnemyInTruck((EnemyAI)(object)__instance, truckController); bool flag2 = VehicleUtils.IsPlayerInTruckStorage(truckController); bool liftGateOpen = truckController.liftGateOpen; if (VehicleUtils.IsPlayerInTruckBounds(truckController)) { if ((flag2 && !liftGateOpen && !flag) || (!flag2 && flag)) { return false; } if (VehicleUtils.IsPlayerProtectedByTruck(val, truckController, velocityCheck: true, 10f)) { return false; } return true; } if (flag) { return false; } return true; } } [HarmonyPatch(typeof(RadMechAI))] public static class RadMechAIPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool OnCollideWithPlayer_Prefix(RadMechAI __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB val = ((EnemyAI)__instance).MeetsStandardPlayerCollisionConditions(other, false, false); if ((Object)(object)val == (Object)null) { return true; } if (VehicleUtils.IsPlayerSeatedInTruck()) { return true; } if (VehicleUtils.IsPlayerInTruckBounds(truckController)) { if (VehicleUtils.IsPlayerProtectedByTruck(val, truckController)) { return false; } return true; } return true; } } [HarmonyPatch(typeof(RedLocustBees))] public static class RedLocustBeesPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static void OnCollideWithPlayer_Prefix(RedLocustBees __instance, Collider other) { v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return; } PlayerControllerB val = ((EnemyAI)__instance).MeetsStandardPlayerCollisionConditions(other, false, false); if ((Object)(object)val == (Object)null || VehicleUtils.IsPlayerSeatedInTruck()) { return; } bool flag = VehicleUtils.IsEnemyInTruck((EnemyAI)(object)__instance, truckController); bool flag2 = VehicleUtils.IsPlayerInTruckStorage(truckController); bool liftGateOpen = truckController.liftGateOpen; if (VehicleUtils.IsPlayerInTruckBounds(truckController)) { if ((flag2 && !liftGateOpen && !flag) || (!flag2 && flag)) { __instance.timeSinceHittingPlayer = 0f; } else if (VehicleUtils.IsPlayerProtectedByTruck(val, truckController, velocityCheck: true, 5f)) { __instance.timeSinceHittingPlayer = 0f; } } else if (flag) { __instance.timeSinceHittingPlayer = 0f; } } } } namespace v55Cruiser.Networking { internal class V55Networker : NetworkBehaviour { internal static GameObject networkPrefab; internal static V55Networker? Instance { get; private set; } internal static void Init() { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown if ((Object)(object)networkPrefab != (Object)null) { Plugin.Logger.LogDebug((object)"Skipped network handler registration, because it has already been initialized"); return; } try { networkPrefab = new GameObject("V55Networker") { hideFlags = (HideFlags)61 }; NetworkObject val = networkPrefab.AddComponent(); byte[] value = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(typeof(V55Networker).Assembly.GetName().Name + ((Object)networkPrefab).name)); val.GlobalObjectIdHash = BitConverter.ToUInt32(value, 0); networkPrefab.AddComponent(); NetworkManager.Singleton.PrefabHandler.AddNetworkPrefab(networkPrefab); Plugin.Logger.LogDebug((object)"Successfully registered network handler. This is good news!"); } catch (Exception arg) { Plugin.Logger.LogError((object)$"Encountered some fatal error while registering network handler. The mod will not function like this!\n{arg}"); } } internal static void Create() { try { if (NetworkManager.Singleton.IsServer && (Object)(object)networkPrefab != (Object)null) { Object.Instantiate(networkPrefab).GetComponent().Spawn(true); } } catch { Plugin.Logger.LogError((object)"Encountered some fatal error while spawning network handler. It is likely that registration failed earlier on start-up, please consult your logs."); } } private void Awake() { Instance = this; } public override void OnNetworkSpawn() { ((NetworkBehaviour)this).OnNetworkSpawn(); if ((Object)(object)Instance != (Object)(object)this) { NetworkObject val = default(NetworkObject); if ((Object)(object)Instance != (Object)null && ((Component)Instance).TryGetComponent(ref val) && !val.IsSpawned && (Object)(object)Instance != (Object)(object)networkPrefab) { Object.Destroy((Object)(object)Instance); } Plugin.Logger.LogWarning((object)"There are 2 V55Networkers instantiated, and the wrong one was assigned as Instance. This shouldn't happen, but is recoverable"); Instance = this; } Plugin.Logger.LogDebug((object)"Successfully spawned network handler."); } private void Start() { if (!((Object)(object)this != (Object)(object)Instance) && ((NetworkBehaviour)this).IsSpawned) { Plugin.Logger.LogDebug((object)"V55: Start on 'V55Networker' called!"); } } [Rpc(/*Could not decode attribute arguments.*/)] internal void SyncPlayerZoneRpc(NetworkObjectReference player, bool setSeated, bool setStorage, bool setRiding) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_011f: 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)base.__rpc_exec_stage != 1) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(967783858u, val2, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref player, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setSeated, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setStorage, default(ForPrimitives)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref setRiding, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 967783858u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 1) { return; } base.__rpc_exec_stage = (__RpcExecStage)0; NetworkObject val4 = default(NetworkObject); if (((NetworkObjectReference)(ref player)).TryGet(ref val4, (NetworkManager)null)) { PlayerControllerB val5 = default(PlayerControllerB); if (!((Component)val4).TryGetComponent(ref val5)) { Plugin.Logger.LogError((object)"V55: Failed to find player network object!"); return; } PlayerControllerBPatches.PlayerControllerBData playerControllerBData = PlayerControllerBPatches.playerData[val5]; if (playerControllerBData == null) { Plugin.Logger.LogError((object)$"V55: Failed to find player data. clientId? {val5.playerClientId}"); return; } playerControllerBData.playerSeatedInTruck = setSeated; playerControllerBData.playerRidingInTruckStorage = setStorage; playerControllerBData.playerRidingOnTruck = setRiding; } else { Plugin.Logger.LogError((object)"V55: Failed to set player zone data."); } } [Rpc(/*Could not decode attribute arguments.*/)] internal void SyncPlayerLookInputRpc(NetworkObjectReference player, float lookInput) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a3: 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_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: 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)base.__rpc_exec_stage != 1) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val2 = default(RpcParams); FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(4194194153u, val2, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref player, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val3)).WriteValueSafe(ref lookInput, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val3, 4194194153u, val2, val, (SendTo)5, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 1) { return; } base.__rpc_exec_stage = (__RpcExecStage)0; NetworkObject val4 = default(NetworkObject); if (((NetworkObjectReference)(ref player)).TryGet(ref val4, (NetworkManager)null)) { PlayerControllerB val5 = default(PlayerControllerB); if (!((Component)val4).TryGetComponent(ref val5)) { Plugin.Logger.LogError((object)"V55: Failed to find player network object!"); return; } PlayerControllerBPatches.PlayerControllerBData playerControllerBData = PlayerControllerBPatches.playerData[val5]; if (playerControllerBData == null) { Plugin.Logger.LogError((object)$"V55: Failed to find player data. clientId? {val5.playerClientId}"); } else { playerControllerBData.syncedCameraHorizontal = lookInput; } } else { Plugin.Logger.LogError((object)"V55: Failed to set player look-input"); } } protected override void __initializeVariables() { ((NetworkBehaviour)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 ((NetworkBehaviour)this).__registerRpc(967783858u, new RpcReceiveHandler(__rpc_handler_967783858), "SyncPlayerZoneRpc"); ((NetworkBehaviour)this).__registerRpc(4194194153u, new RpcReceiveHandler(__rpc_handler_4194194153), "SyncPlayerLookInputRpc"); ((NetworkBehaviour)this).__initializeRpcs(); } private static void __rpc_handler_967783858(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference player = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe(ref player, default(ForNetworkSerializable)); bool setSeated = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setSeated, default(ForPrimitives)); bool setStorage = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setStorage, default(ForPrimitives)); bool setRiding = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setRiding, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((V55Networker)(object)target).SyncPlayerZoneRpc(player, setSeated, setStorage, setRiding); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4194194153(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_006a: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference player = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe(ref player, default(ForNetworkSerializable)); float lookInput = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref lookInput, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((V55Networker)(object)target).SyncPlayerLookInputRpc(player, lookInput); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string? __getTypeName() { return "V55Networker"; } } } namespace v55Cruiser.Compatibility { public static class ImmersiveVisorCompatibility { [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void PatchAllCompatibilityMethods(Harmony harmony) { ApplyVisorPatch(harmony); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] [HarmonyPrefix] public static void ApplyVisorPatch(Harmony harmony) { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown MethodInfo methodInfo = AccessTools.Method(typeof(VisorRainState), "LineCastForCeiling", (Type[])null, (Type[])null); MethodInfo methodInfo2 = AccessTools.Method(typeof(ImmersiveVisorCompatibility), "LineCastForCeiling_Prefix", (Type[])null, (Type[])null); harmony.Patch((MethodBase)methodInfo, new HarmonyMethod(methodInfo2), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); } public static bool LineCastForCeiling_Prefix(VisorRainState __instance, ref bool __result) { v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if (VehicleUtils.IsPlayerInTruckStorage(truckController)) { __result = true; return false; } return true; } } public static class LethalElementsCompatibility { [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void PatchAllCompatibilityMethods(Harmony harmony) { ApplyElementsPatch(harmony); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] [HarmonyPrefix] public static void ApplyElementsPatch(Harmony harmony) { //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Expected O, but got Unknown //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Expected O, but got Unknown //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Expected O, but got Unknown //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Expected O, but got Unknown //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Expected O, but got Unknown //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Expected O, but got Unknown //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Expected O, but got Unknown //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Expected O, but got Unknown //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Expected O, but got Unknown MethodInfo methodInfo = AccessTools.Method(typeof(HeatwavePatches), "CheckConditionsForHeatingStop", (Type[])null, (Type[])null); MethodInfo methodInfo2 = AccessTools.Method(typeof(HeatwavePatches), "CheckConditionsForHeatingPause", (Type[])null, (Type[])null); MethodInfo methodInfo3 = AccessTools.Method(typeof(PlayerEffectsManager), "SetPlayerTemperature", (Type[])null, (Type[])null); MethodInfo methodInfo4 = AccessTools.Method(typeof(BlizzardWeather), "Update", (Type[])null, (Type[])null); MethodInfo methodInfo5 = AccessTools.Method(typeof(SnowfallVFXManager), "Update", (Type[])null, (Type[])null); MethodInfo methodInfo6 = AccessTools.Method(typeof(BlizzardWeather), "SetColdZoneState", (Type[])null, (Type[])null); MethodInfo methodInfo7 = AccessTools.Method(typeof(SnowfallWeather), "SetColdZoneState", (Type[])null, (Type[])null); MethodInfo methodInfo8 = AccessTools.Method(typeof(v55VehicleController), "Start", (Type[])null, (Type[])null); MethodInfo methodInfo9 = AccessTools.Method(typeof(v55VehicleController), "FixedUpdate", (Type[])null, (Type[])null); MethodInfo methodInfo10 = AccessTools.Method(typeof(LethalElementsCompatibility), "CheckConditionsForHeatingStop_Prefix", (Type[])null, (Type[])null); MethodInfo methodInfo11 = AccessTools.Method(typeof(LethalElementsCompatibility), "CheckConditionsForHeatingPause_Prefix", (Type[])null, (Type[])null); MethodInfo methodInfo12 = AccessTools.Method(typeof(LethalElementsCompatibility), "SetPlayerTemperature_Heatwave", (Type[])null, (Type[])null); MethodInfo methodInfo13 = AccessTools.Method(typeof(LethalElementsCompatibility), "Update_Prefix", (Type[])null, (Type[])null); MethodInfo methodInfo14 = AccessTools.Method(typeof(LethalElementsCompatibility), "VFXUpdate_Postfix", (Type[])null, (Type[])null); MethodInfo methodInfo15 = AccessTools.Method(typeof(LethalElementsCompatibility), "SetColdZoneState_Prefix", (Type[])null, (Type[])null); MethodInfo methodInfo16 = AccessTools.Method(typeof(LethalElementsCompatibility), "SetBaseColdZoneState_Prefix", (Type[])null, (Type[])null); MethodInfo methodInfo17 = AccessTools.Method(typeof(LethalElementsCompatibility), "VehicleSnowTracksPatch_Prefix", (Type[])null, (Type[])null); MethodInfo methodInfo18 = AccessTools.Method(typeof(LethalElementsCompatibility), "VehicleSnowTracksFixedUpdatePatch_Prefix", (Type[])null, (Type[])null); harmony.Patch((MethodBase)methodInfo, new HarmonyMethod(methodInfo10), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); harmony.Patch((MethodBase)methodInfo2, new HarmonyMethod(methodInfo11), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); harmony.Patch((MethodBase)methodInfo3, new HarmonyMethod(methodInfo12), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); harmony.Patch((MethodBase)methodInfo4, new HarmonyMethod(methodInfo13), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); harmony.Patch((MethodBase)methodInfo5, (HarmonyMethod)null, new HarmonyMethod(methodInfo14), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); harmony.Patch((MethodBase)methodInfo6, new HarmonyMethod(methodInfo15), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); harmony.Patch((MethodBase)methodInfo7, new HarmonyMethod(methodInfo16), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); harmony.Patch((MethodBase)methodInfo8, new HarmonyMethod(methodInfo17), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); harmony.Patch((MethodBase)methodInfo9, new HarmonyMethod(methodInfo18), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); } public static void SetPlayerTemperature_Heatwave(PlayerEffectsManager __instance, float temperatureDelta) { if ((Object)(object)HeatwaveWeather.Instance == (Object)null || !((BaseWeather)HeatwaveWeather.Instance).IsActive) { return; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null || (!VehicleUtils.IsPlayerInTruckBounds(truckController) && !VehicleUtils.IsPlayerSeatedInTruck() && !VehicleUtils.IsPlayerInTruckStorage(truckController))) { return; } bool flag = !truckController.liftGateOpen; bool flag2 = VehicleUtils.IsPlayerInTruckBounds(truckController) && !VehicleUtils.IsPlayerSeatedInTruck() && !VehicleUtils.IsPlayerInTruckStorage(truckController); PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; bool flag3 = (Object)(object)localPlayerController.currentAudioTrigger != (Object)null && localPlayerController.currentAudioTrigger.insideLighting; if (VehicleUtils.IsPlayerSeatedInTruck()) { PlayerEffectsManager.heatTransferRate = (((VehicleController)truckController).windshieldBroken ? 0.9f : 0.2f); } else if (VehicleUtils.IsPlayerInTruckStorage(truckController) && flag) { if (!flag3) { PlayerEffectsManager.heatTransferRate = 0.75f; } else { PlayerEffectsManager.heatTransferRate = 1f; } } else { PlayerEffectsManager.heatTransferRate = 1f; } if (flag2) { PlayerEffectsManager.heatTransferRate = 1f; } } public static void VehicleSnowTracksPatch_Prefix(v55VehicleController __instance) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) SnowTrackersManager.AddFootprintTracker((MonoBehaviour)(object)__instance, 6f, 0.75f, 1f, new Vector3(0f, 0f, -1f)); } public static void VehicleSnowTracksFixedUpdatePatch_Prefix(v55VehicleController __instance) { if (SnowPatches.IsSnowActive()) { SnowTrackersManager.UpdateFootprintTracker((MonoBehaviour)(object)__instance, !__instance.allWheelsAirborne); } } public static void VFXUpdate_Postfix() { v55VehicleController truckController = References.truckController; if (!((Object)(object)truckController == (Object)null) && (VehicleUtils.IsPlayerInTruckBounds(truckController) || VehicleUtils.IsPlayerSeatedInTruck() || VehicleUtils.IsPlayerInTruckStorage(truckController)) && (VehicleUtils.IsPlayerSeatedInTruck() || VehicleUtils.IsPlayerInTruckStorage(truckController))) { PlayerEffectsManager.isUnderSnow = false; SnowfallVFXManager.snowMovementHindranceMultiplier = 1f; } } public static bool SetColdZoneState_Prefix(BlizzardWeather __instance) { v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if (VehicleUtils.IsPlayerInTruckBounds(truckController) || VehicleUtils.IsPlayerSeatedInTruck() || VehicleUtils.IsPlayerInTruckStorage(truckController)) { return false; } return true; } public static bool SetBaseColdZoneState_Prefix(SnowfallWeather __instance) { if ((Object)(object)BlizzardWeather.Instance == (Object)null) { return true; } v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if (!VehicleUtils.IsPlayerInTruckBounds(truckController) && !VehicleUtils.IsPlayerSeatedInTruck() && !VehicleUtils.IsPlayerInTruckStorage(truckController)) { return true; } bool flag = !truckController.liftGateOpen; bool flag2 = VehicleUtils.IsPlayerInTruckBounds(truckController) && !VehicleUtils.IsPlayerSeatedInTruck() && !VehicleUtils.IsPlayerInTruckStorage(truckController); PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; bool flag3 = (Object)(object)localPlayerController.currentAudioTrigger != (Object)null && localPlayerController.currentAudioTrigger.insideLighting; if (VehicleUtils.IsPlayerSeatedInTruck()) { PlayerEffectsManager.isInColdZone = IsWindAllowedVehicle(localPlayerController, truckController) && BlizzardWeather.Instance.isLocalPlayerInWind; return false; } if (VehicleUtils.IsPlayerInTruckStorage(truckController)) { if (flag) { PlayerEffectsManager.isInColdZone = !flag3; } else { PlayerEffectsManager.isInColdZone = IsWindAllowedVehicle(localPlayerController, truckController) && BlizzardWeather.Instance.isLocalPlayerInWind; } return false; } if (flag2) { PlayerEffectsManager.isInColdZone = IsWindAllowedVehicle(localPlayerController, truckController) && BlizzardWeather.Instance.isLocalPlayerInWind; return false; } return true; } public static bool Update_Prefix(BlizzardWeather __instance) { v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if (!VehicleUtils.IsPlayerInTruckBounds(truckController) && !VehicleUtils.IsPlayerSeatedInTruck() && !VehicleUtils.IsPlayerInTruckStorage(truckController)) { return true; } bool flag = !truckController.liftGateOpen; bool flag2 = VehicleUtils.IsPlayerSeatedInTruck() || VehicleUtils.IsPlayerInTruckStorage(truckController); bool flag3 = VehicleUtils.IsPlayerInTruckBounds(truckController) && !VehicleUtils.IsPlayerSeatedInTruck() && !VehicleUtils.IsPlayerInTruckStorage(truckController); PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; bool flag4 = (Object)(object)localPlayerController.currentAudioTrigger != (Object)null && localPlayerController.currentAudioTrigger.insideLighting; SnowfallWeather instance = SnowfallWeather.Instance; if (instance != null) { instance.Update(); } if (flag2) { PlayerEffectsManager.heatTransferRate = 0.75f; } if (flag3) { PlayerEffectsManager.heatTransferRate = 1f; __instance.isPlayerInBlizzard = __instance.isLocalPlayerInWind; } return false; } public static bool IsWindAllowedVehicle(PlayerControllerB localPlayer, v55VehicleController controller) { if ((Object)(object)localPlayer.currentAudioTrigger != (Object)null && localPlayer.currentAudioTrigger.insideLighting) { return false; } bool flag = !controller.liftGateOpen; bool flag2 = VehicleUtils.IsPlayerInTruckBounds(controller) || VehicleUtils.IsPlayerSeatedInTruck(); if (VehicleUtils.IsPlayerInTruckStorage(controller) && !flag) { return true; } if (flag2) { return true; } return false; } public static bool CheckConditionsForHeatingStop_Prefix(PlayerControllerB playerController, ref bool __result) { v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if (!VehicleUtils.IsPlayerInTruckBounds(truckController) && !VehicleUtils.IsPlayerSeatedInTruck() && !VehicleUtils.IsPlayerInTruckStorage(truckController)) { return true; } bool flag = !truckController.liftGateOpen; bool flag2 = VehicleUtils.IsPlayerInTruckBounds(truckController) && !VehicleUtils.IsPlayerSeatedInTruck() && !VehicleUtils.IsPlayerInTruckStorage(truckController); bool flag3 = (Object)(object)playerController.currentAudioTrigger != (Object)null && playerController.currentAudioTrigger.insideLighting; if (VehicleUtils.IsPlayerInTruckStorage(truckController) && flag) { __result = true; } else { __result = (flag3 ? true : false); } if (flag2) { __result = (flag3 ? true : false); } return false; } public static bool CheckConditionsForHeatingPause_Prefix(PlayerControllerB playerController, ref bool __result) { v55VehicleController truckController = References.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if (!VehicleUtils.IsPlayerInTruckBounds(truckController) && !VehicleUtils.IsPlayerSeatedInTruck() && !VehicleUtils.IsPlayerInTruckStorage(truckController)) { return true; } __result = false; return false; } } public static class LethalMinCompatibility { [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void PatchAllCompatibilityMethods(Harmony harmony) { ApplyPikminPatch(harmony); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] [HarmonyPrefix] public static void ApplyPikminPatch(Harmony harmony) { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Expected O, but got Unknown //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Expected O, but got Unknown MethodInfo methodInfo = AccessTools.Method(typeof(v55VehicleCollisionTrigger), "OnTriggerEnter", (Type[])null, (Type[])null); MethodInfo methodInfo2 = AccessTools.Method(typeof(LethalMinCompatibility), "OnTriggerEnter_Prefix", (Type[])null, (Type[])null); MethodInfo methodInfo3 = AccessTools.Method(typeof(PikminVehicleController), "InitializeReferences", (Type[])null, (Type[])null); MethodInfo methodInfo4 = AccessTools.Method(typeof(LethalMinCompatibility), "InitializeReferences_Prefix", (Type[])null, (Type[])null); harmony.Patch((MethodBase)methodInfo, new HarmonyMethod(methodInfo2), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); harmony.Patch((MethodBase)methodInfo3, new HarmonyMethod(methodInfo4), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); } public static bool InitializeReferences_Prefix(PikminVehicleController __instance) { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: 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) v55VehicleController v55VehicleController = default(v55VehicleController); if (((Component)__instance).TryGetComponent(ref v55VehicleController)) { __instance.controller = (VehicleController)(object)v55VehicleController; __instance.PointsRegion = v55VehicleController.collisionTrigger.insideTruckNavMeshBounds; __instance.PikminCheckRegion = v55VehicleController.storageCompartment; __instance.PikminWarpPoint = new GameObject("Pikmin Warp Point").transform; __instance.PikminWarpPoint.SetParent(((Component)__instance).transform); __instance.PikminWarpPoint.localPosition = new Vector3(0f, -2f, -5f); __instance.PikminWarpPoint.localScale = new Vector3(1f, 1f, 1f); __instance.OriginalWTLocalPosition = __instance.PikminWarpPoint.localPosition; return false; } return true; } public static bool OnTriggerEnter_Prefix(v55VehicleCollisionTrigger __instance, Collider other) { try { PikminCollisionDetect val = default(PikminCollisionDetect); if (((Component)other).gameObject.CompareTag("Enemy") && ((Component)other).gameObject.TryGetComponent(ref val)) { return false; } } catch (Exception arg) { Plugin.Logger.LogError((object)$"Error in CruiserXLCollisionTrigger.OnTriggerEnterPrefix: {arg}"); return true; } return true; } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } } namespace __GEN { internal class NetworkVariableSerializationHelper { [RuntimeInitializeOnLoadMethod] internal static void InitializeSerialization() { } } } namespace scandal.v55cruiser.NetcodePatcher { [AttributeUsage(AttributeTargets.Module)] internal class NetcodePatchedAssemblyAttribute : Attribute { } }