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.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using GameNetcodeStuff;
using HarmonyLib;
using LethalCompanyInputUtils.Api;
using LethalMin;
using Microsoft.CodeAnalysis;
using ScandalsTweaks.Patches;
using ScandalsTweaks.Utils;
using Unity.Netcode;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.InputSystem;
using UnityEngine.Rendering.HighDefinition;
using UnityEngine.Scripting.APIUpdating;
using VoxxWeatherPlugin.Patches;
using VoxxWeatherPlugin.Utils;
using VoxxWeatherPlugin.Weathers;
using Woecust.ImmersiveVisor;
using scandal.v55cruiser.NetcodePatcher;
using v55Cruiser;
using v55Cruiser.Behaviour;
using v55Cruiser.Compatibility;
using v55Cruiser.Patches;
using v55Cruiser.Utils;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: IgnoresAccessChecksTo("ImmersiveVisor")]
[assembly: IgnoresAccessChecksTo("NoteBoxz.LethalMin")]
[assembly: IgnoresAccessChecksTo("scandal.scandalstweaks")]
[assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")]
[assembly: IgnoresAccessChecksTo("voxx.LethalElementsPlugin")]
[assembly: AssemblyCompany("scandal.v55cruiser")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.1.9.0")]
[assembly: AssemblyInformationalVersion("1.1.9+9ca65b399502caf978de31f57e0dfb9b3cbfb6f1")]
[assembly: AssemblyProduct("v55Cruiser")]
[assembly: AssemblyTitle("scandal.v55cruiser")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.1.9.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: NetcodePatchedAssembly]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
public enum TruckVersionType
{
V55 = 1,
V56,
V70
}
public class v55VehicleCollisionTrigger : MonoBehaviour
{
public v55VehicleController mainScript = null;
public BoxCollider insideTruckNavMeshBounds = null;
public EnemyAI[] enemiesLastHit = null;
private float timeSinceHittingPlayer;
private float timeSinceHittingEnemy;
private int enemyIndex;
public void Start()
{
enemiesLastHit = (EnemyAI[])(object)new EnemyAI[3];
}
public void OnTriggerEnter(Collider other)
{
//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
//IL_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_0105: 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_0114: Unknown result type (might be due to invalid IL or missing references)
//IL_0119: 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_0125: Unknown result type (might be due to invalid IL or missing references)
//IL_0420: Unknown result type (might be due to invalid IL or missing references)
//IL_0426: Invalid comparison between Unknown and I4
//IL_0180: Unknown result type (might be due to invalid IL or missing references)
//IL_0190: Unknown result type (might be due to invalid IL or missing references)
//IL_0195: 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_01d8: Unknown result type (might be due to invalid IL or missing references)
//IL_0483: Unknown result type (might be due to invalid IL or missing references)
//IL_0494: Unknown result type (might be due to invalid IL or missing references)
//IL_049f: Unknown result type (might be due to invalid IL or missing references)
//IL_04a4: Unknown result type (might be due to invalid IL or missing references)
//IL_022f: 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_023c: Unknown result type (might be due to invalid IL or missing references)
//IL_04df: Unknown result type (might be due to invalid IL or missing references)
//IL_04e4: Unknown result type (might be due to invalid IL or missing references)
//IL_04f5: Unknown result type (might be due to invalid IL or missing references)
//IL_0349: 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_035f: Unknown result type (might be due to invalid IL or missing references)
//IL_0513: Unknown result type (might be due to invalid IL or missing references)
//IL_0518: Unknown result type (might be due to invalid IL or missing references)
//IL_0529: Unknown result type (might be due to invalid IL or missing references)
//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
//IL_0301: Unknown result type (might be due to invalid IL or missing references)
//IL_0306: Unknown result type (might be due to invalid IL or missing references)
//IL_05ce: Unknown result type (might be due to invalid IL or missing references)
//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
//IL_05e4: Unknown result type (might be due to invalid IL or missing references)
//IL_05e9: Unknown result type (might be due to invalid IL or missing references)
//IL_05eb: Unknown result type (might be due to invalid IL or missing references)
//IL_05ed: Unknown result type (might be due to invalid IL or missing references)
//IL_05ef: Unknown result type (might be due to invalid IL or missing references)
//IL_0602: Expected I4, but got Unknown
//IL_0613: Unknown result type (might be due to invalid IL or missing references)
//IL_0618: Unknown result type (might be due to invalid IL or missing references)
//IL_0620: Unknown result type (might be due to invalid IL or missing references)
//IL_0649: Unknown result type (might be due to invalid IL or missing references)
//IL_064e: Unknown result type (might be due to invalid IL or missing references)
//IL_0656: Unknown result type (might be due to invalid IL or missing references)
//IL_067f: Unknown result type (might be due to invalid IL or missing references)
//IL_0684: Unknown result type (might be due to invalid IL or missing references)
//IL_068c: 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);
((Component)other).TryGetComponent<PlayerControllerB>(ref val);
if ((Object)(object)val == (Object)null)
{
return;
}
Transform physicsTransform = ((VehicleController)mainScript).physicsRegion.physicsTransform;
if ((Object)(object)val.overridePhysicsParent == (Object)(object)physicsTransform || Time.realtimeSinceStartup - timeSinceHittingPlayer < 0.25f)
{
return;
}
float num = Mathf.Abs(((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
{
if (!((Component)other).gameObject.CompareTag("Enemy") || Time.realtimeSinceStartup - timeSinceHittingEnemy < 0.25f)
{
return;
}
EnemyAICollisionDetect val4 = default(EnemyAICollisionDetect);
((Component)other).TryGetComponent<EnemyAICollisionDetect>(ref val4);
if ((Object)(object)val4 == (Object)null || (Object)(object)val4.mainScript == (Object)null || val4.mainScript.isEnemyDead || (!val4.mainScript.enemyType.canDie && (int)val4.mainScript.enemyType.SizeLimit == 0))
{
return;
}
Object navMeshOwner = val4.mainScript.agent.navMeshOwner;
Behaviour val5 = (Behaviour)(object)((navMeshOwner is Behaviour) ? navMeshOwner : null);
if (((Object)(object)val5 != (Object)null && ((Component)val5).transform.IsChildOf(((Component)mainScript).transform)) || Vector3.Angle(((VehicleController)mainScript).averageVelocity, ((Component)val4.mainScript).transform.position - ((Component)this).transform.position) > 130f || (mainScript.liftGateOpen && (((Collider)insideTruckNavMeshBounds).ClosestPoint(((Component)val4.mainScript).transform.position) == ((Component)val4.mainScript).transform.position || ((Collider)insideTruckNavMeshBounds).ClosestPoint(val4.mainScript.agent.destination) == val4.mainScript.agent.destination)))
{
return;
}
bool dealDamage = false;
for (int i = 0; i < enemiesLastHit.Length; i++)
{
if ((Object)(object)enemiesLastHit[i] == (Object)(object)val4.mainScript && (Time.realtimeSinceStartup - timeSinceHittingEnemy < 0.6f || ((Vector3)(ref ((VehicleController)mainScript).averageVelocity)).magnitude < 4f))
{
dealDamage = true;
}
}
timeSinceHittingEnemy = Time.realtimeSinceStartup;
Vector3 position = ((Component)val4).transform.position;
bool flag = false;
NavSizeLimit sizeLimit = val4.mainScript.enemyType.SizeLimit;
NavSizeLimit val6 = sizeLimit;
switch ((int)val6)
{
case 0:
flag = mainScript.CarReactToObstacle(((VehicleController)mainScript).averageVelocity, position, ((VehicleController)mainScript).averageVelocity, (CarObstacleType)1, 1f, val4.mainScript, dealDamage);
break;
case 1:
flag = mainScript.CarReactToObstacle(((VehicleController)mainScript).averageVelocity, position, ((VehicleController)mainScript).averageVelocity, (CarObstacleType)1, 3f, val4.mainScript, dealDamage);
break;
case 2:
flag = mainScript.CarReactToObstacle(((VehicleController)mainScript).averageVelocity, position, ((VehicleController)mainScript).averageVelocity, (CarObstacleType)1, 2f, val4.mainScript, dealDamage);
break;
}
if (flag)
{
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 class v55VehicleController : VehicleController
{
[Header("Variety")]
public TruckVersionType truckType;
public v55InteriorType LHDInterior = null;
public v55InteriorType RHDInterior = null;
public v55InteriorType currentInterior = null;
public Transform v55HealthMeter = null;
public Transform v56HealthMeter = null;
public GameObject v55EngineBay = null;
public GameObject v56EngineBay = null;
public int interiorType;
public bool isInteriorRHD;
[Header("Vehicle Physics")]
public List<WheelCollider> wheels = null;
public v55VehicleCollisionTrigger collisionTrigger = null;
public Rigidbody playerPhysicsBody = null;
private WheelHit[] wheelHits = (WheelHit[])(object)new WheelHit[4];
public Vector3 previousVehiclePosition;
public bool inBetaMode;
public float steeringAngle;
public bool allWheelsAirborne;
private float timeSinceUntethered;
public float sidewaysSlip;
public float forwardsSlip;
public float wheelTorque;
public float wheelBrakeTorque = 2000f;
public float maxBrakingPower = 2000f;
public float frontWheelRPM;
public float backWheelRPM;
public float wheelRPM;
public bool hasDeliveredVehicle;
[Header("Drivetrain")]
public float forwardWheelSpeed;
public float reverseWheelSpeed;
[Header("Multiplayer")]
public Collider vehicleBounds = null;
public Collider storageCompartment = null;
public PlayerControllerB lastDriver = null;
public PlayerControllerB playerWhoShifted = null;
public Vector3 playerPositionOffset;
public Vector3 seatNodePositionOffset;
public Vector2 syncedMoveInputVector;
public float syncedPlayerSteeringAnim;
public float syncedWheelRotation;
public float syncedSteeringInput;
public float syncedFrontWheelRPM;
public float syncedBackWheelRPM;
public float syncedWheelRPM;
public float syncedEngineRPM;
public float syncedMotorTorque;
public float syncedBrakeTorque;
public int syncedCarHP;
public bool syncedDrivePedalPressed;
public bool syncedBrakePedalPressed;
public float tyreStress;
public bool wheelSlipping;
public float syncCarEffectsInterval;
public float syncWheelTorqueInterval;
public float syncCarDrivetrainInterval;
[Header("Effects")]
public GameObject[] disableOnDestroy = null;
public InteractTrigger pushTruckTrigger = null;
public Collider[] weatherEffectBlockers = null;
public ParticleSystem frontTireSparks = null;
public MeshRenderer leftBrakeMesh = null;
public MeshRenderer rightBrakeMesh = null;
public MeshRenderer backLeftBrakeMesh = null;
public MeshRenderer backRightBrakeMesh = null;
public AnimationCurve engineAudio1Curve = null;
public AnimationCurve engineAudio2Curve = null;
public GameObject destroyedTruckMesh_1 = null;
public GameObject windshieldMesh = null;
public GameObject carKeyInHand = null;
public MeshRenderer radarMapIcon = null;
public MeshRenderer radarMapDestroyedIcon = null;
public Animator ignitionAnimator = null;
public GameObject carKeyContainer = null;
public Transform ignitionKeyPosition = null;
private Transform leftHandServerItemTarget = null;
public MeshRenderer frontLeftDoorMesh = null;
public MeshRenderer frontRightDoorMesh = null;
public MeshRenderer steeringWheelMesh = null;
private Vector3 ignitionKeyScale = new Vector3(0.06f, 0.06f, 0.06f);
private Vector3 LHD_Pos_Local = new Vector3(0.0489f, 0.1371f, -0.1566f);
private Vector3 LHD_Pos_Server = new Vector3(0.0366f, 0.1023f, -0.1088f);
private Vector3 LHD_Rot_Local = new Vector3(-3.446f, 3.193f, 172.642f);
private Vector3 LHD_Rot_Server = new Vector3(-191.643f, 174.051f, -7.768005f);
private Vector3 RHD_Pos_Local = new Vector3(-0.01708288f, 0.1665026f, -0.1157278f);
private Vector3 RHD_Pos_Server = new Vector3(-0.0194879f, 0.1340649f, -0.1071167f);
private Vector3 RHD_Rot_Local = new Vector3(21.592f, -11.63f, -158.578f);
private Vector3 RHD_Rot_Server = new Vector3(-9.158f, -18.16f, -162.445f);
public float wheelRotSpeed;
public bool isCabLightOn;
public bool liftGateOpen;
public bool disableAnimations;
public bool inIgnitionAnimation;
public float playerSteeringWheelAnimFloat;
public float ignitionRotSpeed = 45f;
[Header("Audio")]
public AudioSource carKeySoundsAudio = null;
public AudioSource ejectorButtonAudio = null;
public AudioSource reverseWhineAudio = null;
public AudioSource verticalColumnAudio = null;
public AudioClip dashboardButton = null;
public AudioClip engineRev1 = null;
public AudioClip revEngineStart1 = null;
[Header("Radio")]
public AudioClip radio_BabyFace = null;
public float timeLastSyncedRadio;
public float radioPingTimestamp;
[Header("Materials")]
public Material destroyedTruckMaterial = null;
public Material greyLightOffMat = null;
public Material redLightOffMat = null;
public override void OnNetworkSpawn()
{
((NetworkBehaviour)this).OnNetworkSpawn();
if (!StartOfRound.Instance.inShipPhase && ((NetworkBehaviour)this).IsServer)
{
int interiorTypeRpc = 0;
bool value = UserConfig.TrueJank.Value;
bool value2 = UserConfig.BabyFaceRadio.Value;
if (UserConfig.RightHandedWheel.Value && !value)
{
interiorTypeRpc = new Random(StartOfRound.Instance.randomMapSeed).Next(0, 2);
}
SetInteriorTypeRpc(interiorTypeRpc);
if (value2)
{
AddBabyFaceRadioRpc();
}
SetTrueV55ModeRpc(value);
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void SetTrueV55ModeRpc(bool isFucked)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
//IL_00bf: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2704251898u, val2, val, (SendTo)6, (RpcDelivery)0);
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref isFucked, default(ForPrimitives));
((NetworkBehaviour)this).__endSendRpc(ref val3, 2704251898u, val2, val, (SendTo)6, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1)
{
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
SetTrueV55Mode(isFucked);
}
}
}
public void SetTrueV55Mode(bool isFucked)
{
//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: 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_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_0178: Unknown result type (might be due to invalid IL or missing references)
//IL_0189: Unknown result type (might be due to invalid IL or missing references)
//IL_0196: 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_01b0: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0064: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
inBetaMode = isFucked;
if (inBetaMode)
{
JointSpring val = default(JointSpring);
val.spring = 2700f;
val.damper = 500f;
val.targetPosition = 0.5f;
JointSpring suspensionSpring = val;
base.FrontLeftWheel.suspensionSpring = suspensionSpring;
base.FrontRightWheel.suspensionSpring = suspensionSpring;
base.BackRightWheel.suspensionSpring = suspensionSpring;
base.BackLeftWheel.suspensionSpring = suspensionSpring;
base.FrontLeftWheel.sprungMass = 8.96825f;
base.FrontRightWheel.sprungMass = 8.96825f;
base.BackLeftWheel.sprungMass = 33.20035f;
base.BackRightWheel.sprungMass = 33.20035f;
}
else
{
JointSpring val = default(JointSpring);
val.spring = 40000f;
val.damper = 750f;
val.targetPosition = 0.88f;
JointSpring suspensionSpring = val;
((Component)base.FrontLeftWheel).transform.localPosition = new Vector3(-1.69f, 0f, 0f);
((Component)base.FrontRightWheel).transform.localPosition = new Vector3(1.69f, 0f, 0f);
((Component)base.BackLeftWheel).transform.localPosition = new Vector3(-1.69f, 0f, 0f);
((Component)base.BackRightWheel).transform.localPosition = new Vector3(1.69f, 0f, 0f);
base.FrontLeftWheel.suspensionSpring = suspensionSpring;
base.FrontRightWheel.suspensionSpring = suspensionSpring;
base.BackRightWheel.suspensionSpring = suspensionSpring;
base.BackLeftWheel.suspensionSpring = suspensionSpring;
base.FrontLeftWheel.sprungMass = 54.4f;
base.FrontRightWheel.sprungMass = 54.4f;
base.BackLeftWheel.sprungMass = 147.4f;
base.BackRightWheel.sprungMass = 147.4f;
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void SetInteriorTypeRpc(int carInteriorType)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2830820490u, val2, val, (SendTo)6, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val3, carInteriorType);
((NetworkBehaviour)this).__endSendRpc(ref val3, 2830820490u, val2, val, (SendTo)6, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1)
{
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
SetInteriorType(carInteriorType);
}
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void AddBabyFaceRadioRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_00a4: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0085: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(704329810u, val2, val, (SendTo)6, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendRpc(ref val3, 704329810u, val2, val, (SendTo)6, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1)
{
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
base.radioClips = CollectionExtensions.AddToArray<AudioClip>(base.radioClips, radio_BabyFace);
}
}
}
public void SetInteriorType(int carInteriorType)
{
//IL_0062: 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_0081: 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_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_00c6: 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_0101: 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_0131: Unknown result type (might be due to invalid IL or missing references)
//IL_0146: Unknown result type (might be due to invalid IL or missing references)
//IL_0150: 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_018b: Unknown result type (might be due to invalid IL or missing references)
//IL_0195: Unknown result type (might be due to invalid IL or missing references)
//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
//IL_01da: 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_024f: Unknown result type (might be due to invalid IL or missing references)
//IL_0264: Unknown result type (might be due to invalid IL or missing references)
//IL_026e: Unknown result type (might be due to invalid IL or missing references)
//IL_0294: 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_02b3: Unknown result type (might be due to invalid IL or missing references)
//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
//IL_02ee: Unknown result type (might be due to invalid IL or missing references)
//IL_02f8: 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_0333: Unknown result type (might be due to invalid IL or missing references)
//IL_033d: Unknown result type (might be due to invalid IL or missing references)
//IL_0363: Unknown result type (might be due to invalid IL or missing references)
//IL_0378: Unknown result type (might be due to invalid IL or missing references)
//IL_0382: 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_03bd: Unknown result type (might be due to invalid IL or missing references)
//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
//IL_03ec: Unknown result type (might be due to invalid IL or missing references)
interiorType = carInteriorType;
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)carKeySoundsAudio).transform.localPosition = new Vector3(-0.5525f, ((Component)carKeySoundsAudio).transform.localPosition.y, ((Component)carKeySoundsAudio).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);
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)carKeySoundsAudio).transform.localPosition = new Vector3(0.5525f, ((Component)carKeySoundsAudio).transform.localPosition.y, ((Component)carKeySoundsAudio).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);
break;
}
v55InteriorType v55InteriorType = currentInterior;
base.gearStickAnimator = v55InteriorType.gearStickAnimator;
base.driverSeatTrigger = v55InteriorType.driverSeatTrigger;
base.passengerSeatTrigger = v55InteriorType.passengerSeatTrigger;
base.driverSeatSpringAnimator = v55InteriorType.driverSeatSpringAnimator;
if (StartOfRound.Instance.inShipPhase)
{
base.hasBeenSpawned = true;
}
}
public void Awake()
{
//IL_0089: 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_009a: 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_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_00b0: Unknown result type (might be due to invalid IL or missing references)
//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
//IL_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_00e3: 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)
//IL_010a: Unknown result type (might be due to invalid IL or missing references)
//IL_010f: Unknown result type (might be due to invalid IL or missing references)
//IL_0130: Unknown result type (might be due to invalid IL or missing references)
//IL_0136: Unknown result type (might be due to invalid IL or missing references)
//IL_013b: Unknown result type (might be due to invalid IL or missing references)
//IL_015c: 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_0167: Unknown result type (might be due to invalid IL or missing references)
base.mainRigidbody.ResetCenterOfMass();
base.mainRigidbody.automaticCenterOfMass = true;
base.ragdollPhysicsBody.interpolation = (RigidbodyInterpolation)1;
base.windwiperPhysicsBody1.interpolation = (RigidbodyInterpolation)1;
base.windwiperPhysicsBody2.interpolation = (RigidbodyInterpolation)1;
playerPhysicsBody.interpolation = (RigidbodyInterpolation)1;
((VehicleController)this).Awake();
((Component)playerPhysicsBody).transform.SetParent(RoundManager.Instance.VehiclesContainer);
References.truckController = this;
base.physicsRegion.priority = 1;
base.syncedPosition = ((Component)this).transform.position;
base.syncedRotation = ((Component)this).transform.rotation;
seatNodePositionOffset = Vector3.zero;
playerPositionOffset = Vector3.zero;
SetFrontCabinLightOn(setOn: false);
Transform transform = ((Component)LHDInterior.driverSeatTrigger.playerPositionNode).transform;
transform.localPosition += seatNodePositionOffset;
Transform transform2 = ((Component)LHDInterior.passengerSeatTrigger.playerPositionNode).transform;
transform2.localPosition += seatNodePositionOffset;
Transform transform3 = ((Component)RHDInterior.driverSeatTrigger.playerPositionNode).transform;
transform3.localPosition += seatNodePositionOffset;
Transform transform4 = ((Component)RHDInterior.passengerSeatTrigger.playerPositionNode).transform;
transform4.localPosition += seatNodePositionOffset;
base.backDoorOpen = true;
forwardWheelSpeed = 10000f;
reverseWheelSpeed = -10000f;
SetTruckStats();
}
private void SetTruckStats()
{
//IL_0003: 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_014a: 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_016c: 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_02f4: Unknown result type (might be due to invalid IL or missing references)
//IL_02f9: 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)
base.gear = (CarGearShift)3;
base.MaxEngineRPM = 300f;
base.MinEngineRPM = 100f;
base.engineIntensityPercentage = 180f;
base.EngineTorque = 1100f;
base.carAcceleration = 250f;
base.idleSpeed = 15f;
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;
wheelBrakeTorque = maxBrakingPower;
base.pushForceMultiplier = 27f;
base.pushVerticalOffsetAmount = 1f;
base.steeringWheelTurnSpeed = 4f;
base.torqueForce = 2.5f;
SetWheelFriction();
base.FrontLeftWheel.brakeTorque = maxBrakingPower;
base.FrontRightWheel.brakeTorque = maxBrakingPower;
base.BackLeftWheel.brakeTorque = maxBrakingPower;
base.BackRightWheel.brakeTorque = maxBrakingPower;
base.FrontLeftWheel.center = Vector3.zero;
base.FrontRightWheel.center = Vector3.zero;
base.BackRightWheel.center = Vector3.zero;
base.BackLeftWheel.center = Vector3.zero;
base.FrontLeftWheel.wheelDampingRate = 0.8f;
base.FrontRightWheel.wheelDampingRate = 0.8f;
base.BackRightWheel.wheelDampingRate = 0.8f;
base.BackLeftWheel.wheelDampingRate = 0.8f;
base.FrontLeftWheel.mass = 25f;
base.FrontRightWheel.mass = 25f;
base.BackLeftWheel.mass = 25f;
base.BackRightWheel.mass = 25f;
base.FrontLeftWheel.suspensionDistance = 0.4f;
base.FrontRightWheel.suspensionDistance = 0.4f;
base.BackRightWheel.suspensionDistance = 0.4f;
base.BackLeftWheel.suspensionDistance = 0.4f;
base.FrontLeftWheel.forceAppPointDistance = -0.01f;
base.FrontRightWheel.forceAppPointDistance = -0.01f;
base.BackRightWheel.forceAppPointDistance = -0.01f;
base.BackLeftWheel.forceAppPointDistance = -0.01f;
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;
truckType = TruckVersionType.V55;
v55EngineBay.SetActive(truckType == TruckVersionType.V55);
v56EngineBay.SetActive(truckType != TruckVersionType.V55);
((Component)v55HealthMeter).gameObject.SetActive(truckType == TruckVersionType.V55);
((Component)v56HealthMeter).gameObject.SetActive(truckType != TruckVersionType.V55);
((Component)base.turboMeter).gameObject.SetActive(truckType != TruckVersionType.V55);
if (truckType == TruckVersionType.V55)
{
base.healthMeter = v55HealthMeter;
}
else
{
base.healthMeter = v56HealthMeter;
}
}
private void SetWheelFriction()
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
//IL_0084: Unknown result type (might be due to invalid IL or missing references)
//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
//IL_00df: Unknown result type (might be due to invalid IL or missing references)
WheelFrictionCurve val = default(WheelFrictionCurve);
((WheelFrictionCurve)(ref val)).extremumSlip = 0.2f;
((WheelFrictionCurve)(ref val)).extremumValue = 1f;
((WheelFrictionCurve)(ref val)).asymptoteSlip = 0.8f;
((WheelFrictionCurve)(ref val)).asymptoteValue = 0.4f;
((WheelFrictionCurve)(ref val)).stiffness = 2.7f;
base.FrontLeftWheel.forwardFriction = val;
base.FrontRightWheel.forwardFriction = val;
((WheelFrictionCurve)(ref val)).stiffness = 0.75f;
base.BackLeftWheel.forwardFriction = val;
base.BackRightWheel.forwardFriction = val;
((WheelFrictionCurve)(ref val)).stiffness = 0.8f;
((WheelFrictionCurve)(ref val)).asymptoteValue = 0.75f;
((WheelFrictionCurve)(ref val)).extremumSlip = 0.7f;
base.FrontLeftWheel.sidewaysFriction = val;
base.FrontRightWheel.sidewaysFriction = val;
base.BackLeftWheel.sidewaysFriction = val;
base.BackRightWheel.sidewaysFriction = val;
}
public void Start()
{
//IL_0091: 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_00aa: 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_00cf: 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)
((MonoBehaviour)this).StartCoroutine(SetCarRainCollisions());
base.currentRadioClip = new Random(StartOfRound.Instance.randomMapSeed).Next(0, base.radioClips.Length);
base.radioAudio.clip = base.radioClips[base.currentRadioClip];
base.decals = (DecalProjector[])(object)new DecalProjector[24];
if (StartOfRound.Instance.inShipPhase)
{
base.loadedVehicleFromSave = true;
base.mainRigidbody.isKinematic = true;
((Component)this).transform.position = StartOfRound.Instance.magnetPoint.position + StartOfRound.Instance.magnetPoint.forward * 7f;
((Component)this).transform.rotation = Quaternion.Euler(new Vector3(0f, 90f, 0f));
base.magnetedToShip = true;
base.inDropshipAnimation = false;
hasDeliveredVehicle = true;
base.hasBeenSpawned = true;
StartMagneting();
}
}
public IEnumerator SetCarRainCollisions()
{
yield return (object)new WaitForSeconds(4f);
ParticleSystem[] particleTriggers = (ParticleSystem[])(object)new ParticleSystem[9]
{
GlobalReferences.rainParticles,
GlobalReferences.rainHitParticles,
GlobalReferences.stormyRainParticles,
GlobalReferences.stormyRainHitParticles,
GlobalReferences.wesleyHurricaneRainParticles,
GlobalReferences.wesleyHurricaneRainHitParticles,
GlobalReferences.wesleyHurricaneSandParticles,
GlobalReferences.wesleyForsakenRainParticles,
GlobalReferences.wesleyForsakenRainHitParticles
};
for (int i = 0; i < particleTriggers.Length; i++)
{
if ((Object)(object)particleTriggers[i] == (Object)null)
{
Plugin.Logger.LogDebug((object)"weather particle or trigger is null!");
continue;
}
TriggerModule trigger = particleTriggers[i].trigger;
for (int j = 0; j < weatherEffectBlockers.Length; j++)
{
int index = ((TriggerModule)(ref trigger)).colliderCount + j;
((TriggerModule)(ref trigger)).SetCollider(index, (Component)(object)weatherEffectBlockers[j]);
}
trigger = default(TriggerModule);
}
}
public void SendClientSyncData()
{
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
//IL_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_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: 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)
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, UserConfig.BabyFaceRadio.Value);
SetTrueV55ModeRpc(UserConfig.TrueJank.Value);
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void SyncClientDataRpc(int carInteriorType, bool baby)
{
//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)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2819297796u, val2, val, (SendTo)3, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val3, carInteriorType);
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref baby, default(ForPrimitives));
((NetworkBehaviour)this).__endSendRpc(ref val3, 2819297796u, val2, val, (SendTo)3, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1)
{
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
SetInteriorType(carInteriorType);
if (baby)
{
base.radioClips = CollectionExtensions.AddToArray<AudioClip>(base.radioClips, radio_BabyFace);
}
}
}
public void SetBackDoorOpen(bool open)
{
liftGateOpen = open;
}
private void SetFrontCabinLightOn(bool setOn)
{
isCabLightOn = setOn;
Material material = (setOn ? base.headlightsOnMat : base.headlightsOffMat);
base.frontCabinLightContainer.SetActive(setOn);
((Renderer)base.frontCabinLightMesh).material = material;
}
public void StartTryCarIgnition()
{
if (base.localPlayerInControl && !base.ignitionStarted)
{
if (base.keyIgnitionCoroutine != null)
{
((MonoBehaviour)this).StopCoroutine(base.keyIgnitionCoroutine);
base.keyIgnitionCoroutine = null;
}
disableAnimations = true;
inIgnitionAnimation = true;
base.keyIgnitionCoroutine = ((MonoBehaviour)this).StartCoroutine(TryIgnition(isLocalDriver: true));
TryIgnitionRpc(base.keyIsInIgnition, isCabLightOn);
}
}
private IEnumerator TryIgnition(bool isLocalDriver)
{
if ((Object)(object)base.currentDriver == (Object)null)
{
base.keyIgnitionCoroutine = null;
yield break;
}
if (base.keyIsInIgnition)
{
SetKeyIgnitionValues(keyInHand: false, keyInSlot: true);
if (base.currentDriver.playerBodyAnimator.GetInteger("SA_CarAnim") == 3)
{
base.currentDriver.playerBodyAnimator.SetInteger("SA_CarAnim", 2);
}
else
{
base.currentDriver.playerBodyAnimator.SetInteger("SA_CarAnim", 12);
}
int animIndex = base.currentDriver.playerBodyAnimator.GetInteger("SA_CarAnim");
ignitionAnimator.SetInteger("SAIgnition_Anim", animIndex);
if (inBetaMode)
{
yield return (object)new WaitForSeconds(0.035f);
}
else
{
yield return (object)new WaitForSeconds(0.02f);
}
carKeySoundsAudio.PlayOneShot(base.twistKey);
SetKeyIgnitionValues(keyInHand: true, keyInSlot: true);
yield return (object)new WaitForSeconds(0.1467f);
SetKeyIgnitionValues(keyInHand: true, keyInSlot: true);
}
else
{
PlayerControllerB currentDriver = base.currentDriver;
if (currentDriver != null)
{
currentDriver.playerBodyAnimator.SetInteger("SA_CarAnim", 2);
}
ignitionAnimator.SetInteger("SAIgnition_Anim", 2);
SetKeyIgnitionValues(keyInHand: true, keyInSlot: false);
if (inBetaMode)
{
yield return (object)new WaitForSeconds(0.66f);
carKeySoundsAudio.PlayOneShot(base.insertKey);
SetKeyIgnitionValues(keyInHand: true, keyInSlot: false);
yield return (object)new WaitForSeconds(0.2f);
carKeySoundsAudio.PlayOneShot(base.twistKey);
SetKeyIgnitionValues(keyInHand: true, keyInSlot: false);
yield return (object)new WaitForSeconds(0.1f);
}
else
{
yield return (object)new WaitForSeconds(0.6f);
carKeySoundsAudio.PlayOneShot(base.insertKey);
SetKeyIgnitionValues(keyInHand: true, keyInSlot: true);
yield return (object)new WaitForSeconds(0.2f);
carKeySoundsAudio.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)
{
disableAnimations = false;
inIgnitionAnimation = false;
PlayerControllerB currentDriver2 = base.currentDriver;
if (currentDriver2 != null)
{
currentDriver2.playerBodyAnimator.SetInteger("SA_CarAnim", 1);
}
SetKeyIgnitionValues(keyInHand: false, keyInSlot: true);
SetIgnition(started: true, cabLightOn: true);
SetFrontCabinLightOn(base.keyIsInIgnition);
CancelIgnitionAnimation(ignitionOn: true, setIgnitionAnim: true);
StartIgnitionRpc();
}
else
{
base.chanceToStartIgnition += 15f;
base.chanceToStartIgnition = Mathf.Clamp(base.chanceToStartIgnition, 0f, 99f);
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void TryIgnitionRpc(bool setKeyInSlot, bool cabLightActive)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
//IL_00da: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_009d: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(2843149083u, val2, val, (SendTo)5, (RpcDelivery)0);
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref setKeyInSlot, default(ForPrimitives));
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref cabLightActive, default(ForPrimitives));
((NetworkBehaviour)this).__endSendRpc(ref val3, 2843149083u, val2, val, (SendTo)5, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
return;
}
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
if (!base.ignitionStarted)
{
if (base.keyIgnitionCoroutine != null)
{
((MonoBehaviour)this).StopCoroutine(base.keyIgnitionCoroutine);
base.keyIgnitionCoroutine = null;
}
disableAnimations = true;
inIgnitionAnimation = true;
SetKeyIgnitionValues(keyInHand: false, setKeyInSlot);
if (!isCabLightOn && cabLightActive)
{
SetFrontCabinLightOn(cabLightActive);
}
base.keyIgnitionCoroutine = ((MonoBehaviour)this).StartCoroutine(TryIgnition(isLocalDriver: false));
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void TryStartIgnitionRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_00a4: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0085: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(41763978u, val2, val, (SendTo)5, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendRpc(ref val3, 41763978u, val2, val, (SendTo)5, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1)
{
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
SetKeyIgnitionValues(keyInHand: true, keyInSlot: true);
SetFrontCabinLightOn(base.keyIsInIgnition);
PlayIgnitionAudio();
}
}
}
public void PlayIgnitionAudio()
{
if (inBetaMode)
{
base.engineAudio1.clip = base.revEngineStart;
base.engineAudio1.volume = 0.7f;
base.engineAudio1.PlayOneShot(engineRev1);
base.carEngine1AudioActive = true;
return;
}
base.engineAudio1.Stop();
base.engineAudio1.clip = revEngineStart1;
base.engineAudio1.volume = 0.7f;
if ((Object)(object)base.engineAudio1.clip == (Object)(object)revEngineStart1)
{
base.engineAudio1.PlayOneShot(base.engineRev);
}
base.carEngine1AudioActive = true;
if ((Object)(object)base.engineAudio1.clip == (Object)(object)revEngineStart1)
{
base.engineAudio1.pitch = 1f;
}
}
public void CancelTryCarIgnition()
{
if (base.localPlayerInControl && !base.ignitionStarted)
{
CancelIgnitionAnimation(ignitionOn: false, setIgnitionAnim: false);
disableAnimations = true;
inIgnitionAnimation = false;
if (GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.GetInteger("SA_CarAnim") == 2 && base.keyIsInIgnition)
{
GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger("SA_CarAnim", 3);
}
else if (GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.GetInteger("SA_CarAnim") == 12)
{
GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger("SA_CarAnim", 3);
}
else
{
GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger("SA_CarAnim", 0);
}
int integer = base.currentDriver.playerBodyAnimator.GetInteger("SA_CarAnim");
ignitionAnimator.SetInteger("SAIgnition_Anim", integer);
CancelTryIgnitionRpc(base.keyIsInIgnition, isCabLightOn, integer);
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void CancelTryIgnitionRpc(bool setKeyInSlot, bool cabLightActive, int currentAnimIndex)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
//IL_00e7: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_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_00c4: Unknown result type (might be due to invalid IL or missing references)
//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(864949164u, val2, val, (SendTo)5, (RpcDelivery)0);
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref setKeyInSlot, default(ForPrimitives));
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref cabLightActive, default(ForPrimitives));
BytePacker.WriteValueBitPacked(val3, currentAnimIndex);
((NetworkBehaviour)this).__endSendRpc(ref val3, 864949164u, val2, val, (SendTo)5, (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("SA_CarAnim", currentAnimIndex);
}
ignitionAnimator.SetInteger("SAIgnition_Anim", currentAnimIndex);
if (!inBetaMode && setKeyInSlot && !base.keyIsInIgnition)
{
carKeySoundsAudio.PlayOneShot(base.insertKey);
}
SetKeyIgnitionValues(keyInHand: false, setKeyInSlot);
if (setKeyInSlot && isCabLightOn != cabLightActive)
{
SetFrontCabinLightOn(cabLightActive);
}
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void StartIgnitionRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_00a4: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0085: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3842753156u, val2, val, (SendTo)5, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendRpc(ref val3, 3842753156u, val2, val, (SendTo)5, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1)
{
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
disableAnimations = false;
inIgnitionAnimation = false;
PlayerControllerB currentDriver = base.currentDriver;
if (currentDriver != null)
{
currentDriver.playerBodyAnimator.SetInteger("SA_CarAnim", 1);
}
SetKeyIgnitionValues(keyInHand: false, keyInSlot: true);
SetIgnition(started: true, cabLightOn: true);
SetFrontCabinLightOn(base.keyIsInIgnition);
CancelIgnitionAnimation(ignitionOn: true, setIgnitionAnim: true);
}
}
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)
{
if (base.keyIgnitionCoroutine != null)
{
((MonoBehaviour)this).StopCoroutine(base.keyIgnitionCoroutine);
base.keyIgnitionCoroutine = null;
}
base.keyIgnitionCoroutine = ((MonoBehaviour)this).StartCoroutine(RemoveKey());
base.chanceToStartIgnition = 20f;
RemoveKeyFromIgnitionRpc();
}
}
private IEnumerator RemoveKey()
{
disableAnimations = true;
inIgnitionAnimation = false;
PlayerControllerB currentDriver = base.currentDriver;
if (currentDriver != null)
{
currentDriver.playerBodyAnimator.SetInteger("SA_CarAnim", 6);
}
ignitionAnimator.SetInteger("SAIgnition_Anim", 6);
yield return (object)new WaitForSeconds(0.26f);
SetKeyIgnitionValues(keyInHand: true, keyInSlot: false);
carKeySoundsAudio.PlayOneShot(base.removeKey);
SetIgnition(started: false, cabLightOn: false);
yield return (object)new WaitForSeconds(0.73f);
SetKeyIgnitionValues(keyInHand: false, keyInSlot: false);
base.keyIgnitionCoroutine = null;
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void RemoveKeyFromIgnitionRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_00a4: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0085: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(488072872u, val2, val, (SendTo)5, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendRpc(ref val3, 488072872u, val2, val, (SendTo)5, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
return;
}
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
if (base.ignitionStarted)
{
if (base.keyIgnitionCoroutine != null)
{
((MonoBehaviour)this).StopCoroutine(base.keyIgnitionCoroutine);
base.keyIgnitionCoroutine = null;
}
base.keyIgnitionCoroutine = ((MonoBehaviour)this).StartCoroutine(RemoveKey());
}
}
public void CancelIgnitionAnimation(bool ignitionOn, bool setIgnitionAnim)
{
if (base.keyIgnitionCoroutine != null)
{
((MonoBehaviour)this).StopCoroutine(base.keyIgnitionCoroutine);
base.keyIgnitionCoroutine = null;
}
base.carEngine1AudioActive = ignitionOn;
base.keyIsInDriverHand = false;
if (setIgnitionAnim)
{
ignitionAnimator.SetInteger("SAIgnition_Anim", ignitionOn ? 1 : 0);
}
}
public void SetKeyIgnitionValues(bool keyInHand, bool keyInSlot)
{
base.keyIsInDriverHand = keyInHand;
base.keyIsInIgnition = keyInSlot;
}
public void ResetTruckVelocityTimer()
{
if (((Vector3)(ref base.averageVelocity)).magnitude < 3f)
{
base.limitTruckVelocityTimer = 0.7f;
}
}
public void SetTriggerHoverTip(InteractTrigger trigger, string tip)
{
trigger.hoverTip = tip;
}
public void SetDriverInCar()
{
if (base.hasBeenSpawned && !base.carDestroyed && !Object.op_Implicit((Object)(object)GameNetworkManager.Instance.localPlayerController.inAnimationWithEnemy) && !GameNetworkManager.Instance.localPlayerController.inVehicleAnimation)
{
if ((Object)(object)base.currentDriver != (Object)null)
{
GameNetworkManager.Instance.localPlayerController.CancelSpecialTriggerAnimations();
HUDManager.Instance.DisplayTip("Seat occupied", "You cannot enter an occupied seat! aborting!", false, false, "LC_Tip1");
}
else
{
SetDriverInCarServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId);
}
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void SetDriverInCarServerRpc(int playerId)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3818516466u, val2, val, (SendTo)2, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val3, playerId);
((NetworkBehaviour)this).__endSendRpc(ref val3, 3818516466u, val2, val, (SendTo)2, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1)
{
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
PlayerControllerB val4 = StartOfRound.Instance.allPlayerScripts[playerId];
if ((Object)(object)val4 == (Object)null || val4.isPlayerDead || !val4.isPlayerControlled || (Object)(object)base.currentDriver != (Object)null)
{
CancelSetPlayerInVehicleClientRpc(playerId);
return;
}
base.currentDriver = StartOfRound.Instance.allPlayerScripts[playerId];
((NetworkBehaviour)this).NetworkObject.ChangeOwnership(StartOfRound.Instance.allPlayerScripts[playerId].actualClientId);
SetDriverInCarOwnerRpc();
SetDriverInCarClientsRpc(playerId);
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void SetDriverInCarOwnerRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_00a4: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0085: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1926889168u, val2, val, (SendTo)0, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendRpc(ref val3, 1926889168u, val2, val, (SendTo)0, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1)
{
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
PlayerUtils.disableAnimationSync = true;
SetVehicleCollisionForPlayer(setEnabled: false, GameNetworkManager.Instance.localPlayerController);
InteractTriggerPatches.specialInteractCoroutine = ((MonoBehaviour)this).StartCoroutine(InteractTriggerPatches.SpecialTruckInteractAnimation(base.driverSeatTrigger, GameNetworkManager.Instance.localPlayerController, this, currentInterior.driverSeat));
ActivateControl();
InteractTrigger trigger = (isInteriorRHD ? base.passengerSideDoorTrigger : base.driverSideDoorTrigger);
AnimatedObjectTrigger val4 = (isInteriorRHD ? base.passengerSideDoor : base.driverSideDoor);
SetTriggerHoverTip(trigger, "Exit : [LMB]");
base.startKeyIgnitionTrigger.GetComponent<InteractTrigger>().isBeingHeldByPlayer = false;
base.removeKeyIgnitionTrigger.GetComponent<InteractTrigger>().isBeingHeldByPlayer = false;
GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetFloat("animationSpeed", 0.5f);
playerSteeringWheelAnimFloat = 0.5f;
syncedPlayerSteeringAnim = 0.5f;
if (base.keyIsInIgnition)
{
GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger("SA_CarAnim", 0);
}
if (base.ignitionStarted)
{
GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger("SA_CarAnim", 1);
}
if (val4.boolValue)
{
val4.TriggerAnimation(GameNetworkManager.Instance.localPlayerController);
}
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void SetDriverInCarClientsRpc(int playerId)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3473842934u, val2, val, (SendTo)1, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val3, playerId);
((NetworkBehaviour)this).__endSendRpc(ref val3, 3473842934u, val2, val, (SendTo)1, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1)
{
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
base.currentDriver = StartOfRound.Instance.allPlayerScripts[playerId];
SetVehicleCollisionForPlayer(setEnabled: false, base.currentDriver);
base.startKeyIgnitionTrigger.GetComponent<InteractTrigger>().isBeingHeldByPlayer = false;
base.removeKeyIgnitionTrigger.GetComponent<InteractTrigger>().isBeingHeldByPlayer = false;
currentInterior.driverSeat.ReplacePlayerAnimator(StartOfRound.Instance.allPlayerScripts[playerId], isLocalPlayer: false, base.driverSeatTrigger);
base.currentDriver.playerBodyAnimator.SetFloat("animationSpeed", 0.5f);
playerSteeringWheelAnimFloat = 0.5f;
syncedPlayerSteeringAnim = 0.5f;
if (base.keyIsInIgnition)
{
base.currentDriver.playerBodyAnimator.SetInteger("SA_CarAnim", 0);
}
if (base.ignitionStarted)
{
base.currentDriver.playerBodyAnimator.SetInteger("SA_CarAnim", 1);
}
}
}
public void OnDriverExit()
{
//IL_0142: Unknown result type (might be due to invalid IL or missing references)
//IL_0147: Unknown result type (might be due to invalid IL or missing references)
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_0158: Unknown result type (might be due to invalid IL or missing references)
//IL_0174: 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_01ae: Unknown result type (might be due to invalid IL or missing references)
//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
if (((NetworkBehaviour)this).IsSpawned && !((Object)(object)((NetworkBehaviour)this).NetworkManager == (Object)null) && ((NetworkBehaviour)this).NetworkManager.IsListening)
{
PlayerUtils.disableAnimationSync = false;
base.localPlayerInControl = false;
DisableVehicleCollisionForAllPlayers();
InteractTrigger trigger = (isInteriorRHD ? base.passengerSideDoorTrigger : base.driverSideDoorTrigger);
SetTriggerHoverTip(trigger, "Use door : [LMB]");
disableAnimations = !base.ignitionStarted;
inIgnitionAnimation = false;
base.startKeyIgnitionTrigger.GetComponent<InteractTrigger>().isBeingHeldByPlayer = false;
base.removeKeyIgnitionTrigger.GetComponent<InteractTrigger>().isBeingHeldByPlayer = false;
GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger("SA_CarAnim", 0);
PlayerUtils.ResetHUDToolTips(GameNetworkManager.Instance.localPlayerController);
if ((Object)(object)base.currentDriver != (Object)(object)GameNetworkManager.Instance.localPlayerController)
{
HUDManager.Instance.DisplayTip("Err?", "This state should not occur! aborting!", false, false, "LC_Tip1");
return;
}
DisableControl();
CancelIgnitionAnimation(base.ignitionStarted, setIgnitionAnim: true);
SetIgnition(base.ignitionStarted, isCabLightOn);
base.chanceToStartIgnition = 20f;
base.syncedPosition = ((Component)this).transform.position;
base.syncedRotation = ((Component)this).transform.rotation;
OnDriverExitServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId, ((Component)this).transform.position, ((Component)this).transform.rotation, base.steeringAnimValue, base.drivePedalPressed, base.brakePedalPressed);
OnDriverExitRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId, base.syncedPosition, base.syncedRotation, base.ignitionStarted, base.keyIsInIgnition, base.drivePedalPressed, base.brakePedalPressed, isCabLightOn);
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void OnDriverExitServerRpc(int playerId, Vector3 carLocation, Quaternion carRotation, float steeringInput, bool gasFloored, bool brakeFloored)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0112: Unknown result type (might be due to invalid IL or missing references)
//IL_011c: 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_00f9: 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_012b: 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_015c: 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_0163: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(4191783025u, val2, val, (SendTo)2, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val3, playerId);
((FastBufferWriter)(ref val3)).WriteValueSafe(ref carLocation);
((FastBufferWriter)(ref val3)).WriteValueSafe(ref carRotation);
((FastBufferWriter)(ref val3)).WriteValueSafe<float>(ref steeringInput, default(ForPrimitives));
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref gasFloored, default(ForPrimitives));
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref brakeFloored, default(ForPrimitives));
((NetworkBehaviour)this).__endSendRpc(ref val3, 4191783025u, val2, val, (SendTo)2, (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) && val4.isPlayerControlled)
{
base.syncedPosition = carLocation;
base.syncedRotation = carRotation;
if (inBetaMode)
{
base.steeringAnimValue = steeringInput;
}
syncedDrivePedalPressed = gasFloored;
syncedBrakePedalPressed = brakeFloored;
base.drivePedalPressed = gasFloored;
base.brakePedalPressed = brakeFloored;
base.currentDriver = null;
((NetworkBehaviour)this).NetworkObject.ChangeOwnership(StartOfRound.Instance.allPlayerScripts[0].actualClientId);
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void OnDriverExitRpc(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_0194: Unknown result type (might be due to invalid IL or missing references)
//IL_0195: Unknown result type (might be due to invalid IL or missing references)
//IL_019b: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(4161890078u, val2, val, (SendTo)5, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val3, playerId);
((FastBufferWriter)(ref val3)).WriteValueSafe(ref carLocation);
((FastBufferWriter)(ref val3)).WriteValueSafe(ref carRotation);
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref setIgnitionState, default(ForPrimitives));
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref setKeyInSlot, default(ForPrimitives));
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref gasFloored, default(ForPrimitives));
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref brakeFloored, default(ForPrimitives));
((FastBufferWriter)(ref val3)).WriteValueSafe<bool>(ref preIgnition, default(ForPrimitives));
((NetworkBehaviour)this).__endSendRpc(ref val3, 4161890078u, val2, val, (SendTo)5, (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) && val4.isPlayerControlled)
{
base.syncedPosition = carLocation;
base.syncedRotation = carRotation;
syncedDrivePedalPressed = gasFloored;
syncedBrakePedalPressed = brakeFloored;
base.drivePedalPressed = gasFloored;
base.brakePedalPressed = brakeFloored;
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<InteractTrigger>().isBeingHeldByPlayer = false;
base.removeKeyIgnitionTrigger.GetComponent<InteractTrigger>().isBeingHeldByPlayer = false;
currentInterior.driverSeat.ReturnPlayerAnimator(StartOfRound.Instance.allPlayerScripts[playerId], isLocalPlayer: false, base.driverSeatTrigger);
CancelIgnitionAnimation(base.ignitionStarted, setIgnitionAnim: true);
SetIgnition(base.ignitionStarted, preIgnition);
base.chanceToStartIgnition = 20f;
if (base.localPlayerInPassengerSeat)
{
SetVehicleCollisionForPlayer(setEnabled: false, GameNetworkManager.Instance.localPlayerController);
}
}
}
public void SetPassengerInCar()
{
if (base.hasBeenSpawned && !base.carDestroyed && !Object.op_Implicit((Object)(object)GameNetworkManager.Instance.localPlayerController.inAnimationWithEnemy) && !GameNetworkManager.Instance.localPlayerController.inVehicleAnimation)
{
if ((Object)(object)base.currentPassenger != (Object)null)
{
GameNetworkManager.Instance.localPlayerController.CancelSpecialTriggerAnimations();
HUDManager.Instance.DisplayTip("Seat occupied", "You cannot enter an occupied seat! aborting!", false, false, "LC_Tip1");
}
else
{
SetPassengerInCarServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId);
}
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void SetPassengerInCarServerRpc(int playerId)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(1540494745u, val2, val, (SendTo)2, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val3, playerId);
((NetworkBehaviour)this).__endSendRpc(ref val3, 1540494745u, val2, val, (SendTo)2, (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 || val4.isPlayerDead || !val4.isPlayerControlled || (Object)(object)base.currentPassenger != (Object)null)
{
CancelSetPlayerInVehicleClientRpc(playerId);
return;
}
SetVehicleCollisionForPlayer(setEnabled: false, val4);
if ((int)GameNetworkManager.Instance.localPlayerController.playerClientId == playerId)
{
SetPassengerIntoPassengerSeat();
}
else
{
currentInterior.passengerSeat.ReplacePlayerAnimator(StartOfRound.Instance.allPlayerScripts[playerId], isLocalPlayer: false, base.passengerSeatTrigger);
}
base.currentPassenger = val4;
SetPassengerInCarRpc(playerId);
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void SetPassengerInCarRpc(int playerId)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Invalid comparison between Unknown and I4
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(3857058091u, val2, val, (SendTo)3, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val3, playerId);
((NetworkBehaviour)this).__endSendRpc(ref val3, 3857058091u, val2, val, (SendTo)3, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1)
{
((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
PlayerControllerB val4 = StartOfRound.Instance.allPlayerScripts[playerId];
SetVehicleCollisionForPlayer(setEnabled: false, val4);
if ((int)GameNetworkManager.Instance.localPlayerController.playerClientId == playerId)
{
SetPassengerIntoPassengerSeat();
}
else
{
currentInterior.passengerSeat.ReplacePlayerAnimator(StartOfRound.Instance.allPlayerScripts[playerId], isLocalPlayer: false, base.passengerSeatTrigger);
}
base.currentPassenger = val4;
base.currentPassenger.playerBodyAnimator.SetFloat("animationSpeed", 0.5f);
}
}
public void SetPassengerIntoPassengerSeat()
{
PlayerUtils.disableAnimationSync = true;
InteractTriggerPatches.specialInteractCoroutine = ((MonoBehaviour)this).StartCoroutine(InteractTriggerPatches.SpecialTruckInteractAnimation(base.passengerSeatTrigger, GameNetworkManager.Instance.localPlayerController, this, currentInterior.passengerSeat));
base.localPlayerInPassengerSeat = true;
InteractTrigger trigger = (isInteriorRHD ? base.driverSideDoorTrigger : base.passengerSideDoorTrigger);
AnimatedObjectTrigger val = (isInteriorRHD ? base.driverSideDoor : base.passengerSideDoor);
SetTriggerHoverTip(trigger, "Exit : [LMB]");
GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetFloat("animationSpeed", 0.5f);
if (val.boolValue)
{
val.TriggerAnimation(GameNetworkManager.Instance.localPlayerController);
}
}
public void OnPassengerExit()
{
//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
if (((NetworkBehaviour)this).IsSpawned && !((Object)(object)((NetworkBehaviour)this).NetworkManager == (Object)null) && ((NetworkBehaviour)this).NetworkManager.IsListening)
{
PlayerUtils.disableAnimationSync = false;
SetVehicleCollisionForPlayer(setEnabled: true, GameNetworkManager.Instance.localPlayerController);
base.localPlayerInPassengerSeat = false;
InteractTrigger trigger = (isInteriorRHD ? base.driverSideDoorTrigger : base.passengerSideDoorTrigger);
SetTriggerHoverTip(trigger, "Use door : [LMB]");
GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetInteger("SA_CarAnim", 0);
PlayerUtils.ResetHUDToolTips(GameNetworkManager.Instance.localPlayerController);
if ((Object)(object)base.currentPassenger != (Object)(object)GameNetworkManager.Instance.localPlayerController)
{
HUDManager.Instance.DisplayTip("Err?", "This state should not occur! aborting!", false, false, "LC_Tip1");
return;
}
base.currentPassenger = null;
OnPassengerExitRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId, ((Component)GameNetworkManager.Instance.localPlayerController).transform.position);
}
}
[Rpc(/*Could not decode attribute arguments.*/)]
public void OnPassengerExitRpc(int playerId, 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_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_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_0137: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1)
{
RpcAttributeParams val = new RpcAttributeParams
{
RequireOwnership = false
};
RpcParams val2 = default(RpcParams);
FastBufferWriter val3 = ((NetworkBehaviour)this).__beginSendRpc(4196259508u, val2, val, (SendTo)5, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val3, playerId);
((FastBufferWriter)(ref val3)).WriteValueSafe(ref exitPoint);
((NetworkBehaviour)this).__endSendRpc(ref val3, 4196259508u, val2, val, (SendTo)5, (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) && val4.isPlayerControlled && !((Object)(object)val4 == (Object)(object)GameNetworkManager.Instance.localPlayerController))
{
currentInterior.passengerSeat.ReturnPlayerAnimator(StartOfRound.Instance.allPlayerScripts[playerId], isLocalPlayer: false, base.passengerSeatTrigger);
val4.TeleportPlayer(exitPoint, false, 0f, false, true);
base.currentPassenger = null;
if (!((NetworkBehaviour)this).IsOwner)
{
SetVehicleColli