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 FirstPersonView; using GameNetcodeStuff; using HarmonyLib; using LethalMin; using Microsoft.CodeAnalysis; using ScandalLib.Patches; using ScandalLib.Scripts; using ScandalsTweaks.Compatibility; using ScandalsTweaks.Patches.Enemies; 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.Patches.Enemies; using v55Cruiser.Patches.InternalUtils; using v55Cruiser.Scripts; using v55Cruiser.Utils; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("FirstPersonView")] [assembly: IgnoresAccessChecksTo("ImmersiveVisor")] [assembly: IgnoresAccessChecksTo("NoteBoxz.LethalMin")] [assembly: IgnoresAccessChecksTo("scandal.scandallib")] [assembly: IgnoresAccessChecksTo("scandal.scandalstweaks")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")] [assembly: IgnoresAccessChecksTo("voxx.LethalElementsPlugin")] [assembly: AssemblyCompany("scandal.v55cruiser")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.5.12.0")] [assembly: AssemblyInformationalVersion("1.5.12+e5762e028649536ac218fe658db9e0c1248bd2fe")] [assembly: AssemblyProduct("v55Cruiser")] [assembly: AssemblyTitle("scandal.v55cruiser")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.5.12.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: NetcodePatchedAssembly] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [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] [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] [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; public BoxCollider insideTruckNavMeshBounds; public EnemyAI[] enemiesLastHit; private float timeSinceHittingPlayer; private float timeSinceHittingEnemy; private int enemyIndex; public void Start() { enemiesLastHit = (EnemyAI[])(object)new EnemyAI[3]; } public void OnTriggerEnter(Collider other) { //IL_009c: 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_00b1: 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_00bd: 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_00cc: 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_00d7: 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_035c: Unknown result type (might be due to invalid IL or missing references) //IL_036c: 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_0376: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0385: 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_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_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_015f: 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) //IL_016e: 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_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: 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_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_0487: Unknown result type (might be due to invalid IL or missing references) //IL_048c: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04b5: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Expected I4, but got Unknown //IL_04db: Unknown result type (might be due to invalid IL or missing references) //IL_04e0: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_0516: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_0547: Unknown result type (might be due to invalid IL or missing references) //IL_054c: Unknown result type (might be due to invalid IL or missing references) //IL_0554: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0260: 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 && VehicleUtils.IsEnemyInTruck(val4.mainScript, insideTruckNavMeshBounds))) { 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; switch ((int)sizeLimit) { 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_001d: 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_0029: 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_0077: 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; public v55InteriorType RHDInterior; public v55InteriorType currentInterior; public Transform v55HealthMeter; public Transform v56HealthMeter; public GameObject v55EngineBay; public GameObject v56EngineBay; public int interiorType; public bool isInteriorRHD; [Header("Pre-V55 Beta")] public MeshFilter mainBodyAltMeshFilter; public MeshFilter mainBodyAltLODMeshFilter; public MeshFilter mainBodyMeshFilter; public MeshFilter mainBodyLOD1MeshFilter; public MeshFilter mainBodyLOD2MeshFilter; [Header("Physics")] public List wheels; public v55VehicleCollisionTrigger collisionTrigger; public Rigidbody playerPhysicsBody; public WheelCollider backRightWheel; public WheelCollider centerRightWheel; public WheelCollider backLeftWheel; public WheelCollider frontRightWheel; public WheelCollider frontLeftWheel; public WheelCollider centerFrontWheel; public AnimationCurve steeringCurve; public bool useSteeringCurve; 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")] private bool receivedSyncData; public v55PhysicsRegion vehicleZone; public v55PlayerZone vehicleStorageZone; public Collider vehicleBounds; public Collider storageCompartment; public PlayerControllerB lastDriver; public PlayerControllerB playerWhoShifted; 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; private float syncedSongTime; [Header("VFX")] public InteractTrigger pushTruckTrigger; public Collider[] weatherEffectBlockers; public ParticleSystem frontTireSparks; public AnimationCurve engineAudio1Curve; public AnimationCurve engineAudio2Curve; public GameObject destroyedTruckMeshAlt; public MeshRenderer windshieldMesh; public GameObject windshieldObject; public GameObject carKeyInHand; public MeshRenderer radarMapIcon; public MeshRenderer radarMapDestroyedIcon; public InteractTrigger startIgnitionTrigger; public InteractTrigger stopIgnitionTrigger; public Animator ignitionAnimator; public GameObject carKeyContainer; public Animator verticalColumnAnimator; public Animator ejectorButtonAnimator; public GameObject ejectorButtonContainer; public Transform ignitionKeyPosition; private Transform leftHandServerItemTarget; public MeshRenderer frontLeftDoorMeshLOD; public MeshRenderer frontRightDoorMeshLOD; public MeshRenderer frontLeftDoorMesh; public MeshRenderer frontRightDoorMesh; public MeshRenderer steeringWheelMesh; public Material destroyedTruckMaterial; public Material greyLightOffMat; public Material redLightOffMat; public Transform tempPushTransform; public Light leftHeadlight; public Light rightHeadlight; 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.02776055f, 0.1709576f, -0.1114562f); private Vector3 RHD_Pos_Server = new Vector3(-0.02314448f, 0.1360526f, -0.108739f); private Vector3 RHD_Rot_Local = new Vector3(22.679f, -8.263f, -158.794f); private Vector3 RHD_Rot_Server = new Vector3(9.026f, -18.147f, -162.389f); public bool isCabLightOn; public bool liftGateOpen; public bool disableAnimations; public bool inIgnitionAnimation; public float playerSteeringWheelAnimFloat; public float ignitionRotSpeed = 45f; 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"; private readonly string DOOR_ENTER_HOVERTIP = "Use door : [LMB]"; private readonly string DOOR_EXIT_HOVERTIP = "Exit : [LMB]"; private readonly string PLAYER_MOVEMENT = "Move"; [Header("Destruction")] public GameObject[] disableOnDestroy; public GameObject mainBodyContainer; public GameObject hoodDoorContainer; [Header("Audio")] public AudioSource carKeyAudio; public AudioSource ejectorButtonAudio; public AudioSource reverseWhineAudio; public AudioSource verticalColumnAudio; public AudioClip dashboardButton; public AudioClip engineRev1; public AudioClip revEngineStart1; public bool hasAdditionalMusic; public AudioClip radioBabyFace; public AudioClip radio1; public float timeLastSyncedRadio; public float radioPingTimestamp; public override void OnNetworkSpawn() { ((NetworkBehaviour)this).OnNetworkSpawn(); if (!((NetworkBehaviour)this).NetworkManager.IsServer || StartOfRound.Instance.inShipPhase) { return; } int num = 0; bool value = UserConfig.PostBeta.Value; bool noTree = UserConfig.NoTreeDestruction.Value; bool value2 = UserConfig.AdditionalRadioMusic.Value; bool useAltSteering = UserConfig.AlternateSteering.Value && !value; if (!value) { if (UserConfig.RightHandedWheel.Value) { num = new Random(StartOfRound.Instance.randomMapSeed).Next(0, 2); } noTree = false; } SyncClientDataRpc(num, value, noTree, value2, useAltSteering); } [Rpc(/*Could not decode attribute arguments.*/)] public void SyncClientDataRpc(int interiorType, bool postBetaMode, bool noTree, bool addExtraMusic, bool useAltSteering) { //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_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_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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3614373412u, val3, val, (SendTo)6, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, interiorType); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref postBetaMode, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref noTree, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref addExtraMusic, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref useAltSteering, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3614373412u, val3, val, (SendTo)6, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (!receivedSyncData) { receivedSyncData = true; useSteeringCurve = useAltSteering; SetInteriorType(interiorType); SetPostBetaMode(postBetaMode); canDestroyTrees = !noTree; hasAdditionalMusic = addExtraMusic; AddExtraRadioTracks(addExtraMusic); base.hasBeenSpawned = true; } } } public void SetInteriorType(int interiorType) { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: 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_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_00b1: 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_00eb: 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_011a: 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_0139: 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_0173: 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_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: 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_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_022d: 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_0290: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02de: 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_0318: Unknown result type (might be due to invalid IL or missing references) //IL_0322: Unknown result type (might be due to invalid IL or missing references) //IL_0347: 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_0366: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0436: Unknown result type (might be due to invalid IL or missing references) //IL_045a: 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_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: 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_00e5: 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_00fd: 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_0014: 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_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0046: 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_005e: 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) inBetaMode = postBetaMode; if (inBetaMode) { JointSpring suspensionSpring = new JointSpring { spring = 2700f, damper = 500f, targetPosition = 0.5f }; 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 suspensionSpring = new JointSpring { spring = 6200f, damper = 500f, targetPosition = 0.8f }; 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; SetHeadlightMaterial(base.headlightsContainer.activeSelf); SetHeadlightShadows(setOn: true); } } public void SetHeadlightShadows(bool setOn = false) { leftHeadlight.shadows = (LightShadows)(setOn ? 2 : 0); rightHeadlight.shadows = (LightShadows)(setOn ? 2 : 0); } public void AddExtraRadioTracks(bool addExtraMusic) { if (addExtraMusic) { AudioClip[] array = (AudioClip[])(object)new AudioClip[base.radioClips.Length + 2]; array[0] = base.radioClips[0]; array[1] = radio1; array[2] = base.radioClips[1]; array[3] = base.radioClips[2]; array[4] = radioBabyFace; array[5] = base.radioClips[3]; base.radioClips = array; } } public void OnEnable() { VehicleUtils.truckController = this; } public void Awake() { //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_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_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_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) if ((Object)(object)base.itemShip == (Object)null && (Object)(object)References.itemShip != (Object)null) { base.itemShip = References.itemShip; } 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; InitializeTruck(); } private void InitializeTruck() { //IL_0002: 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_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0230: 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_023b: 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_0002: 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_0056: Unknown result type (might be due to invalid IL or missing references) //IL_006e: 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_00aa: 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_00c2: 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) 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_009e: 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_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) ((MonoBehaviour)this).StartCoroutine(SetRainCollision()); 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 SetRainCollision() { yield return (object)new WaitForSeconds(4f); ParticleSystem[] array = (ParticleSystem[])(object)new ParticleSystem[13] { References.rainParticles, References.rainHitParticles, References.stormyRainParticles, References.stormyRainHitParticles, References.wesleyHurricaneRainParticles, References.wesleyHurricaneRainHitParticles, References.wesleyHurricaneSandParticles, References.wesleyForsakenRainParticles, References.wesleyForsakenRainHitParticles, References.kenjiAcidRainParticles, References.kenjiAcidRainHitParticles, References.kenjiAcidStormyRainParticles, References.kenjiAcidStormyRainHitParticles }; for (int i = 0; i < array.Length; i++) { if ((Object)(object)array[i] == (Object)null) { Plugin.LogDebug("Weather particle (or trigger) is null!"); continue; } TriggerModule trigger = array[i].trigger; for (int j = 0; j < weatherEffectBlockers.Length; j++) { int num = ((TriggerModule)(ref trigger)).colliderCount + j; ((TriggerModule)(ref trigger)).SetCollider(num, (Component)(object)weatherEffectBlockers[j]); } } } public void SendClientSyncData() { //IL_000e: 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_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_001d: 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_0032: 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) 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; } SyncClientDataRpc(interiorType, inBetaMode, !canDestroyTrees, hasAdditionalMusic, useSteeringCurve); } public void SetBackDoorOpen(bool open) { liftGateOpen = open; } public void SetFrontCabinLightOn(bool setOn) { isCabLightOn = setOn; base.frontCabinLightContainer.SetActive(setOn); ((Renderer)base.frontCabinLightMesh).material = (setOn ? base.headlightsOnMat : base.headlightsOffMat); } public void StartTryCarIgnition() { if (base.localPlayerInControl && !base.ignitionStarted && !inIgnitionAnimation && (!inIgnitionAnimation || !startIgnitionTrigger.isBeingHeldByPlayer)) { 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); base.currentDriver.playerBodyAnimator.SetInteger(CAR_ANIM, 12); ignitionAnimator.SetInteger(IGNITION_ANIM, 12); 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 { SetKeyIgnitionValues(keyInHand: true, keyInSlot: false); PlayerControllerB currentDriver = base.currentDriver; if (currentDriver != null) { currentDriver.playerBodyAnimator.SetInteger(CAR_ANIM, 2); } ignitionAnimator.SetInteger(IGNITION_ANIM, 2); 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, 101f); } } [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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(2843149083u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref cabLightActive, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 2843149083u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(41763978u, val3, val, (SendTo)1, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val2, 41763978u, val3, 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; } public void CancelTryCarIgnition() { if (base.localPlayerInControl && !base.ignitionStarted && inIgnitionAnimation && (inIgnitionAnimation || !startIgnitionTrigger.isBeingHeldByPlayer)) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; int integer = localPlayerController.playerBodyAnimator.GetInteger(CAR_ANIM); if (integer == 0 && base.keyIsInIgnition) { localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 13); } else if ((integer == 2 || integer == 12) && base.keyIsInIgnition) { localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 3); } else { localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 0); } int integer2 = localPlayerController.playerBodyAnimator.GetInteger(CAR_ANIM); CancelIgnitionAnimation(ignitionOn: false, setIgnitionAnim: false); disableAnimations = true; inIgnitionAnimation = false; int num = integer2; if (integer == 13) { num = 3; } ignitionAnimator.SetInteger(IGNITION_ANIM, num); CancelTryIgnitionRpc(base.keyIsInIgnition, isCabLightOn, integer2, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3795050472u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref cabLightActive, default(ForPrimitives)); BytePacker.WriteValueBitPacked(val2, playerAnimIndex); BytePacker.WriteValueBitPacked(val2, ignitionAnimIndex); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3795050472u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3842753156u, val3, val, (SendTo)1, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3842753156u, val3, 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()); 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(488072872u, val3, val, (SendTo)1, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val2, 488072872u, val3, 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; } [Rpc(/*Could not decode attribute arguments.*/)] public void CancelSetPlayerInVehicleRpc(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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3234968899u, val3, val, (SendTo)6, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3234968899u, val3, 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)GameNetworkManager.Instance.localPlayerController != (Object)(object)val4)) { InteractTriggerPatches.CancelVehicleSeatInteraction(); } } } public void SetDriverInVehicle() { //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) SetDriverInVehicleServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId); } [Rpc(/*Could not decode attribute arguments.*/)] protected void SetDriverInVehicleServerRpc(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_010e: 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) 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(654436887u, rpcParams, val, (SendTo)2, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendRpc(ref val2, 654436887u, 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) { CancelSetPlayerInVehicleRpc(playerId); return; } base.currentDriver = val3; ((NetworkBehaviour)this).NetworkObject.ChangeOwnership(rpcParams.Receive.SenderClientId); SetDriverInVehicleOwnerRpc(); } } [Rpc(/*Could not decode attribute arguments.*/)] public void SetDriverInVehicleOwnerRpc() { //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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1768221808u, val3, val, (SendTo)0, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1768221808u, val3, val, (SendTo)0, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ((VehicleSeatAnimator)currentInterior.driverSeat).SetLocalPlayerIntoSeat(); ActivateControl(); InteractTrigger trigger = (isInteriorRHD ? base.passengerSideDoorTrigger : base.driverSideDoorTrigger); AnimatedObjectTrigger val4 = (isInteriorRHD ? base.passengerSideDoor : base.driverSideDoor); SetTriggerHoverTip(trigger, DOOR_EXIT_HOVERTIP); 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 (val4.boolValue) { val4.TriggerAnimation(GameNetworkManager.Instance.localPlayerController); } SetDriverInVehicleNotOwnerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId, isCabLightOn, base.keyIsInIgnition, base.ignitionStarted, integer); } } [Rpc(/*Could not decode attribute arguments.*/)] public void SetDriverInVehicleNotOwnerRpc(int playerId, bool setCabinLight, bool setKeyInSlot, bool setStarted, int playerAnimIndex) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010f: 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_00d4: 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_00f0: 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) 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3977993951u, val3, val, (SendTo)1, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setCabinLight, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setStarted, default(ForPrimitives)); BytePacker.WriteValueBitPacked(val2, playerAnimIndex); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3977993951u, val3, val, (SendTo)1, (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) { Plugin.LogError("SetDriverInVehicleNotOwnerRpc failed to find player object reference from player client id!"); return; } base.currentDriver = val4; disableAnimations = !setStarted; inIgnitionAnimation = false; ((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(setStarted, setCabinLight); base.keyIsInIgnition = setKeyInSlot; val4.playerBodyAnimator.SetInteger(CAR_ANIM, playerAnimIndex); InteractTrigger val5 = (isInteriorRHD ? base.passengerSideDoorTrigger : base.driverSideDoorTrigger); val5.interactable = false; } } public void OnDriverExitVehicle() { //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_00fd: 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_011a: 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 && !((Object)(object)base.currentDriver != (Object)(object)GameNetworkManager.Instance.localPlayerController)) { base.localPlayerInControl = false; InteractTrigger trigger = (isInteriorRHD ? base.passengerSideDoorTrigger : base.driverSideDoorTrigger); SetTriggerHoverTip(trigger, DOOR_ENTER_HOVERTIP); disableAnimations = !base.ignitionStarted; inIgnitionAnimation = false; startIgnitionTrigger.isBeingHeldByPlayer = false; stopIgnitionTrigger.isBeingHeldByPlayer = false; GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 0); DisableControl(); CancelIgnitionAnimation(base.ignitionStarted, setIgnitionAnim: true); SetIgnition(base.ignitionStarted, isCabLightOn); base.chanceToStartIgnition = 20f; base.syncedPosition = ((Component)this).transform.position; base.syncedRotation = ((Component)this).transform.rotation; OnDriverExitVehicleServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId, base.syncedPosition, base.syncedRotation, base.drivePedalPressed, base.brakePedalPressed, base.keyIsInIgnition, base.ignitionStarted, isCabLightOn); } } [Rpc(/*Could not decode attribute arguments.*/)] public void OnDriverExitVehicleServerRpc(int playerId, Vector3 carLocation, Quaternion carRotation, bool setGasPedal, bool setBrakePedal, bool setKeyInSlot, bool setStarted, bool setCabinLight) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0144: 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_0051: 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_0064: 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_009b: 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_00b6: 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_00d1: 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_00ec: 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) //IL_0107: 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_0121: 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_0153: 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_015b: 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 = default(RpcAttributeParams); RpcParams val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(360937913u, val3, val, (SendTo)2, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref carLocation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref carRotation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setGasPedal, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setBrakePedal, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setStarted, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setCabinLight, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 360937913u, val3, val, (SendTo)2, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; OnDriverExitVehicleRpc(playerId, carLocation, carRotation, setGasPedal, setBrakePedal, setKeyInSlot, setStarted, setCabinLight); ((NetworkBehaviour)this).NetworkObject.ChangeOwnership(0uL); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void OnDriverExitVehicleRpc(int playerId, Vector3 carLocation, Quaternion carRotation, bool setGasPedal, bool setBrakePedal, bool setKeyInSlot, bool setStarted, bool setCabinLight) { //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_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: 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_01ad: 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(2999731395u, val3, val, (SendTo)1, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref carLocation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref carRotation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setGasPedal, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setBrakePedal, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setStarted, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setCabinLight, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 2999731395u, val3, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1) { return; } ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayerControllerB val4 = StartOfRound.Instance.allPlayerScripts[playerId]; if ((Object)(object)val4 == (Object)null) { Plugin.LogError("OnDriverExitVehicleRpc failed to find player object reference from player client id!"); return; } if ((Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)val4) { Plugin.LogDebug("OnDriverExitVehicleRpc player argument was the previous occupant!"); 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 = setStarted; 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, setCabinLight); InteractTrigger val5 = (isInteriorRHD ? base.passengerSideDoorTrigger : base.driverSideDoorTrigger); val5.interactable = true; } public void SetPassengerInVehicle() { //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) SetPassengerInVehicleServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId); } [Rpc(/*Could not decode attribute arguments.*/)] protected void SetPassengerInVehicleServerRpc(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_010a: 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(584257588u, rpcParams, val, (SendTo)2, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendRpc(ref val2, 584257588u, 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) { CancelSetPlayerInVehicleRpc(playerId); return; } base.currentPassenger = val3; SetPassengerInVehicleRpc(NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)val3)); } } [Rpc(/*Could not decode attribute arguments.*/)] protected void SetPassengerInVehicleRpc(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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1770646454u, val3, val, (SendTo)6, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref playerNetObjRef, default(ForNetworkSerializable)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1770646454u, val3, 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.LogError("SetPassengerInVehicleRpc failed to find player object reference from network behaviour!"); return; } val4.playerBodyAnimator.SetInteger(CAR_ANIM, 0); InteractTrigger val5 = (isInteriorRHD ? base.driverSideDoorTrigger : base.passengerSideDoorTrigger); if ((Object)(object)val4 == (Object)(object)GameNetworkManager.Instance.localPlayerController) { ((VehicleSeatAnimator)currentInterior.passengerSeat).SetLocalPlayerIntoSeat(); base.localPlayerInPassengerSeat = true; AnimatedObjectTrigger val6 = (isInteriorRHD ? base.driverSideDoor : base.passengerSideDoor); SetTriggerHoverTip(val5, DOOR_EXIT_HOVERTIP); if (val6.boolValue) { val6.TriggerAnimation(GameNetworkManager.Instance.localPlayerController); } } else { ((VehicleSeatAnimator)currentInterior.passengerSeat).SetPlayerAnimations(val4, false); val5.interactable = false; } base.currentPassenger = val4; val4.playerBodyAnimator.SetFloat(ANIMATION_SPEED, 0.5f); } public void OnPassengerExitVehicle() { //IL_0094: 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) if (((NetworkBehaviour)this).IsSpawned && !((Object)(object)((NetworkBehaviour)this).NetworkManager == (Object)null) && ((NetworkBehaviour)this).NetworkManager.IsListening && !((Object)(object)base.currentPassenger != (Object)(object)GameNetworkManager.Instance.localPlayerController)) { base.localPlayerInPassengerSeat = false; InteractTrigger trigger = (isInteriorRHD ? base.driverSideDoorTrigger : base.passengerSideDoorTrigger); SetTriggerHoverTip(trigger, DOOR_ENTER_HOVERTIP); GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger(CAR_ANIM, 0); base.currentPassenger = null; OnPassengerExitVehicleRpc(NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)GameNetworkManager.Instance.localPlayerController), ((Component)GameNetworkManager.Instance.localPlayerController).transform.position); } } [Rpc(/*Could not decode attribute arguments.*/)] public void OnPassengerExitVehicleRpc(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_011c: 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(330444899u, val3, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref playerNetObjRef, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref exitPoint); ((NetworkBehaviour)this).__endSendRpc(ref val2, 330444899u, val3, 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.LogError("OnPassengerExitVehicleRpc 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; InteractTrigger val5 = (isInteriorRHD ? base.driverSideDoorTrigger : base.passengerSideDoorTrigger); val5.interactable = true; } } [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_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0126: 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(922548461u, val3, val, (SendTo)2, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendRpc(ref val2, 922548461u, val3, 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_00b2: 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_017e: 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_0185: 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) 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(2891603058u, val3, val, (SendTo)3, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref carLocation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref carRotation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setIgnitionState, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setKeyInSlot, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref gasFloored, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref brakeFloored, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref preIgnition, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 2891603058u, val3, 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_00ef: 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3769073087u, val3, val, (SendTo)6, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3769073087u, val3, 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; InteractTrigger val5 = (isInteriorRHD ? base.driverSideDoorTrigger : base.passengerSideDoorTrigger); val5.interactable = true; } } } public void ExitFrontLeftSideSeat() { //IL_00a2: 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) 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 = CanExitVehicle(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_00a2: 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) 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 = CanExitVehicle(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 CanExitVehicle(bool passengerSide) { //IL_0068: 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_001c: 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) 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_0000: Unknown result type (might be due to invalid IL or missing references) //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_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) //IL_0010: 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_0020: 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_0046: 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_0048: 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_0057: 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_0062: 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; } private void GetVehicleInput() { //IL_007a: 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_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) 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(PLAYER_MOVEMENT, false).ReadValue(); base.steeringAnimValue = base.moveInputVector.x; base.steeringInput = Mathf.Clamp(base.steeringInput + base.steeringAnimValue * base.steeringWheelTurnSpeed * Time.deltaTime, -3f, 3f); base.drivePedalPressed = base.moveInputVector.y > 0.1f; base.brakePedalPressed = base.moveInputVector.y < -0.1f; } } } private void SyncVehicleInput() { if (syncedDrivePedalPressed != base.drivePedalPressed || syncedBrakePedalPressed != base.brakePedalPressed) { syncedDrivePedalPressed = base.drivePedalPressed; syncedBrakePedalPressed = base.brakePedalPressed; syncedMoveInputVector.y = base.moveInputVector.y; SyncVehicleInputRpc(base.moveInputVector.y, 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; base.currentDriver = null; } public void ShiftGearForwardInput(CallbackContext context) { if (((CallbackContext)(ref context)).performed) { ShiftGearForward(); } } public void ShiftGearForward() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Invalid comparison between Unknown and I4 //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0021: 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_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Invalid comparison between Unknown and I4 //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0021: 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_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 //IL_0027: 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_00f1: 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(4010263211u, val3, val, (SendTo)5, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); BytePacker.WriteValueBitPacked(val2, setGear); ((NetworkBehaviour)this).__endSendRpc(ref val2, 4010263211u, val3, 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_0058: 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_007b: 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_0083: 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_0097: 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_00bc: 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_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0155: 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_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: 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_017b: 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_019e: 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) //IL_01ce: 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_01d7: 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_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_022d: 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_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_0312: 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_031a: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_0321: 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; RoundManager.Instance.tempTransform.eulerAngles = new Vector3(0f, ((Component)this).transform.eulerAngles.y, 0f); Vector3 eulerAngles = RoundManager.Instance.tempTransform.eulerAngles; base.averageVelocityAtMagnetStart = base.averageVelocity; float num = Vector3.Angle(RoundManager.Instance.tempTransform.forward, -StartOfRound.Instance.magnetPoint.forward); Vector3 eulerAngles2 = ((Component)this).transform.eulerAngles; if (num < 45f) { 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(-25f, 25f); base.magnetTargetRotation = Quaternion.Euler(eulerAngles2); base.magnetStartRotation = ((Component)this).transform.rotation; Quaternion rotation = ((Component)this).transform.rotation; ((Component)this).transform.rotation = base.magnetTargetRotation; base.magnetTargetPosition = ((Collider)base.boundsCollider).ClosestPoint(StartOfRound.Instance.magnetPoint.position) - ((Component)this).transform.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.y = Mathf.Max(1f, base.magnetStartPosition.y); base.magnetTargetPosition = StartOfRound.Instance.elevatorTransform.InverseTransformPoint(base.magnetTargetPosition); ((Component)this).transform.rotation = rotation; base.magnetStartPosition = ((Component)this).transform.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_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_015b: 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_0163: 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) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0171: 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) 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(21932990u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref targetPosition); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref targetRotation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref startPosition); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref startRotation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref tempRotation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref avgVel); ((NetworkBehaviour)this).__endSendRpc(ref val2, 21932990u, val3, 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; StartOfRound.Instance.isObjectAttachedToMagnet = true; StartOfRound.Instance.attachedVehicle = (VehicleController)(object)this; RoundManager.Instance.tempTransform.eulerAngles = tempRotation; base.averageVelocityAtMagnetStart = avgVel; 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(918372418u, val3, val, (SendTo)5, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, setHP); ((NetworkBehaviour)this).__endSendRpc(ref val2, 918372418u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3360889087u, val3, val, (SendTo)5, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, setTurboBoosts); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3360889087u, val3, 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_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_0088: 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(PLAYER_MOVEMENT, false).ReadValue(); UseTurboBoostLocalClient(dir); UseTurboBoostRpc(); } } } public void UseTurboBoostLocalClient(Vector2 dir = default(Vector2)) { //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0069: 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_007a: 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_008b: 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_0097: 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_00ac: 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_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) 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 val = ((Component)this).transform.TransformDirection(new Vector3(dir.x, 0f, dir.y)); base.mainRigidbody.AddForce(val * 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_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1336299420u, val3, val, (SendTo)1, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1336299420u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(2695918748u, val3, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref honk, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 2695918748u, val3, 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_0152: 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) RemoveRainCollision(); DisableControl(); ((PlayerPhysicsRegion)vehicleZone).disablePhysicsRegion = true; if (StartOfRound.Instance.CurrentPlayerPhysicsRegions.Contains((PlayerPhysicsRegion)(object)vehicleZone)) { StartOfRound.Instance.CurrentPlayerPhysicsRegions.Remove((PlayerPhysicsRegion)(object)vehicleZone); } for (int i = 0; i < StartOfRound.Instance.allPlayerScripts.Length; i++) { PlayerControllerB val = StartOfRound.Instance.allPlayerScripts[i]; if ((Object)(object)((Component)val).transform.parent == (Object)(object)((PlayerPhysicsRegion)vehicleZone).physicsTransform) { Transform parent = (val.isInElevator ? val.playersManager.elevatorTransform : val.playersManager.playersContainer); ((Component)val).transform.SetParent(parent); Plugin.LogWarning($"Player {i} setting parent since vehicle was disabled"); } } if (base.localPlayerInControl || base.localPlayerInPassengerSeat) { GameNetworkManager.Instance.localPlayerController.CancelSpecialTriggerAnimations(); } GrabbableObject[] componentsInChildren = ((Component)base.physicsRegion.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)); } } } public void Update() { //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_0447: 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) 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) { RemoveRainCollision(); ((PlayerPhysicsRegion)vehicleZone).disablePhysicsRegion = true; if (StartOfRound.Instance.CurrentPlayerPhysicsRegions.Contains((PlayerPhysicsRegion)(object)vehicleZone)) { StartOfRound.Instance.CurrentPlayerPhysicsRegions.Remove((PlayerPhysicsRegion)(object)vehicleZone); } for (int i = 0; i < StartOfRound.Instance.allPlayerScripts.Length; i++) { PlayerControllerB val = StartOfRound.Instance.allPlayerScripts[i]; if ((Object)(object)((Component)val).transform.parent == (Object)(object)((PlayerPhysicsRegion)vehicleZone).physicsTransform) { Transform parent = (val.isInElevator ? val.playersManager.elevatorTransform : val.playersManager.playersContainer); ((Component)val).transform.SetParent(parent); Plugin.LogWarning($"Player {i} setting parent since vehicle was removed"); } } if (base.localPlayerInControl || base.localPlayerInPassengerSeat) { GameNetworkManager.Instance.localPlayerController.CancelSpecialTriggerAnimations(); } GrabbableObject[] componentsInChildren = ((Component)base.physicsRegion.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)); } } base.destroyNextFrame = true; return; } if (base.magnetedToShip) { if (!StartOfRound.Instance.magnetOn) { if ((Object)(object)StartOfRound.Instance.attachedVehicle == (Object)(object)this) { 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; } } SyncCarPhysicsToOtherClients(); 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.7f)) ? 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(242240265u, val3, val, (SendTo)3, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref songTime, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref syncedTime, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref staticTime, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 242240265u, val3, 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; if (Mathf.Abs(num - base.radioAudio.time) > 1f) { base.radioAudio.time = num; } } } public void SetRadioStaticTime(float staticTime) { float num = (staticTime + (Time.realtimeSinceStartup - timeLastSyncedRadio)) % base.radioInterference.clip.length; if (Mathf.Abs(num - base.radioInterference.time) > 1f) { base.radioInterference.time = num; } } public void ChangeRadioStation() { if (base.radioClips.Length == 0) { Plugin.LogWarning("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; } SetRadioOnLocalClient(on: 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(2877346515u, val3, val, (SendTo)5, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, radioStation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setTime, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref signalQuality, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref signalDecrease, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 2877346515u, val3, 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.LogWarning("No music found! are you using CruiserTunes to remove the original tracks?"); return; } base.currentRadioClip = radioStation; base.radioSignalQuality = signalQuality; base.radioSignalDecreaseThreshold = signalDecrease; SetRadioOnLocalClient(on: true); timeLastSyncedRadio = Time.realtimeSinceStartup; base.radioAudio.time = setTime; } } public void SwitchRadio() { if (base.radioClips.Length == 0) { Plugin.LogWarning("No music found! are you using CruiserTunes to remove the original tracks?"); return; } SetRadioOnLocalClient(!base.radioOn, setClip: 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(4016335049u, val3, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setRadioOn, default(ForPrimitives)); BytePacker.WriteValueBitPacked(val2, radioStation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setTime, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref signalQuality, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref signalDecrease, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 4016335049u, val3, 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.LogWarning("No music found! are you using CruiserTunes to remove the original tracks?"); return; } base.currentRadioClip = radioStation; base.radioSignalQuality = signalQuality; base.radioSignalDecreaseThreshold = signalDecrease; SetRadioOnLocalClient(setRadioOn, setClip: false); timeLastSyncedRadio = Time.realtimeSinceStartup; base.radioAudio.time = setTime; } } public void SetRadioValues() { //IL_0109: Unknown result type (might be due to invalid IL or missing references) if (((NetworkBehaviour)this).NetworkManager.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 (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); } if (((NetworkBehaviour)this).IsOwner) { 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3722939512u, val3, val, (SendTo)1, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, signalQuality); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref signalDecrease, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3722939512u, val3, 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 on, bool setClip = true) { Plugin.LogDebug($"Radio called with setRadioOn? {on}, setClip? {setClip}"); base.radioOn = on; if (on) { if (setClip || (Object)(object)base.radioAudio.clip == (Object)null) { if ((Object)(object)base.radioAudio.clip == (Object)null) { Plugin.LogDebug("Setting station, was null!"); } base.radioAudio.clip = base.radioClips[base.currentRadioClip]; Plugin.LogDebug($"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.LogDebug("Stop radio playback!"); } } private void MatchWheelMeshToCollider(MeshRenderer wheelMesh, WheelCollider wheelCollider, float steeringInput = 0f) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: 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_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0087: 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_0048: 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_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: 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) 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); } private float GetAnimationSpeed() { if (!inBetaMode) { return -2f; } return 2f; } private void SetCarEffects(float setSteering) { setSteering = ((((NetworkBehaviour)this).IsOwner || inBetaMode) ? 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 * GetAnimationSpeed(); } SetGearstick(); SetLighting(); SetAudioEffects(); SetTyreEffects(); SetIgnitionKey(); if (((NetworkBehaviour)this).IsOwner) { SyncEffectsToOtherClients(); 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 { playerSteeringWheelAnimFloat = Mathf.MoveTowards(playerSteeringWheelAnimFloat, syncedPlayerSteeringAnim, base.steeringWheelTurnSpeed * Time.deltaTime / 6f); if (!inBetaMode) { base.steeringWheelAnimFloat = Mathf.MoveTowards(base.steeringWheelAnimFloat, syncedWheelRotation, base.steeringWheelTurnSpeed * Time.deltaTime / 6f); base.steeringInput = Mathf.MoveTowards(base.steeringInput, syncedSteeringInput, base.steeringWheelTurnSpeed * Time.deltaTime); } } } private void SetGearstick() { //IL_0001: 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_0007: 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_001b: Expected I4, but got Unknown CarGearShift gear = base.gear; switch (gear - 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 SetGearshift() { } private void SetLighting() { 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 SetAudioEffects() { //IL_0380: 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) //IL_01f2: 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) //IL_0224: 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(); float num2 = (inBetaMode ? 0.005f : 2f); if (base.engineAudio1.volume > 0.3f && base.engineAudio1.isPlaying && !inBetaMode && Time.realtimeSinceStartup - base.timeAtLastEngineAudioPing > num2) { base.timeAtLastEngineAudioPing = Time.realtimeSinceStartup; int num3 = (inBetaMode ? 106217 : 2692); if (base.EngineRPM > 130f) { RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 32f, 0.75f, 0, false, num3); } if (base.EngineRPM > 60f) { RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 25f, 0.6f, 0, false, num3); } else if (!base.ignitionStarted) { RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 15f, 0.6f, 0, false, num3); } else { RoundManager.Instance.PlayAudibleNoise(((Component)base.engineAudio1).transform.position, 11f, 0.5f, 0, false, num3); } } 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 SetTyreEffects() { //IL_0011: 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_002b: 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 SetIgnitionKey(bool localUseBodyHands = false) { //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_0446: 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_0476: Unknown result type (might be due to invalid IL or missing references) //IL_0491: 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_0138: 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_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_015b: 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_06f5: Unknown result type (might be due to invalid IL or missing references) //IL_0748: Unknown result type (might be due to invalid IL or missing references) //IL_075d: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Unknown result type (might be due to invalid IL or missing references) //IL_078d: Unknown result type (might be due to invalid IL or missing references) //IL_07a8: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_05a8: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_0559: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_05ad: Unknown result type (might be due to invalid IL or missing references) //IL_0566: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02fd: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_05bc: Unknown result type (might be due to invalid IL or missing references) //IL_05b4: Unknown result type (might be due to invalid IL or missing references) //IL_0575: Unknown result type (might be due to invalid IL or missing references) //IL_056d: Unknown result type (might be due to invalid IL or missing references) //IL_05c1: Unknown result type (might be due to invalid IL or missing references) //IL_057a: Unknown result type (might be due to invalid IL or missing references) //IL_05f8: Unknown result type (might be due to invalid IL or missing references) //IL_060d: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_0674: Unknown result type (might be due to invalid IL or missing references) //IL_0686: Unknown result type (might be due to invalid IL or missing references) //IL_0688: 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; } bool flag = base.localPlayerInControl && !localUseBodyHands; Transform val = ((!flag) ? 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 (flag) { 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; } bool flag2 = base.localPlayerInControl && !localUseBodyHands; Transform val2; Vector3 localPosition; Vector3 val3; if (!isInteriorRHD) { val2 = (flag2 ? base.currentDriver.localItemHolder.parent : base.currentDriver.serverItemHolder.parent); localPosition = (flag2 ? LHD_Pos_Local : LHD_Pos_Server); val3 = (flag2 ? LHD_Rot_Local : LHD_Rot_Server); } else { val2 = (Transform)(flag2 ? ((object)((Component)base.currentDriver.leftHandItemTarget).transform) : ((object)leftHandServerItemTarget)); localPosition = (flag2 ? RHD_Pos_Local : RHD_Pos_Server); val3 = (flag2 ? 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(); 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_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_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) previousVehiclePosition = base.mainRigidbody.position; previousVehicleRotation = base.mainRigidbody.rotation; } private void SetVehicleToDropship() { //IL_006f: 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_007e: 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_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_00a5: 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_00d5: 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_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0172: 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_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_0199: 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.LogDebug($"Set 'mainRigidbody' kinematic to: {setKinematic}"); } } private void SetVehicleToFixedPosition() { //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_002a: 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_003b: 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_0055: 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_007c: 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_0098: 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_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: 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_00c9: 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_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: 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) //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_0126: 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) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0153: 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) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: 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); Mathf.Clamp(base.syncSpeedMultiplier * Vector3.Distance(((Component)this).transform.position, base.syncedPosition), 1.3f, 300f); Vector3 val = Vector3.Lerp(((Component)this).transform.position, base.syncedPosition, Time.fixedDeltaTime * base.syncSpeedMultiplier); base.mainRigidbody.MovePosition(val); base.mainRigidbody.MoveRotation(Quaternion.Lerp(((Component)this).transform.rotation, base.syncedRotation, base.syncRotationSpeed)); base.truckVelocityLastFrame = base.mainRigidbody.velocity; } } private void TryAttachToShipMagnet() { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0070: 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) 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_000c: 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_002d: 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_004e: 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_006e: 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) 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_0054: 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_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_0021: 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_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: 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_007e: 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) 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; float num; if (inBetaMode) { num = 15f * base.steeringInput; } else if (useSteeringCurve) { float num2 = Mathf.Abs(base.steeringWheelAnimFloat); float num3 = Mathf.Sign(base.steeringWheelAnimFloat); num = steeringCurve.Evaluate(num2) * 50f * num3; } else { num = tyreSteeringAngle; } steeringAngle = num; 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 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_0080: 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_006d: 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_0021: 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_0027: 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_003b: Expected I4, but got Unknown if (!base.ignitionStarted || (!base.localPlayerInControl && inBetaMode)) { return; } float num = 0f; CarGearShift gear = base.gear; switch (gear - 1) { case 2: if (base.drivePedalPressed) { num += 1.2f; base.lastStressType += "; Accelerating while in park"; } else if (!base.magnetedToShip && !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; bool flag = base.ignitionStarted && (!base.magnetedToShip || base.drivePedalPressed); float num = (inBetaMode ? frontWheelRPM : wheelRPM); if (flag) { base.EngineRPM = Mathf.Abs(num); } else { base.EngineRPM = Mathf.Lerp(base.EngineRPM, 0f, 3f * Time.fixedDeltaTime); } } private void SetTorqueForces(bool useSynced) { //IL_004e: 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_0054: 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_0068: 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; switch (gear - 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 SyncEffectsToOtherClients() { if (syncCarEffectsInterval > 0.02f) { if (syncedWheelRotation != base.steeringWheelAnimFloat) { syncCarEffectsInterval = 0f; syncedWheelRotation = base.steeringWheelAnimFloat; syncedSteeringInput = base.steeringInput; syncedPlayerSteeringAnim = playerSteeringWheelAnimFloat; SyncEffectsRpc(base.steeringWheelAnimFloat, base.steeringInput, playerSteeringWheelAnimFloat); } } else { syncCarEffectsInterval += Time.deltaTime; } } [Rpc(/*Could not decode attribute arguments.*/)] public void SyncEffectsRpc(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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1901426905u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref wheelRotation, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref steerInput, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref playerSteering, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1901426905u, val3, 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 SyncVehicleInputRpc(float verticalInput, 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_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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(564651721u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref verticalInput, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref gasPressed, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref brakePressed, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 564651721u, val3, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; syncedDrivePedalPressed = gasPressed; syncedBrakePedalPressed = brakePressed; syncedMoveInputVector.y = verticalInput; } } } private void SyncCarPhysicsToOtherClients() { //IL_0031: 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_00be: 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_00c9: 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_005f: 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_0070: 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_0097: 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_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_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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) 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; syncedMoveInputVector.x = base.moveInputVector.x; SyncCarPositionRpc(((Component)this).transform.position, ((Component)this).transform.eulerAngles, base.moveInputVector.x); } 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, base.moveInputVector.x); } } else { base.syncCarPositionInterval += Time.deltaTime; } } [Rpc(/*Could not decode attribute arguments.*/)] public void SyncCarPositionRpc(Vector3 carPosition, Vector3 carRotation, float steeringInput) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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_009c: 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_00b6: 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_00e8: 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_00ef: 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_00f6: 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) 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(168269396u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref carPosition); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref carRotation); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref steeringInput, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 168269396u, val3, 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); syncedMoveInputVector.x = steeringInput; } } } [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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(509756710u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref wheelStress, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref wheelSkidding, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 509756710u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(4214428700u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref frontWheelSpeed, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref backWheelSpeed, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref wheelSpeed, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 4214428700u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(2949658452u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref motorTorque, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref brakeTorque, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 2949658452u, val3, 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_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Expected I4, but got Unknown //IL_0099: 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_0117: 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_00d0: 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_00db: 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_00ea: 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_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: 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_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_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_0039: 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_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: 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_0184: 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_0194: 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_0080: 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_0277: Unknown result type (might be due to invalid IL or missing references) //IL_0281: 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_0297: 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_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_0213: 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_0222: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: 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_01c9: 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_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0253: 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); } CarBump(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 { CarBump(base.averageVelocity); base.mainRigidbody.velocity = Vector3.Normalize(-impulse * 100000000f) * 9f; PlayerControllerB val = 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_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_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_00ce: 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_00d6: 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_00b8: 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_009b: 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_0163: 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) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: 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_0252: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_039e: 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_034f: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_036b: 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_037a: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_02ff: 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_030e: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_032a: 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_0345: 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 { CarBump(Vector3.ClampMagnitude(-collision.relativeVelocity, 40f)); } } public bool IsPlayerSeatedInCar() { if (!base.localPlayerInControl) { return base.localPlayerInPassengerSeat; } return true; } public void CarBump(Vector3 vel) { //IL_0001: 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) CarBumpRpc(vel); CarBumpLocalClient(vel); } public void CarBumpLocalClient(Vector3 vel) { //IL_003f: 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_004a: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0054: 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_0023: 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) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (IsPlayerSeatedInCar() && ((Vector3)(ref vel)).magnitude > 50f) { localPlayerController.externalForceAutoFade += vel; } else if (VehicleUtils.IsPlayerInTruckBounds(localPlayerController, this)) { vel = Vector3.ClampMagnitude(vel, 30f); localPlayerController.externalForceAutoFade += 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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: 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_0051: 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_0064: 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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: 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 = default(RpcAttributeParams); RpcParams val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(727985888u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref vel); ((NetworkBehaviour)this).__endSendRpc(ref val2, 727985888u, val3, val, (SendTo)1, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; CarBumpLocalClient(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_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_0051: 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_0064: 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_0087: 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_00d3: 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 = default(RpcAttributeParams); RpcParams val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(4051615060u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref vel); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref onlyLocalDriver, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 4051615060u, val3, 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(); } } } public void DamagePlayerInVehicle(Vector3 vel, bool onlyLocalDriver) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002a: 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_0080: 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_008d: 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_0056: 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) //IL_006b: Unknown result type (might be due to invalid IL or missing references) PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (base.localPlayerInPassengerSeat && onlyLocalDriver) { return; } if (IsPlayerSeatedInCar()) { localPlayerController.KillPlayer(vel, true, (CauseOfDeath)16, 0, ((Component)this).transform.up * 0.77f, false); } else if (VehicleUtils.IsPlayerInTruckBounds(localPlayerController, this)) { if (localPlayerController.health <= 40) { localPlayerController.KillPlayer(vel, true, (CauseOfDeath)16, 0, ((Component)this).transform.up * 0.77f, false); return; } localPlayerController.DamagePlayer(30, true, true, (CauseOfDeath)16, 0, false, vel); localPlayerController.externalForceAutoFade += vel; } } private void BreakWindshield() { //IL_0049: Unknown result type (might be due to invalid IL or missing references) if (!base.windshieldBroken) { base.windshieldBroken = true; ((Collider)base.windshieldPhysicsCollider).enabled = false; windshieldObject.SetActive(false); base.glassParticle.Play(); ((Component)base.miscAudio).transform.localPosition = windshieldObject.transform.localPosition; base.miscAudio.PlayOneShot(base.windshieldBreak); } } public void PlayCollisionAudio(Vector3 setPosition, int audioType, float setVolume) { //IL_00f9: 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) //IL_0075: 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) 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(113234185u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref audioPosition); BytePacker.WriteValueBitPacked(val2, audio); BytePacker.WriteValueBitPacked(val2, audioType); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref vol, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 113234185u, val3, 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_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0168: 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_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) if (((NetworkBehaviour)this).IsOwner && !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)) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Invalid comparison between Unknown and I4 if (((NetworkBehaviour)this).IsOwner && (!base.magnetedToShip || (base.drivePedalPressed && (int)base.gear == 3)) && !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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3190658997u, val3, val, (SendTo)1, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, carHealth); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3190658997u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1771295468u, val3, val, (SendTo)1, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1771295468u, val3, 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_004a: 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_010b: 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_0120: Unknown result type (might be due to invalid IL or missing references) //IL_012a: 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) if (!base.carDestroyed) { base.carDestroyed = true; UnMagnetCar(); StopAudiosPlayback(); RemoveRainCollision(); 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)frontLeftDoorMeshLOD).material = destroyedTruckMaterial; ((Renderer)frontRightDoorMeshLOD).material = destroyedTruckMaterial; ((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_0032: 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_008b: 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_00d3: 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_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_0011: 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_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: 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) 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_001a: 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_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: 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_001d: 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_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_003b: 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_004d: Unknown result type (might be due to invalid IL or missing references) if (base.localPlayerInControl || base.localPlayerInPassengerSeat) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; 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; } public void RemoveRainCollision() { //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_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown ParticleSystem[] array = (ParticleSystem[])(object)new ParticleSystem[13] { References.rainParticles, References.rainHitParticles, References.stormyRainParticles, References.stormyRainHitParticles, References.wesleyHurricaneRainParticles, References.wesleyHurricaneRainHitParticles, References.wesleyHurricaneSandParticles, References.wesleyForsakenRainParticles, References.wesleyForsakenRainHitParticles, References.kenjiAcidRainParticles, References.kenjiAcidRainHitParticles, References.kenjiAcidStormyRainParticles, References.kenjiAcidStormyRainHitParticles }; ParticleSystem[] array2 = array; foreach (ParticleSystem val in array2) { if ((Object)(object)val == (Object)null) { Plugin.LogDebug("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_0016: 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_006e: 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) 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(3938964334u, val3, val, (SendTo)1, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, carHealth); ((NetworkBehaviour)this).__endSendRpc(ref val2, 3938964334u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1423326709u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref underStress, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1423326709u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1459409878u, val3, val, (SendTo)1, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref onFire, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1459409878u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(2095956418u, val3, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref open, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 2095956418u, val3, 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_0035: 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_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_008c: 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_0098: 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_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0142: 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: 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_00f6: 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_010c: 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_0127: 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) //IL_0138: 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; tempPushTransform.position = point; Vector3 localPosition = tempPushTransform.localPosition; float turbulence = Mathf.Min(base.turbulenceAmount + 0.5f, 2f); if (((NetworkBehaviour)this).IsOwner) { PlayPushAudio(localPosition, turbulence); base.mainRigidbody.AddForceAtPosition(Vector3.Normalize(forward * 1000f) * Random.Range(40f, 50f) * base.pushForceMultiplier, tempPushTransform.position - ((Component)base.mainRigidbody).transform.up * base.pushVerticalOffsetAmount, (ForceMode)1); PushTruckFromOwnerRpc(localPosition, turbulence); } else { PushTruckRpc(localPosition, forward, turbulence); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void PushTruckRpc(Vector3 pushPosition, Vector3 dir, float turbulence) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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_009c: 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_00b6: 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_00e8: 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_0103: 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_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_012e: 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_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_015f: 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) 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(129667878u, val3, val, (SendTo)6, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref pushPosition); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref dir); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref turbulence, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 129667878u, val3, val, (SendTo)6, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayPushAudio(pushPosition, turbulence); if (((NetworkBehaviour)this).IsOwner) { tempPushTransform.localPosition = pushPosition; base.mainRigidbody.AddForceAtPosition(Vector3.Normalize(dir * 1000f) * Random.Range(40f, 50f) * base.pushForceMultiplier, tempPushTransform.position - ((Component)base.mainRigidbody).transform.up * base.pushVerticalOffsetAmount, (ForceMode)1); } } } [Rpc(/*Could not decode attribute arguments.*/)] public void PushTruckFromOwnerRpc(Vector3 pushPosition, float turbulence) { //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_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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(2781601828u, val3, val, (SendTo)6, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref pushPosition); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref turbulence, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 2781601828u, val3, val, (SendTo)6, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayPushAudio(pushPosition, turbulence); } } } public void PlayPushAudio(Vector3 pos, float turbulence) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) ((Component)base.pushAudio).transform.localPosition = pos; base.pushAudio.Play(); base.turbulenceAmount = turbulence; } 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1085326842u, val3, val, (SendTo)5, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1085326842u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1499313525u, val3, val, (SendTo)5, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1499313525u, val3, 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(379102476u, val3, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setLightsOn, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 379102476u, val3, 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"); } } } public 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_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_018c: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: 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_016e: 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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1615077013u, val3, val, (SendTo)6, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1615077013u, val3, 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 //IL_054d: Unknown result type (might be due to invalid IL or missing references) //IL_055c: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(3614373412u, new RpcReceiveHandler(__rpc_handler_3614373412), "SyncClientDataRpc"); ((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(3234968899u, new RpcReceiveHandler(__rpc_handler_3234968899), "CancelSetPlayerInVehicleRpc"); ((NetworkBehaviour)this).__registerRpc(654436887u, new RpcReceiveHandler(__rpc_handler_654436887), "SetDriverInVehicleServerRpc"); ((NetworkBehaviour)this).__registerRpc(1768221808u, new RpcReceiveHandler(__rpc_handler_1768221808), "SetDriverInVehicleOwnerRpc"); ((NetworkBehaviour)this).__registerRpc(3977993951u, new RpcReceiveHandler(__rpc_handler_3977993951), "SetDriverInVehicleNotOwnerRpc"); ((NetworkBehaviour)this).__registerRpc(360937913u, new RpcReceiveHandler(__rpc_handler_360937913), "OnDriverExitVehicleServerRpc"); ((NetworkBehaviour)this).__registerRpc(2999731395u, new RpcReceiveHandler(__rpc_handler_2999731395), "OnDriverExitVehicleRpc"); ((NetworkBehaviour)this).__registerRpc(584257588u, new RpcReceiveHandler(__rpc_handler_584257588), "SetPassengerInVehicleServerRpc"); ((NetworkBehaviour)this).__registerRpc(1770646454u, new RpcReceiveHandler(__rpc_handler_1770646454), "SetPassengerInVehicleRpc"); ((NetworkBehaviour)this).__registerRpc(330444899u, new RpcReceiveHandler(__rpc_handler_330444899), "OnPassengerExitVehicleRpc"); ((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(1901426905u, new RpcReceiveHandler(__rpc_handler_1901426905), "SyncEffectsRpc"); ((NetworkBehaviour)this).__registerRpc(564651721u, new RpcReceiveHandler(__rpc_handler_564651721), "SyncVehicleInputRpc"); ((NetworkBehaviour)this).__registerRpc(168269396u, new RpcReceiveHandler(__rpc_handler_168269396), "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(129667878u, new RpcReceiveHandler(__rpc_handler_129667878), "PushTruckRpc"); ((NetworkBehaviour)this).__registerRpc(2781601828u, new RpcReceiveHandler(__rpc_handler_2781601828), "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_3614373412(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_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) { 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 addExtraMusic = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref addExtraMusic, default(ForPrimitives)); bool useAltSteering = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref useAltSteering, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SyncClientDataRpc(num, postBetaMode, noTree, addExtraMusic, useAltSteering); 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_3234968899(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).CancelSetPlayerInVehicleRpc(playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_654436887(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).SetDriverInVehicleServerRpc(playerId, ext); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1768221808(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).SetDriverInVehicleOwnerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3977993951(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_0081: 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_00be: 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); bool setCabinLight = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setCabinLight, default(ForPrimitives)); bool setKeyInSlot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setKeyInSlot, default(ForPrimitives)); bool setStarted = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setStarted, default(ForPrimitives)); int playerAnimIndex = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerAnimIndex); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetDriverInVehicleNotOwnerRpc(playerId, setCabinLight, setKeyInSlot, setStarted, playerAnimIndex); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_360937913(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 setGasPedal = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setGasPedal, default(ForPrimitives)); bool setBrakePedal = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setBrakePedal, default(ForPrimitives)); bool setKeyInSlot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setKeyInSlot, default(ForPrimitives)); bool setStarted = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setStarted, default(ForPrimitives)); bool setCabinLight = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setCabinLight, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).OnDriverExitVehicleServerRpc(playerId, carLocation, carRotation, setGasPedal, setBrakePedal, setKeyInSlot, setStarted, setCabinLight); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2999731395(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 setGasPedal = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setGasPedal, default(ForPrimitives)); bool setBrakePedal = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setBrakePedal, default(ForPrimitives)); bool setKeyInSlot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setKeyInSlot, default(ForPrimitives)); bool setStarted = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setStarted, default(ForPrimitives)); bool setCabinLight = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref setCabinLight, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).OnDriverExitVehicleRpc(playerId, carLocation, carRotation, setGasPedal, setBrakePedal, setKeyInSlot, setStarted, setCabinLight); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_584257588(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).SetPassengerInVehicleServerRpc(playerId, ext); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1770646454(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 passengerInVehicleRpc = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe(ref passengerInVehicleRpc, default(ForNetworkSerializable)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SetPassengerInVehicleRpc(passengerInVehicleRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_330444899(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).OnPassengerExitVehicleRpc(playerNetObjRef, exitPoint); 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_1901426905(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).SyncEffectsRpc(wheelRotation, steerInput, playerSteering); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_564651721(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 verticalInput = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref verticalInput, default(ForPrimitives)); 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).SyncVehicleInputRpc(verticalInput, gasPressed, brakePressed); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_168269396(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0049: 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) //IL_0069: 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_0080: 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); float steeringInput = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref steeringInput, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).SyncCarPositionRpc(carPosition, carRotation, steeringInput); 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_129667878(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0049: 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) //IL_0069: 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_0080: 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); float turbulence = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref turbulence, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).PushTruckRpc(pushPosition, dir, turbulence); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2781601828(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 pushPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref pushPosition); float turbulence = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref turbulence, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((v55VehicleController)(object)target).PushTruckFromOwnerRpc(pushPosition, turbulence); 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.5.12")] [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.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { internal static List networkPrefabs = new List(); internal static bool initialized = false; 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() { if (!initialized) { initialized = true; Logger = ((BaseUnityPlugin)this).Logger; Instance = this; LoadAssetBundlesAndRegister(); UserConfig.InitConfig(); Patch(); LogInfo("scandal.v55cruiser v1.5.12 has loaded!"); } } private void LoadAssetBundlesAndRegister() { AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), "v55cruiser")); if ((Object)(object)val == (Object)null) { LogError("[AssetBundle] Failed to load asset bundle: v55cruiser"); return; } References.companyCruiserPrefab = val.LoadAsset("CompanyCruiser.prefab"); if ((Object)(object)References.companyCruiserPrefab != (Object)null) { if (!networkPrefabs.Contains(References.companyCruiserPrefab)) { networkPrefabs.Add(References.companyCruiserPrefab); } LogInfo("[AssetBundle] Successfully loaded prefab: CompanyCruiser"); } else { LogError("[AssetBundle] Failed to load prefab: CompanyCruiser"); } References.companyCruiserManualPrefab = val.LoadAsset("CompanyCruiserManual.prefab"); if ((Object)(object)References.companyCruiserManualPrefab != (Object)null) { if (!networkPrefabs.Contains(References.companyCruiserManualPrefab)) { networkPrefabs.Add(References.companyCruiserManualPrefab); } LogInfo("[AssetBundle] Successfully loaded prefab: CompanyCruiserManual"); } else { LogError("[AssetBundle] Failed to load prefab: CompanyCruiserManual"); } } internal static void Patch() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown if (Harmony == null) { Harmony = new Harmony("scandal.v55cruiser"); } LogDebug("Patching..."); CompatibilityUtils.Init(Harmony); Harmony.PatchAll(typeof(ScandalsTweaksPatches)); Harmony.PatchAll(typeof(BaboonBirdAIPatches)); Harmony.PatchAll(typeof(ForestGiantAIPatches)); Harmony.PatchAll(typeof(GiantKiwiAIPatches)); Harmony.PatchAll(typeof(MaskedPlayerEnemyPatches)); Harmony.PatchAll(typeof(MouthDogAIPatches)); Harmony.PatchAll(typeof(PumaAIPatches)); Harmony.PatchAll(typeof(RadMechAIPatches)); Harmony.PatchAll(typeof(RedLocustBeesPatches)); Harmony.PatchAll(typeof(ElevatorAnimationEventsPatches)); Harmony.PatchAll(typeof(GameNetworkManagerPatches)); Harmony.PatchAll(typeof(HUDManagerPatches)); Harmony.PatchAll(typeof(LandminePatches)); Harmony.PatchAll(typeof(PlayerControllerBPatches)); Harmony.PatchAll(typeof(StartOfRoundPatches)); Harmony.PatchAll(typeof(TerminalPatches)); Harmony.PatchAll(typeof(TerrainObstacleTriggerPatches)); Harmony.PatchAll(typeof(VehicleControllerPatches)); LogDebug("Finished patching!"); } internal static void Unpatch() { LogDebug("Unpatching..."); Harmony? harmony = Harmony; if (harmony != null) { harmony.UnpatchSelf(); } LogDebug("Finished unpatching!"); } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static void LogMessage(string messageLog) { Logger.LogMessage((object)messageLog); } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static void LogDebug(string debugLog) { Logger.LogDebug((object)debugLog); } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static void LogInfo(string infoLog) { Logger.LogInfo((object)infoLog); } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static void LogWarning(string warningLog) { Logger.LogWarning((object)warningLog); } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static void LogError(string errorLog) { Logger.LogError((object)errorLog); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "scandal.v55cruiser"; public const string PLUGIN_NAME = "v55Cruiser"; public const string PLUGIN_VERSION = "1.5.12"; } } namespace v55Cruiser.Utils { internal static class CompatibilityUtils { internal const string GUID_SCANDALLIB = "scandal.scandallib"; internal const string GUID_SCANDALS_TWEAKS = "scandal.scandalstweaks"; internal const string GUID_LETHALELEMENTS = "voxx.LethalElementsPlugin"; internal const string GUID_LETHALMIN = "NoteBoxz.LethalMin"; internal const string GUID_IMMERSIVE_VISOR = "ImmersiveVisor"; internal const string GUID_FIRST_PERSON_VIEW = "com.seeya.firstpersonview"; internal static bool INSTALLED_LETHALELEMENTS; internal static bool INSTALLED_LETHALMIN; internal static bool INSTALLED_IMMERSIVE_VISOR; internal static bool INSTALLED_FIRST_PERSON_VIEW; internal static void Init(Harmony harmony) { if (Chainloader.PluginInfos.ContainsKey("voxx.LethalElementsPlugin")) { INSTALLED_LETHALELEMENTS = true; harmony.PatchAll(typeof(LethalElementsCompatibility)); Plugin.LogDebug("CROSS-COMPATIBILITY - LethalElements detected"); } if (Chainloader.PluginInfos.ContainsKey("NoteBoxz.LethalMin")) { INSTALLED_LETHALMIN = true; harmony.PatchAll(typeof(LethalMinCompatibility)); Plugin.LogDebug("CROSS-COMPATIBILITY - LethalMin detected"); } if (Chainloader.PluginInfos.ContainsKey("ImmersiveVisor")) { INSTALLED_IMMERSIVE_VISOR = true; harmony.PatchAll(typeof(ImmersiveVisorCompatibility)); Plugin.LogDebug("CROSS-COMPATIBILITY - ImmersiveVisor detected"); } if (Chainloader.PluginInfos.ContainsKey("com.seeya.firstpersonview")) { INSTALLED_FIRST_PERSON_VIEW = true; harmony.PatchAll(typeof(FirstPersonViewCompatibility)); Plugin.LogDebug("CROSS-COMPATIBILITY - FirstPersonView detected"); } } } public static class References { internal static GameObject companyCruiserPrefab; internal static GameObject companyCruiserManualPrefab; } public static class SaveManager { internal static string SavePrefix = "TruckData."; internal static string SavedTruckInterior = "AttachedTruckInterior"; 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 AdditionalRadioMusic; internal static ConfigEntry RightHandedWheel; internal static ConfigEntry AlternateSteering; internal static ConfigEntry PostBeta; internal static ConfigEntry NoTreeDestruction; internal static void InitConfig() { ConfigFile config = ((BaseUnityPlugin)Plugin.Instance).Config; config.SaveOnConfigSet = false; AdditionalRadioMusic = config.Bind("Host", "Additional Radio Music", false, "[Host] If true, will enable two unused (one copyrighted) radio tracks"); 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"); AlternateSteering = config.Bind("Host", "Alternate Steering Fix", false, "[Host] [Must disable True-V55] If true, will use an alternate steering fix"); PostBeta = config.Bind("Host", "True-V55", true, "[Host] If false, will fix some minor issues that do not heavily impact experience (steering, suspension, etc)"); 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 { internal static v55VehicleController truckController; public static bool IsEnemyInTruck(EnemyAI enemyScript, BoxCollider navMeshBounds) { //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_0017: Unknown result type (might be due to invalid IL or missing references) //IL_002a: 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) if (!(((Collider)navMeshBounds).ClosestPoint(((Component)enemyScript).transform.position) == ((Component)enemyScript).transform.position)) { return ((Collider)navMeshBounds).ClosestPoint(enemyScript.agent.destination) == enemyScript.agent.destination; } return true; } public static bool IsTruckStorageEnclosed(v55VehicleController truckScript) { return !truckScript.liftGateOpen; } public static bool IsPlayerInTruckBounds(PlayerControllerB playerScript, v55VehicleController truckScript, bool usePlayerData = false) { if (!usePlayerData) { return truckScript.vehicleZone.playerInZone; } return PlayerControllerBPatches.playerData[playerScript].playerRidingOnTruck; } public static bool IsPlayerInTruckStorage(PlayerControllerB playerScript, v55VehicleController truckScript, bool usePlayerData = false) { if (!usePlayerData) { return truckScript.vehicleStorageZone.playerInZone; } return PlayerControllerBPatches.playerData[playerScript].playerRidingInTruckStorage; } public static bool IsPlayerSeatedInTruck(PlayerControllerB playerScript, v55VehicleController truckScript) { if ((Object)(object)playerScript != (Object)null) { return (Object)(object)playerScript?.overridePhysicsParent == (Object)(object)((truckScript != null) ? ((Component)truckScript).transform : null); } return false; } public static bool IsPlayerOnOutsideOfTruck(PlayerControllerB playerScript, v55VehicleController truckScript, bool usePlayerData = false) { if (IsPlayerInTruckBounds(playerScript, truckScript, usePlayerData) && !IsPlayerInTruckStorage(playerScript, truckScript, usePlayerData)) { return !IsPlayerSeatedInTruck(playerScript, truckScript); } return false; } public static bool IsTruckMovingFastEnough(v55VehicleController truckScript, float threshold) { return ((Vector3)(ref ((VehicleController)truckScript).averageVelocity)).magnitude > threshold; } public static bool IsPlayerProtectedInTruckStorage(PlayerControllerB playerScript, v55VehicleController truckScript, bool usePlayerData = false) { if (IsPlayerInTruckStorage(playerScript, truckScript, usePlayerData)) { return IsTruckStorageEnclosed(truckScript); } return false; } public static bool IsSeatedPlayerProtectedByTruck(PlayerControllerB playerScript, v55VehicleController truckScript, bool velocityCheck = false, float velocityMagnitude = 0f) { if (velocityCheck) { return IsTruckMovingFastEnough(truckScript, velocityMagnitude); } return false; } public static bool IsPlayerProtectedByTruck(PlayerControllerB playerScript, v55VehicleController truckScript, bool velocityCheck = false, float velocityMagnitude = 0f, bool usePlayerData = false) { if (((VehicleController)truckScript).carDestroyed) { return false; } if (velocityCheck && ((Vector3)(ref ((VehicleController)truckScript).averageVelocity)).magnitude > velocityMagnitude) { return true; } if (IsPlayerOnOutsideOfTruck(playerScript, truckScript, usePlayerData)) { return false; } if (!IsTruckStorageEnclosed(truckScript) && IsPlayerInTruckStorage(playerScript, truckScript, usePlayerData)) { return false; } return true; } public static bool IsPlayerNearTruck(PlayerControllerB playerScript, v55VehicleController truckScript) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: 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_0017: 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) Vector3 position = ((VehicleController)truckScript).mainRigidbody.position; Vector3 position2 = ((Component)playerScript).transform.position; return Vector3.Distance(position2, position) <= 10f; } } } namespace v55Cruiser.Scripts { public class v55InteriorType : MonoBehaviour { public v55SeatAnimator driverSeat; public v55SeatAnimator passengerSeat; public InteractTrigger driverSeatTrigger; public InteractTrigger passengerSeatTrigger; public Animator gearStickAnimator; public Transform windWiper1; public Transform windWiper2; public Animator driverSeatSpringAnimator; public float cameraLookAngle; } public class v55PhysicsRegion : PlayerPhysicsRegion { private float playerInsideInterval; private bool playerInsideThisFrame; private bool addedRegionToList; public bool playerInZone; public bool isRegionActive; public bool parentPlayerBodies; public void OnDestroy() { //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) base.disablePhysicsRegion = true; if (StartOfRound.Instance.CurrentPlayerPhysicsRegions.Contains((PlayerPhysicsRegion)(object)this)) { StartOfRound.Instance.CurrentPlayerPhysicsRegions.Remove((PlayerPhysicsRegion)(object)this); } for (int i = 0; i < StartOfRound.Instance?.allPlayerScripts.Length; i++) { PlayerControllerB val = StartOfRound.Instance.allPlayerScripts[i]; if ((Object)(object)((Component)val).transform.parent == (Object)(object)base.physicsTransform) { Transform parent = (val.isInElevator ? val.playersManager.elevatorTransform : val.playersManager.playersContainer); ((Component)val).transform.SetParent(parent); Plugin.LogDebug($"Player {i} setting parent 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)); } } } public void OnTriggerStay(Collider other) { if (base.disablePhysicsRegion) { return; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if ((Object)(object)localPlayerController == (Object)null) { base.hasLocalPlayer = false; playerInZone = false; return; } string tag = ((Component)other).gameObject.tag; if (parentPlayerBodies && tag.StartsWith("PlayerRagdoll")) { 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) { val.deadBody.SetPhysicsParent(base.physicsTransform, base.physicsCollider); } } else if (((Component)other).gameObject.CompareTag("Player") && !((Object)(object)((Component)other).gameObject != (Object)(object)((Component)localPlayerController).gameObject)) { playerInsideThisFrame = true; playerInsideInterval = 0f; } } public void SetPhysicsRegionActive() { if (!isRegionActive) { if (addedRegionToList) { TryRemovePhysicsRegionFromList(); } } else { base.checkInterval = 0f; base.removePlayerNextFrame = false; TryAddPhysicsRegionToList(); } } public void SetPlayerZoneActive() { playerInZone = true; } public bool IsPhysicsRegionActive() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) if (Vector3.Angle(((Component)this).transform.up, Vector3.up) <= base.maxTippingAngle) { return !base.disablePhysicsRegion; } return false; } public void TryRemovePhysicsRegionFromList() { StartOfRound.Instance?.CurrentPlayerPhysicsRegions?.Remove((PlayerPhysicsRegion)(object)this); addedRegionToList = false; base.hasLocalPlayer = false; base.removePlayerNextFrame = false; base.checkInterval = 0f; } public void TryAddPhysicsRegionToList() { if (!addedRegionToList && isRegionActive && StartOfRound.Instance.CurrentPlayerPhysicsRegions != null && !StartOfRound.Instance.CurrentPlayerPhysicsRegions.Contains((PlayerPhysicsRegion)(object)this)) { StartOfRound.Instance.CurrentPlayerPhysicsRegions.Add((PlayerPhysicsRegion)(object)this); addedRegionToList = true; base.hasLocalPlayer = true; } } public void Update() { if (base.disablePhysicsRegion) { base.physicsCollider.enabled = false; return; } isRegionActive = IsPhysicsRegionActive(); UpdatePhysicsRegion(); SetPhysicsRegionAndZone(ref base.checkInterval, ref base.removePlayerNextFrame, ref base.hasLocalPlayer, removeFromPhysicsList: true); } public void UpdatePhysicsRegion() { if (!playerInsideThisFrame) { if (playerInZone) { playerInZone = false; } return; } if (playerInsideThisFrame) { SetPhysicsRegionActive(); SetPlayerZoneActive(); } if (playerInsideInterval <= 0.15f) { playerInsideInterval += Time.deltaTime; return; } playerInsideThisFrame = false; playerInsideInterval = 0f; } public void SetPhysicsRegionAndZone(ref float interval, ref bool removeNextFrame, ref bool hasPlayer, bool removeFromPhysicsList = false) { if (!hasPlayer) { return; } if (interval <= 0.15f) { interval += Time.deltaTime; return; } if (!removeNextFrame) { removeNextFrame = true; return; } removeNextFrame = false; interval = 0f; hasPlayer = false; if (removeFromPhysicsList) { TryRemovePhysicsRegionFromList(); } } } public class v55PlayerZone : MonoBehaviour { public v55VehicleController truckController; public Transform physicsTransform; public Collider physicsCollider; private float playerInsideInterval; private bool playerInsideThisFrame; private bool removePlayerFromZoneNextFrame; private float checkZoneInterval; public bool unsetInZoneWhileSeated; public bool setInZoneWhileSeated; public bool playerInZone; public bool disableZone; public void OnEnable() { if (setInZoneWhileSeated && unsetInZoneWhileSeated) { Plugin.LogWarning("'Set in zone' and 'Unset in zone' are set simulteanously! this will cause issues"); Plugin.LogWarning("Fallback to set behaviour 'Set zone --> not seated'"); setInZoneWhileSeated = false; unsetInZoneWhileSeated = true; } else if (!setInZoneWhileSeated && !unsetInZoneWhileSeated) { Plugin.LogWarning("'Set in zone' and 'Unset in zone' are unset simulteanously! this will cause issues"); Plugin.LogWarning("Fallback to set behaviour 'Set zone --> not seated'"); setInZoneWhileSeated = false; unsetInZoneWhileSeated = true; } } public void OnDestroy() { disableZone = true; } public void OnTriggerStay(Collider other) { if (!disableZone) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (!((Object)(object)localPlayerController == (Object)null) && ((Component)other).gameObject.CompareTag("Player") && !((Object)(object)((Component)other).gameObject != (Object)(object)((Component)localPlayerController).gameObject)) { playerInsideThisFrame = true; playerInsideInterval = 0f; } } } public void Update() { if (disableZone) { physicsCollider.enabled = false; } else if (VehicleUtils.IsPlayerSeatedInTruck(GameNetworkManager.Instance.localPlayerController, truckController)) { if (setInZoneWhileSeated) { playerInZone = true; } else if (unsetInZoneWhileSeated) { playerInZone = false; } removePlayerFromZoneNextFrame = false; checkZoneInterval = 0f; } else { UpdatePlayerZone(); SetPlayerZone(ref checkZoneInterval, ref removePlayerFromZoneNextFrame, ref playerInZone); } } public void UpdatePlayerZone() { if (playerInsideThisFrame) { if (playerInsideThisFrame) { SetPlayerZoneActive(); } if (playerInsideInterval <= 0.15f) { playerInsideInterval += Time.deltaTime; return; } playerInsideThisFrame = false; playerInsideInterval = 0f; } } private void SetPlayerZoneActive() { checkZoneInterval = 0f; removePlayerFromZoneNextFrame = false; playerInZone = true; } public void SetPlayerZone(ref float checkInterval, ref bool removeNextFrame, ref bool hasPlayer) { if (hasPlayer) { if (checkInterval <= 0.15f) { checkInterval += Time.deltaTime; return; } if (!removeNextFrame) { removeNextFrame = true; return; } removeNextFrame = false; checkInterval = 0f; hasPlayer = false; } } } public class v55SeatAnimator : VehicleSeatAnimator { public v55VehicleController vehicleController; 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; } } } namespace v55Cruiser.Patches { [HarmonyPatch(typeof(ElevatorAnimationEvents))] public static class ElevatorAnimationEventsPatches { [HarmonyPatch("ElevatorFullyRunning")] [HarmonyPrefix] private static void ElevatorAnimationEvents_Pre_ElevatorFullyRunning() { v55VehicleController truckController = VehicleUtils.truckController; if (!((Object)(object)truckController == (Object)null)) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; bool flag = VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController); bool flag2 = VehicleUtils.IsPlayerInTruckBounds(localPlayerController, truckController); bool flag3 = VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController); if (flag || flag2 || flag3) { localPlayerController.isInElevator = false; } } } } [HarmonyPatch(typeof(GameNetworkManager))] public static class GameNetworkManagerPatches { [HarmonyPatch("Start")] [HarmonyPostfix] private static void GameNetworkManager_Post_Start(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 GameNetworkManager_Post_SaveItemsInShip(GameNetworkManager __instance) { try { if (Object.op_Implicit((Object)(object)StartOfRound.Instance.attachedVehicle) && StartOfRound.Instance.attachedVehicle is v55VehicleController v55VehicleController) { SaveManager.Save(SaveManager.SavedTruckInterior, v55VehicleController.interiorType); Plugin.LogMessage("Successfully saved Truck data."); } else { SaveManager.Delete(SaveManager.SavedTruckInterior); Plugin.LogMessage("Successfully deleted Truck data."); } } catch (Exception ex) { Plugin.LogError("Exception caught saving Truck data:\n" + ex); } } } [HarmonyPatch(typeof(HUDManager))] public static class HUDManagerPatches { [HarmonyPatch("HelmetCondensationDrops")] [HarmonyPostfix] private static void HUDManager_Post_HelmetCondensationDrops(HUDManager __instance) { v55VehicleController truckController = VehicleUtils.truckController; if (!((Object)(object)truckController == (Object)null)) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController)) { __instance.increaseHelmetCondensation = false; } } } } [HarmonyPatch(typeof(Landmine))] public static class LandminePatches { [HarmonyPatch("SpawnExplosion")] [HarmonyPrefix] private static void Landmine_Pre_SpawnExplosion(Landmine __instance, Vector3 explosionPosition, bool spawnExplosionEffect, ref float killRange, ref float damageRange, int nonLethalDamage, float physicsForce, GameObject overridePrefab, bool goThroughCar) { //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) //IL_0066: Unknown result type (might be due to invalid IL or missing references) v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (VehicleUtils.IsPlayerNearTruck(localPlayerController, truckController)) { bool flag = !goThroughCar && !spawnExplosionEffect && killRange == 2.4f && damageRange == 5f && nonLethalDamage == 1 && physicsForce == 0f; bool flag2 = VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController); bool flag3 = truckController.storageCompartment.ClosestPoint(explosionPosition) != explosionPosition; if (flag && flag2 && flag3) { killRange = -1f; damageRange = -1f; } } } } [HarmonyPatch(typeof(PlayerControllerB))] public static class PlayerControllerBPatches { public class PlayerControllerBData { public float syncedCameraHorizontal; 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 PlayerControllerB_Post_Awake(PlayerControllerB __instance) { RemoveStalePlayerData(); if (!playerData.ContainsKey(__instance)) { PlayerControllerBData value = new PlayerControllerBData(); playerData.Add(__instance, value); } } [HarmonyPatch("SetItemInElevator")] [HarmonyPrefix] private static bool PlayerControllerB_Pre_SetItemInElevator(PlayerControllerB __instance, bool droppedInShipRoom, bool droppedInElevator, GrabbableObject gObject) { v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if ((Object)(object)((Component)gObject).transform.parent == (Object)(object)((Component)truckController).transform) { return false; } return true; } [HarmonyPatch("Update")] [HarmonyPostfix] public static void PlayerControllerB_Post_Update(PlayerControllerB __instance) { if (!((Object)(object)__instance == (Object)null) && __instance.isPlayerControlled && !((Object)(object)__instance != (Object)(object)GameNetworkManager.Instance.localPlayerController)) { SyncPlayerLookInput(__instance); } } [HarmonyPatch("LateUpdate")] [HarmonyPrefix] public static void PlayerControllerB_Pre_LateUpdate(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_0067: Unknown result type (might be due to invalid IL or missing references) v55VehicleController truckController = VehicleUtils.truckController; PlayerControllerBData playerControllerBData = playerData[playerController]; bool flag = truckController?.vehicleStorageZone.playerInZone ?? false; bool flag2 = truckController?.vehicleZone.playerInZone ?? false; if (playerControllerBData.playerRidingInTruckStorage != flag || playerControllerBData.playerRidingOnTruck != flag2) { playerControllerBData.playerRidingInTruckStorage = flag; playerControllerBData.playerRidingOnTruck = flag2; V55Networker.Instance?.SyncPlayerZoneRpc(NetworkObjectReference.op_Implicit(((NetworkBehaviour)playerController).NetworkObject), flag, flag2); } } private static void SyncPlayerLookInput(PlayerControllerB playerController) { //IL_0054: 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 PlayerControllerB_Post_LateUpdate(PlayerControllerB __instance) { //IL_0059: 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_006f: 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_0085: 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) if (!((Object)(object)__instance == (Object)null) && !__instance.isPlayerDead && __instance.isPlayerControlled) { v55VehicleController truckController = VehicleUtils.truckController; if (!((Object)(object)truckController == (Object)null) && VehicleUtils.IsPlayerSeatedInTruck(__instance, truckController)) { Transform playerModelArmsMetarig = __instance.playerModelArmsMetarig; Transform localArmsTransform = __instance.localArmsTransform; Transform transform = ((Component)__instance.playerBodyAnimator).transform; ((Component)playerModelArmsMetarig.parent).transform.localRotation = armsMetarigParentRot; playerModelArmsMetarig.localRotation = armsMetarigRot; localArmsTransform.localPosition = localArmsPos; localArmsTransform.localRotation = localArmsRot; transform.localPosition = playerBodyPos; transform.localRotation = playerBodyRot; } } } } [HarmonyPatch(typeof(StartOfRound))] public static class StartOfRoundPatches { [HarmonyPatch("Awake")] [HarmonyPrefix] private static void StartOfRound_Pre_Awake(StartOfRound __instance) { V55Networker.Create(); __instance.VehiclesList[0] = References.companyCruiserPrefab; } [HarmonyPatch("SyncAlreadyHeldObjectsServerRpc")] [HarmonyPostfix] private static void StartOfRound_Post_SyncAlreadyHeldObjectsServerRpc(StartOfRound __instance, int joiningClientId) { if (!Object.op_Implicit((Object)(object)__instance.attachedVehicle) || !(__instance.attachedVehicle is v55VehicleController v55VehicleController)) { return; } try { if ((Object)(object)v55VehicleController == (Object)null) { Plugin.LogError("Attempted to send client data, but the Truck is null? please report this to Scandal."); } else { v55VehicleController.SendClientSyncData(); } } catch (Exception ex) { Plugin.LogError("Exception caught sending saved Truck data:\n" + ex); } } [HarmonyPatch("LoadAttachedVehicle")] [HarmonyPostfix] private static void StartOfRound_Post_LoadAttachedVehicle(StartOfRound __instance) { if (!Object.op_Implicit((Object)(object)__instance.attachedVehicle) || !(__instance.attachedVehicle is v55VehicleController v55VehicleController)) { return; } try { if ((Object)(object)v55VehicleController == (Object)null) { Plugin.LogError("Attempted to load saved data, but the Truck is null? please report this to Scandal."); return; } if (SaveManager.TryLoad(SaveManager.SavedTruckInterior, out var data)) { if (UserConfig.PostBeta.Value) { data = 0; } v55VehicleController.interiorType = data; v55VehicleController.SetInteriorType(v55VehicleController.interiorType); } v55VehicleController.inBetaMode = UserConfig.PostBeta.Value; v55VehicleController.canDestroyTrees = !UserConfig.NoTreeDestruction.Value; v55VehicleController.hasAdditionalMusic = UserConfig.AdditionalRadioMusic.Value; v55VehicleController.useSteeringCurve = UserConfig.AlternateSteering.Value && !UserConfig.PostBeta.Value; if (!v55VehicleController.inBetaMode) { v55VehicleController.canDestroyTrees = true; } } catch (Exception ex) { Plugin.LogError("Exception caught loading saved Truck data:\n" + ex); } } } [HarmonyPatch(typeof(Terminal))] public static class TerminalPatches { [HarmonyPatch("Awake")] [HarmonyPrefix] private static void Terminal_Pre_Awake(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 TerrainObstacleTrigger_Pre_OnTriggerEnter(TerrainObstacleTrigger __instance, bool __runOriginal, Collider other) { //IL_003a: 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_0050: 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_007a: 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_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_00d2: 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) if (!__runOriginal) { return false; } v55VehicleController v55VehicleController = default(v55VehicleController); if (!((Component)other).TryGetComponent(ref v55VehicleController)) { return true; } if (!((NetworkBehaviour)v55VehicleController).IsOwner || !v55VehicleController.canDestroyTrees) { return false; } bool flag = ((Vector3)(ref ((VehicleController)v55VehicleController).averageVelocity)).magnitude >= 5f; bool flag2 = Vector3.Angle(((VehicleController)v55VehicleController).averageVelocity, ((Component)__instance).transform.position - ((VehicleController)v55VehicleController).mainRigidbody.position) < 80f; if (!flag || !flag2) { return true; } 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; } } [HarmonyPatch(typeof(VehicleController))] public static class VehicleControllerPatches { [HarmonyPatch("DisableVehicleCollisionForAllPlayers")] [HarmonyPrefix] private static bool VehicleController_Pre_DisableVehicleCollisionForAllPlayers(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController)) { return true; } return false; } [HarmonyPatch("EnableVehicleCollisionForAllPlayers")] [HarmonyPrefix] private static bool VehicleController_Pre_EnableVehicleCollisionForAllPlayers(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController)) { return true; } return false; } [HarmonyPatch("SetVehicleCollisionForPlayer")] [HarmonyPrefix] private static bool VehicleController_Pre_SetVehicleCollisionForPlayer(VehicleController __instance, bool __runOriginal, bool setEnabled, PlayerControllerB player) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController)) { return true; } return false; } [HarmonyPatch("SetBackDoorOpen")] [HarmonyPrefix] private static bool VehicleController_Pre_SetBackDoorOpen(VehicleController __instance, bool __runOriginal, bool open) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.SetBackDoorOpen(open); return false; } [HarmonyPatch("SetFrontCabinLightOn")] [HarmonyPrefix] private static bool VehicleController_Pre_SetFrontCabinLightOn(VehicleController __instance, bool __runOriginal, bool setOn) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.SetFrontCabinLightOn(setOn); return false; } [HarmonyPatch("AddEngineOil")] [HarmonyPrefix] private static bool VehicleController_Pre_AddEngineOil(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 VehicleController_Pre_AddTurboBoost(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 VehicleController_Pre_StartMagneting(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController)) { return true; } return false; } [HarmonyPatch("CollectItemsInTruck")] [HarmonyPrefix] private static bool VehicleController_Pre_CollectItemsInTruck(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController)) { return true; } return false; } [HarmonyPatch("DestroyCar")] [HarmonyPrefix] private static bool VehicleController_Pre_DestroyCar(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 VehicleController_Pre_ExitDriverSideSeat(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 VehicleController_Pre_ExitPassengerSideSeat(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 VehicleController_Pre_CarReactToObstacle(VehicleController __instance, bool __runOriginal, Vector3 vel, Vector3 position, Vector3 impulse, CarObstacleType type, float obstacleSize, EnemyAI enemyScript, bool dealDamage) { //IL_0012: 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_0014: 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) 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 VehicleController_Pre_DealPermanentDamage(VehicleController __instance, bool __runOriginal, int damageAmount, Vector3 damagePosition) { //IL_0013: 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 VehicleController_Pre_DamagePlayerInVehicle(VehicleController __instance, bool __runOriginal, Vector3 vel, float magnitude) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.DamagePlayerInVehicle(vel, onlyLocalDriver: false); return false; } [HarmonyPatch("SetInternalStress")] [HarmonyPrefix] private static bool VehicleController_Pre_SetInternalStress(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 VehicleController_Pre_ToggleHeadlightsLocalClient(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 VehicleController_Pre_SetHeadlightMaterial(VehicleController __instance, bool __runOriginal, bool on) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.SetHeadlightMaterial(on); return false; } [HarmonyPatch("SpringDriverSeatLocalClient")] [HarmonyPrefix] private static bool VehicleController_Pre_SpringDriverSeatLocalClient(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.SpringDriverSeatLocalClient(); return false; } [HarmonyPatch("SetRadioOnLocalClient")] [HarmonyPrefix] private static bool VehicleController_Pre_SetRadioOnLocalClient(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 VehicleController_Pre_SwitchRadio(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 VehicleController_Pre_ChangeRadioStation(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.ChangeRadioStation(); return false; } [HarmonyPatch("StartTryCarIgnition")] [HarmonyPrefix] private static bool VehicleController_Pre_StartTryCarIgnition(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.StartTryCarIgnition(); return false; } [HarmonyPatch("CancelTryCarIgnition")] [HarmonyPrefix] private static bool VehicleController_Pre_CancelTryCarIgnition(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.CancelTryCarIgnition(); return false; } [HarmonyPatch("RemoveKeyFromIgnition")] [HarmonyPrefix] private static bool VehicleController_Pre_RemoveKeyFromIgnition(VehicleController __instance, bool __runOriginal) { if (!__runOriginal) { return false; } if (!(__instance is v55VehicleController v55VehicleController)) { return true; } v55VehicleController.RemoveKeyFromIgnition(); return false; } } } namespace v55Cruiser.Patches.InternalUtils { [HarmonyPatch] public static class ScandalsTweaksPatches { public static bool IsPlayerInTruck(PlayerControllerB player, bool checkBlowback = false, bool checkTrunkOnly = false, bool usePlayerData = false) { v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return false; } PlayerControllerBPatches.PlayerControllerBData playerControllerBData = PlayerControllerBPatches.playerData[player]; bool flag = VehicleUtils.IsPlayerInTruckStorage(player, truckController, usePlayerData); if (checkBlowback || checkTrunkOnly) { return flag; } bool flag2 = VehicleUtils.IsPlayerInTruckBounds(player, truckController, usePlayerData); bool flag3 = VehicleUtils.IsPlayerSeatedInTruck(player, truckController); return flag3 || flag2 || flag; } [HarmonyPatch(typeof(JLLCompatibility), "CanBlowPlayer")] [HarmonyPrefix] private static bool JLLCompatibility_Pre_CanBlowPlayer(PlayerControllerB player, ref bool __result) { if (IsPlayerInTruck(player, checkBlowback: true)) { __result = false; return false; } return true; } [HarmonyPatch(typeof(JLLCompatibility), "CanDamagePlayer")] [HarmonyPrefix] private static bool JLLCompatibility_Pre_CanDamagePlayer(PlayerControllerB player, ref bool __result) { if (IsPlayerInTruck(player, checkBlowback: false, checkTrunkOnly: true)) { __result = false; return false; } return true; } [HarmonyPatch(typeof(Utilities), "ShouldAllowSightThroughVehicle")] [HarmonyPrefix] private static bool Utilities_Pre_ShouldAllowSightThroughVehicle(PlayerControllerB player, EnemyAI enemy, ref bool __result) { if (IsPlayerInTruck(player, checkBlowback: false, checkTrunkOnly: false, usePlayerData: true)) { __result = true; return false; } return true; } [HarmonyPatch(typeof(GiantKiwiAIPatches), "IsTargetPlayerInVehicle")] [HarmonyPrefix] private static bool GiantKiwiAIPatches_Pre_IsTargetPlayerInVehicle(GiantKiwiAI giantKiwiAi, VehicleController vehicleController, ref bool __result) { //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_0048: Unknown result type (might be due to invalid IL or missing references) if (!(vehicleController is v55VehicleController v55VehicleController)) { return true; } PlayerControllerB targetPlayer = ((EnemyAI)giantKiwiAi).targetPlayer; bool flag = VehicleUtils.IsPlayerSeatedInTruck(targetPlayer, v55VehicleController); bool flag2 = VehicleUtils.IsPlayerInTruckStorage(targetPlayer, v55VehicleController, usePlayerData: true); bool flag3 = VehicleUtils.IsTruckStorageEnclosed(v55VehicleController); bool flag4 = ((VehicleController)v55VehicleController).ontopOfTruckCollider.ClosestPoint(((Component)targetPlayer).transform.position) == ((Component)targetPlayer).transform.position; if (flag || (flag2 && flag3) || flag4) { __result = true; return false; } return true; } [HarmonyPatch(typeof(BushWolfEnemyPatches), "IsTargetPlayerProtected")] [HarmonyPrefix] private static bool BushWolfEnemyPatches_Pre_IsTargetPlayerProtected(PlayerControllerB player, VehicleController vehicle, ref bool __result) { if (!(vehicle is v55VehicleController truckScript)) { return true; } if (!VehicleUtils.IsPlayerProtectedInTruckStorage(player, truckScript, usePlayerData: true)) { return true; } __result = true; return false; } } } namespace v55Cruiser.Patches.Enemies { [HarmonyPatch(typeof(BaboonBirdAI))] public static class BaboonBirdAIPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool BaboonBirdAI_Pre_OnCollideWithPlayer(BaboonBirdAI __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = VehicleUtils.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; } BoxCollider insideTruckNavMeshBounds = truckController.collisionTrigger.insideTruckNavMeshBounds; bool flag = VehicleUtils.IsEnemyInTruck((EnemyAI)(object)__instance, insideTruckNavMeshBounds); bool flag2 = VehicleUtils.IsPlayerInTruckBounds(val, truckController); bool flag3 = VehicleUtils.IsPlayerInTruckStorage(val, truckController); bool flag4 = VehicleUtils.IsPlayerSeatedInTruck(val, truckController); bool flag5 = VehicleUtils.IsTruckStorageEnclosed(truckController); if (flag4) { return !VehicleUtils.IsSeatedPlayerProtectedByTruck(val, truckController, velocityCheck: true, 8f); } if (!flag2) { return !flag; } if (flag3 && flag5 && !flag) { return false; } if (flag && flag3) { return true; } return !VehicleUtils.IsPlayerProtectedByTruck(val, truckController, velocityCheck: true, 8f); } } [HarmonyPatch(typeof(EnemyAI))] public static class EnemyAIPatches { [HarmonyPatch("PlayerIsTargetable")] [HarmonyPostfix] private static void EnemyAI_Post_PlayerIsTargetable(EnemyAI __instance, PlayerControllerB playerScript, bool cannotBeInShip, bool overrideInsideFactoryCheck, bool checkForMineshaftStartTile, ref bool __result) { if (!(__instance is BushWolfEnemy)) { return; } v55VehicleController truckController = VehicleUtils.truckController; if (!((Object)(object)truckController == (Object)null)) { bool flag = VehicleUtils.IsPlayerInTruckStorage(playerScript, truckController, usePlayerData: true); bool flag2 = VehicleUtils.IsTruckStorageEnclosed(truckController); if (flag && flag2) { __result = false; } } } } [HarmonyPatch(typeof(ForestGiantAI))] public static class ForestGiantAIPatches { [HarmonyPatch("AnimationEventA")] [HarmonyPrefix] private static bool ForestGiantAI_Pre_AnimationEventA(ForestGiantAI __instance, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController)) { return false; } return true; } [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool ForestGiantAI_Pre_OnCollideWithPlayer(ForestGiantAI __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = VehicleUtils.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; } bool flag = VehicleUtils.IsPlayerSeatedInTruck(val, truckController); bool flag2 = VehicleUtils.IsPlayerInTruckBounds(val, truckController); if (flag) { return !VehicleUtils.IsSeatedPlayerProtectedByTruck(val, truckController); } if (!flag2) { return true; } return !VehicleUtils.IsPlayerProtectedByTruck(val, truckController); } } [HarmonyPatch(typeof(GiantKiwiAI))] public static class GiantKiwiAIPatches { [HarmonyPatch("IsEggInsideClosedTruck")] [HarmonyPrefix] private static bool GiantKiwiAI_Pre_IsEggInsideClosedTruck(GiantKiwiAI __instance, KiwiBabyItem egg, bool closedTruck, ref bool __result, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if ((Object)(object)((GrabbableObject)egg).parentObject != (Object)(object)((Component)((VehicleController)truckController).physicsRegion.parentNetworkObject).transform) { return true; } __result = VehicleUtils.IsTruckStorageEnclosed(truckController); return false; } [HarmonyPatch("AnimationEventB")] [HarmonyPrefix] private static void GiantKiwiAI_Pre_AnimationEventB(GiantKiwiAI __instance) { v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if ((Object)(object)localPlayerController == (Object)null || !localPlayerController.isPlayerControlled || localPlayerController.isPlayerDead) { return; } BoxCollider insideTruckNavMeshBounds = truckController.collisionTrigger.insideTruckNavMeshBounds; bool flag = VehicleUtils.IsEnemyInTruck((EnemyAI)(object)__instance, insideTruckNavMeshBounds); bool flag2 = VehicleUtils.IsPlayerInTruckBounds(localPlayerController, truckController); bool flag3 = VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController); bool flag4 = VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController); bool flag5 = VehicleUtils.IsTruckStorageEnclosed(truckController); if (flag4) { if (VehicleUtils.IsSeatedPlayerProtectedByTruck(localPlayerController, truckController, velocityCheck: true, 13f)) { __instance.timeSinceHittingPlayer = 0f; } } else if (!flag2) { if (flag) { __instance.timeSinceHittingPlayer = 0.4f; } } else if ((flag3 && flag5 && !flag) || (!flag3 && flag)) { __instance.timeSinceHittingPlayer = 0.4f; } else if (!(flag && flag3) && VehicleUtils.IsPlayerProtectedByTruck(localPlayerController, truckController, velocityCheck: true, 13f)) { __instance.timeSinceHittingPlayer = 0.4f; } } } [HarmonyPatch(typeof(MaskedPlayerEnemy))] public static class MaskedPlayerEnemyPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool MaskedPlayerEnemy_Pre_OnCollideWithPlayer(MaskedPlayerEnemy __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = VehicleUtils.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; } BoxCollider insideTruckNavMeshBounds = truckController.collisionTrigger.insideTruckNavMeshBounds; bool flag = VehicleUtils.IsEnemyInTruck((EnemyAI)(object)__instance, insideTruckNavMeshBounds); bool flag2 = VehicleUtils.IsPlayerInTruckBounds(val, truckController); bool flag3 = VehicleUtils.IsPlayerInTruckStorage(val, truckController); bool flag4 = VehicleUtils.IsPlayerSeatedInTruck(val, truckController); bool flag5 = VehicleUtils.IsTruckStorageEnclosed(truckController); if (flag4) { return !VehicleUtils.IsSeatedPlayerProtectedByTruck(val, truckController); } if (!flag2) { return !flag; } if ((flag3 && flag5 && !flag) || (!flag3 && flag)) { return false; } if (flag && flag3) { return true; } return !VehicleUtils.IsPlayerProtectedByTruck(val, truckController, velocityCheck: true, 5f); } } [HarmonyPatch(typeof(MouthDogAI))] public static class MouthDogAIPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool MouthDogAI_Pre_OnCollideWithPlayer(MouthDogAI __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = VehicleUtils.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; } bool flag = VehicleUtils.IsPlayerSeatedInTruck(val, truckController); bool flag2 = VehicleUtils.IsPlayerInTruckBounds(val, truckController); if (flag) { return !VehicleUtils.IsSeatedPlayerProtectedByTruck(val, truckController); } if (!flag2) { return true; } return !VehicleUtils.IsPlayerProtectedByTruck(val, truckController); } } [HarmonyPatch(typeof(PumaAI))] public static class PumaAIPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool PumaAI_Pre_OnCollideWithPlayer(PumaAI __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = VehicleUtils.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; } BoxCollider insideTruckNavMeshBounds = truckController.collisionTrigger.insideTruckNavMeshBounds; bool flag = VehicleUtils.IsEnemyInTruck((EnemyAI)(object)__instance, insideTruckNavMeshBounds); bool flag2 = VehicleUtils.IsPlayerInTruckBounds(val, truckController); bool flag3 = VehicleUtils.IsPlayerInTruckStorage(val, truckController); bool flag4 = VehicleUtils.IsPlayerSeatedInTruck(val, truckController); bool flag5 = VehicleUtils.IsTruckStorageEnclosed(truckController); if (flag4) { return !VehicleUtils.IsSeatedPlayerProtectedByTruck(val, truckController, velocityCheck: true, 10f); } if (!flag2) { return !flag; } if ((flag3 && flag5 && !flag) || (!flag3 && flag)) { return false; } if (flag && flag3) { return true; } return !VehicleUtils.IsPlayerProtectedByTruck(val, truckController, velocityCheck: true, 10f); } } [HarmonyPatch(typeof(RadMechAI))] public static class RadMechAIPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static bool RadMechAI_Pre_OnCollideWithPlayer(RadMechAI __instance, Collider other, bool __runOriginal) { if (!__runOriginal) { return false; } v55VehicleController truckController = VehicleUtils.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; } bool flag = VehicleUtils.IsPlayerSeatedInTruck(val, truckController); bool flag2 = VehicleUtils.IsPlayerInTruckBounds(val, truckController); if (flag) { return true; } if (!flag2) { return true; } return !VehicleUtils.IsPlayerProtectedByTruck(val, truckController); } } [HarmonyPatch(typeof(RedLocustBees))] public static class RedLocustBeesPatches { [HarmonyPatch("OnCollideWithPlayer")] [HarmonyPrefix] private static void RedLocustBees_Pre_OnCollideWithPlayer(RedLocustBees __instance, Collider other) { v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return; } PlayerControllerB val = ((EnemyAI)__instance).MeetsStandardPlayerCollisionConditions(other, false, false); if ((Object)(object)val == (Object)null) { return; } BoxCollider insideTruckNavMeshBounds = truckController.collisionTrigger.insideTruckNavMeshBounds; bool flag = VehicleUtils.IsEnemyInTruck((EnemyAI)(object)__instance, insideTruckNavMeshBounds); bool flag2 = VehicleUtils.IsPlayerInTruckBounds(val, truckController); bool flag3 = VehicleUtils.IsPlayerInTruckStorage(val, truckController); bool flag4 = VehicleUtils.IsPlayerSeatedInTruck(val, truckController); bool flag5 = VehicleUtils.IsTruckStorageEnclosed(truckController); if (flag4) { return; } if (!flag2) { if (flag) { __instance.timeSinceHittingPlayer = 0f; } } else if ((flag3 && flag5 && !flag) || (!flag3 && flag)) { __instance.timeSinceHittingPlayer = 0f; } else if (!(flag && flag3) && VehicleUtils.IsPlayerProtectedByTruck(val, truckController, velocityCheck: true, 5f)) { __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_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_0030: Expected O, but got Unknown if ((Object)(object)networkPrefab != (Object)null) { Plugin.LogDebug("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.LogDebug("Successfully registered network handler."); } catch (Exception arg) { Plugin.LogError($"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.LogError("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.LogWarning("There are 2 V55Networkers instantiated, and the wrong one was assigned as Instance. This shouldn't happen, but is recoverable."); Instance = this; } Plugin.LogDebug("Successfully spawned network handler."); } private void Start() { if (!((Object)(object)this != (Object)(object)Instance) && ((NetworkBehaviour)this).IsSpawned) { Plugin.LogDebug("Start on 'V55Networker' called."); } } [Rpc(/*Could not decode attribute arguments.*/)] internal void SyncPlayerZoneRpc(NetworkObjectReference player, 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_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) { return; } if ((int)base.__rpc_exec_stage != 1) { RpcAttributeParams val = new RpcAttributeParams { RequireOwnership = false }; RpcParams val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(1255276541u, val3, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref player, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setStorage, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref setRiding, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 1255276541u, val3, 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.LogError("Failed to find player network object."); return; } PlayerControllerBPatches.PlayerControllerBData playerControllerBData = PlayerControllerBPatches.playerData[val5]; if (playerControllerBData == null) { Plugin.LogError($"Failed to find player data. clientId? {val5.playerClientId}"); return; } playerControllerBData.playerRidingInTruckStorage = setStorage; playerControllerBData.playerRidingOnTruck = setRiding; } else { Plugin.LogError("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 val3 = default(RpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendRpc(4194194153u, val3, val, (SendTo)5, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref player, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref lookInput, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendRpc(ref val2, 4194194153u, val3, 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.LogError("Failed to find player network object."); return; } PlayerControllerBPatches.PlayerControllerBData playerControllerBData = PlayerControllerBPatches.playerData[val5]; if (playerControllerBData == null) { Plugin.LogError($"Failed to find player data. clientId? {val5.playerClientId}"); } else { playerControllerBData.syncedCameraHorizontal = lookInput; } } else { Plugin.LogError("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(1255276541u, new RpcReceiveHandler(__rpc_handler_1255276541), "SyncPlayerZoneRpc"); ((NetworkBehaviour)this).__registerRpc(4194194153u, new RpcReceiveHandler(__rpc_handler_4194194153), "SyncPlayerLookInputRpc"); ((NetworkBehaviour)this).__initializeRpcs(); } private static void __rpc_handler_1255276541(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_0085: 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) { NetworkObjectReference player = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe(ref player, default(ForNetworkSerializable)); 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, 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 { [HarmonyPatch] public static class FirstPersonViewCompatibility { [HarmonyPatch(typeof(v55VehicleController), "SetIgnitionKey")] [HarmonyPrefix] public static void v55VehicleController_Pre_SetCarKeyEffects(v55VehicleController __instance, ref bool localUseBodyHands) { if (LocalBodyViewController.LocalBodyShown) { localUseBodyHands = true; } } } [HarmonyPatch] public static class ImmersiveVisorCompatibility { [HarmonyPatch(typeof(VisorRainState), "LineCastForCeiling")] [HarmonyPrefix] public static bool VisorRainState_Pre_LineCastForCeiling(VisorRainState __instance, ref bool __result) { v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController)) { __result = true; return false; } return true; } } [HarmonyPatch] public static class LethalElementsCompatibility { public static bool IsIndoorLighting(PlayerControllerB playerScript) { if ((Object)(object)playerScript.currentAudioTrigger != (Object)null) { return playerScript.currentAudioTrigger.insideLighting; } return false; } [HarmonyPatch(typeof(PlayerEffectsManager), "SetPlayerTemperature")] [HarmonyPrefix] public static void PlayerEffectsManager_Pre_SetPlayerTemperature(PlayerEffectsManager __instance, float temperatureDelta) { if ((Object)(object)HeatwaveWeather.Instance == (Object)null || !((BaseWeather)HeatwaveWeather.Instance).IsActive) { return; } v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (!VehicleUtils.IsPlayerInTruckBounds(localPlayerController, truckController) && !VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController) && !VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController)) { return; } bool flag = VehicleUtils.IsTruckStorageEnclosed(truckController); bool flag2 = VehicleUtils.IsPlayerOnOutsideOfTruck(localPlayerController, truckController); bool flag3 = IsIndoorLighting(localPlayerController); if (VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController)) { PlayerEffectsManager.heatTransferRate = (flag3 ? 1f : (((VehicleController)truckController).windshieldBroken ? 0.9f : 0.2f)); } else if (VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController) && flag) { if (!flag3) { PlayerEffectsManager.heatTransferRate = 0.75f; } else { PlayerEffectsManager.heatTransferRate = 1f; } } else { PlayerEffectsManager.heatTransferRate = 1f; } if (flag2) { PlayerEffectsManager.heatTransferRate = 1f; } } [HarmonyPatch(typeof(v55VehicleController), "Start")] [HarmonyPostfix] public static void v55VehicleController_Post_Start(v55VehicleController __instance) { //IL_001f: 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)); } [HarmonyPatch(typeof(v55VehicleController), "FixedUpdate")] [HarmonyPostfix] public static void v55VehicleController_Post_FixedUpdate(v55VehicleController __instance) { if (SnowPatches.IsSnowActive()) { SnowTrackersManager.UpdateFootprintTracker((MonoBehaviour)(object)__instance, !__instance.allWheelsAirborne); } } [HarmonyPatch(typeof(SnowfallVFXManager), "Update")] [HarmonyPostfix] public static void SnowfallVFXManager_Post_Update_VFX() { v55VehicleController truckController = VehicleUtils.truckController; if (!((Object)(object)truckController == (Object)null)) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if ((VehicleUtils.IsPlayerInTruckBounds(localPlayerController, truckController) || VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController) || VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController)) && (VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController) || VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController))) { PlayerEffectsManager.isUnderSnow = false; SnowfallVFXManager.snowMovementHindranceMultiplier = 1f; } } } [HarmonyPatch(typeof(BlizzardWeather), "SetColdZoneState")] [HarmonyPrefix] public static bool BlizzardWeather_Pre_SetColdZoneState(BlizzardWeather __instance) { v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (VehicleUtils.IsPlayerInTruckBounds(localPlayerController, truckController) || VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController) || VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController)) { return false; } return true; } [HarmonyPatch(typeof(SnowfallWeather), "SetColdZoneState")] [HarmonyPrefix] public static bool SnowfallWeather_Pre_SetColdZoneState(SnowfallWeather __instance) { if ((Object)(object)BlizzardWeather.Instance == (Object)null) { return true; } v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (!VehicleUtils.IsPlayerInTruckBounds(localPlayerController, truckController) && !VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController) && !VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController)) { return true; } bool flag = VehicleUtils.IsTruckStorageEnclosed(truckController); bool flag2 = VehicleUtils.IsPlayerOnOutsideOfTruck(localPlayerController, truckController); bool flag3 = IsIndoorLighting(localPlayerController); if (VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController)) { PlayerEffectsManager.isInColdZone = IsWindAllowedVehicle(localPlayerController, truckController) && BlizzardWeather.Instance.isLocalPlayerInWind; return false; } if (VehicleUtils.IsPlayerInTruckStorage(localPlayerController, 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; } [HarmonyPatch(typeof(BlizzardWeather), "Update")] [HarmonyPrefix] public static bool BlizzardWeather_Pre_Update(BlizzardWeather __instance) { v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return true; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (!VehicleUtils.IsPlayerInTruckBounds(localPlayerController, truckController) && !VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController) && !VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController)) { return true; } bool flag = VehicleUtils.IsTruckStorageEnclosed(truckController); bool flag2 = VehicleUtils.IsPlayerOnOutsideOfTruck(localPlayerController, truckController); SnowfallWeather instance = SnowfallWeather.Instance; if (instance != null) { instance.Update(); } if (VehicleUtils.IsPlayerInTruckStorage(localPlayerController, truckController)) { PlayerEffectsManager.heatTransferRate = 0.75f; __instance.isPlayerInBlizzard = __instance.isLocalPlayerInWind && !VehicleUtils.IsTruckStorageEnclosed(truckController); } else if (VehicleUtils.IsPlayerSeatedInTruck(localPlayerController, truckController) || flag2) { PlayerEffectsManager.heatTransferRate = 1f; __instance.isPlayerInBlizzard = __instance.isLocalPlayerInWind; } return false; } public static bool IsWindAllowedVehicle(PlayerControllerB playerController, v55VehicleController truckController) { if (IsIndoorLighting(playerController)) { return false; } bool flag = VehicleUtils.IsTruckStorageEnclosed(truckController); bool flag2 = VehicleUtils.IsPlayerOnOutsideOfTruck(playerController, truckController); if (VehicleUtils.IsPlayerInTruckStorage(playerController, truckController) && !flag) { return true; } if (VehicleUtils.IsPlayerSeatedInTruck(playerController, truckController) || flag2) { return true; } return false; } [HarmonyPatch(typeof(HeatwavePatches), "CheckConditionsForHeatingStop")] [HarmonyPrefix] public static bool HeatwavePatches_Pre_CheckConditionsForHeatingStop(PlayerControllerB playerController, ref bool __result) { v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if (!VehicleUtils.IsPlayerInTruckBounds(playerController, truckController) && !VehicleUtils.IsPlayerSeatedInTruck(playerController, truckController) && !VehicleUtils.IsPlayerInTruckStorage(playerController, truckController)) { return true; } bool flag = VehicleUtils.IsTruckStorageEnclosed(truckController); bool flag2 = VehicleUtils.IsPlayerOnOutsideOfTruck(playerController, truckController); bool flag3 = IsIndoorLighting(playerController); if (VehicleUtils.IsPlayerInTruckStorage(playerController, truckController) && flag) { __result = true; } else { __result = flag3; } if (flag2) { __result = flag3; } return false; } [HarmonyPatch(typeof(HeatwavePatches), "CheckConditionsForHeatingPause")] [HarmonyPrefix] public static bool HeatwavePatches_Pre_CheckConditionsForHeatingPause(PlayerControllerB playerController, ref bool __result) { v55VehicleController truckController = VehicleUtils.truckController; if ((Object)(object)truckController == (Object)null) { return true; } if (!VehicleUtils.IsPlayerInTruckBounds(playerController, truckController) && !VehicleUtils.IsPlayerSeatedInTruck(playerController, truckController) && !VehicleUtils.IsPlayerInTruckStorage(playerController, truckController)) { return true; } __result = false; return false; } } [HarmonyPatch] public static class LethalMinCompatibility { [HarmonyPatch(typeof(PikminVehicleController), "InitializeReferences")] [HarmonyPrefix] public static bool PikminVehicleController_Pre_InitializeReferences(PikminVehicleController __instance) { //IL_0037: 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_008b: 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_00a1: 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; } [HarmonyPatch(typeof(v55VehicleCollisionTrigger), "OnTriggerEnter")] [HarmonyPrefix] public static bool v55VehicleCollisionTrigger_Pre_OnTriggerEnter(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.LogError($"Error in `v55VehicleCollisionTrigger.OnTriggerEnter`: {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 { } }