using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.Demos
{
	// Token: 0x020003E6 RID: 998
	[Token(Token = "0x20003E6")]
	public class CharacterThirdPerson : CharacterBase
	{
		// Token: 0x17000209 RID: 521
		// (get) Token: 0x060023FA RID: 9210 RVA: 0x00051FF8 File Offset: 0x000501F8
		// (set) Token: 0x060023FB RID: 9211 RVA: 0x0005200C File Offset: 0x0005020C
		[Token(Token = "0x17000209")]
		public bool onGround
		{
			[Token(Token = "0x60023FA")]
			[Address(RVA = "0xE88840", Offset = "0xE87640", VA = "0x180E88840")]
			get;
			[Token(Token = "0x60023FB")]
			[Address(RVA = "0xE88850", Offset = "0xE87650", VA = "0x180E88850")]
			private set;
		}

		// Token: 0x060023FC RID: 9212 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023FC")]
		[Address(RVA = "0xE87C30", Offset = "0xE86A30", VA = "0x180E87C30", Slot = "5")]
		protected override void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060023FD RID: 9213 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023FD")]
		[Address(RVA = "0xE875A0", Offset = "0xE863A0", VA = "0x180E875A0")]
		private void OnAnimatorMove()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060023FE RID: 9214 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023FE")]
		[Address(RVA = "0xE874B0", Offset = "0xE862B0", VA = "0x180E874B0", Slot = "4")]
		public override void Move(Vector3 deltaPosition, Quaternion deltaRotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060023FF RID: 9215 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023FF")]
		[Address(RVA = "0xE85790", Offset = "0xE84590", VA = "0x180E85790")]
		private void FixedUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002400 RID: 9216 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002400")]
		[Address(RVA = "0xE87DD0", Offset = "0xE86BD0", VA = "0x180E87DD0", Slot = "7")]
		protected virtual void Update()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002401 RID: 9217 RVA: 0x00052020 File Offset: 0x00050220
		[Token(Token = "0x6002401")]
		[Address(RVA = "0xE86CB0", Offset = "0xE85AB0", VA = "0x180E86CB0", Slot = "8")]
		protected virtual void LateUpdate()
		{
			CameraController cameraController = this.cam;
			int num = 0;
			if (!(cameraController == num))
			{
				this.cam.UpdateInput();
				if (this.fixedFrame || this.r.interpolation != RigidbodyInterpolation.None)
				{
					Rigidbody r = this.r;
					CameraController cameraController2 = this.cam;
					RigidbodyInterpolation interpolation = r.interpolation;
					if (interpolation == RigidbodyInterpolation.None)
					{
						float fixedDeltaTime = Time.fixedDeltaTime;
					}
					float deltaTime = Time.deltaTime;
					cameraController2.UpdateTransform(deltaTime);
					this.fixedFrame = false;
				}
			}
		}

		// Token: 0x06002402 RID: 9218 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002402")]
		[Address(RVA = "0xE86D90", Offset = "0xE85B90", VA = "0x180E86D90")]
		private void MoveFixed(Vector3 deltaPosition)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002403 RID: 9219 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002403")]
		[Address(RVA = "0xE87E90", Offset = "0xE86C90", VA = "0x180E87E90")]
		private void WallRun()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002404 RID: 9220 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002404")]
		[Address(RVA = "0xE856F0", Offset = "0xE844F0", VA = "0x180E856F0")]
		private bool CanWallRun()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002405 RID: 9221 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002405")]
		[Address(RVA = "0xE862A0", Offset = "0xE850A0", VA = "0x180E862A0")]
		private Vector3 GetMoveDirection()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002406 RID: 9222 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002406")]
		[Address(RVA = "0xE87640", Offset = "0xE86440", VA = "0x180E87640", Slot = "9")]
		protected virtual void Rotate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002407 RID: 9223 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002407")]
		[Address(RVA = "0xE86090", Offset = "0xE84E90", VA = "0x180E86090")]
		private Vector3 GetForwardDirection()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002408 RID: 9224 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002408")]
		[Address(RVA = "0xE86A90", Offset = "0xE85890", VA = "0x180E86A90", Slot = "10")]
		protected virtual bool Jump()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002409 RID: 9225 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002409")]
		[Address(RVA = "0xE865A0", Offset = "0xE853A0", VA = "0x180E865A0")]
		private void GroundCheck()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600240A RID: 9226 RVA: 0x000520A4 File Offset: 0x000502A4
		[Token(Token = "0x600240A")]
		[Address(RVA = "0xE88730", Offset = "0xE87530", VA = "0x180E88730")]
		public CharacterThirdPerson()
		{
			float z = Vector3.up.z;
			this.wallNormal.z = z;
			this.gravityMultiplier = 2f;
			this.airborneThreshold = 0.6f;
			this.slopeStartAngle = 50f;
			this.slopeEndAngle = 85f;
			this.spherecastRadius = 0.1f;
			base..ctor();
		}

		// Token: 0x04002D94 RID: 11668
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x4002D94")]
		[Header("References")]
		public CharacterAnimationBase characterAnimation;

		// Token: 0x04002D95 RID: 11669
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4002D95")]
		public UserControlThirdPerson userControl;

		// Token: 0x04002D96 RID: 11670
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x4002D96")]
		public CameraController cam;

		// Token: 0x04002D97 RID: 11671
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x4002D97")]
		[Header("Movement")]
		public CharacterThirdPerson.MoveMode moveMode;

		// Token: 0x04002D98 RID: 11672
		[FieldOffset(Offset = "0x84")]
		[Token(Token = "0x4002D98")]
		public bool smoothPhysics = true;

		// Token: 0x04002D99 RID: 11673
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4002D99")]
		public float smoothAccelerationTime = 0.2f;

		// Token: 0x04002D9A RID: 11674
		[FieldOffset(Offset = "0x8C")]
		[Token(Token = "0x4002D9A")]
		public float linearAccelerationSpeed = 3f;

		// Token: 0x04002D9B RID: 11675
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4002D9B")]
		public float platformFriction = 7f;

		// Token: 0x04002D9C RID: 11676
		[FieldOffset(Offset = "0x94")]
		[Token(Token = "0x4002D9C")]
		public float groundStickyEffect = 4f;

		// Token: 0x04002D9D RID: 11677
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4002D9D")]
		public float maxVerticalVelocityOnGround = 3f;

		// Token: 0x04002D9E RID: 11678
		[FieldOffset(Offset = "0x9C")]
		[Token(Token = "0x4002D9E")]
		public float velocityToGroundTangentWeight;

		// Token: 0x04002D9F RID: 11679
		[FieldOffset(Offset = "0xA0")]
		[Token(Token = "0x4002D9F")]
		[Header("Rotation")]
		public bool lookInCameraDirection;

		// Token: 0x04002DA0 RID: 11680
		[FieldOffset(Offset = "0xA4")]
		[Token(Token = "0x4002DA0")]
		public float turnSpeed = 5f;

		// Token: 0x04002DA1 RID: 11681
		[FieldOffset(Offset = "0xA8")]
		[Token(Token = "0x4002DA1")]
		public float stationaryTurnSpeedMlp = 1f;

		// Token: 0x04002DA2 RID: 11682
		[FieldOffset(Offset = "0xAC")]
		[Token(Token = "0x4002DA2")]
		[Header("Jumping and Falling")]
		public float airSpeed = 6f;

		// Token: 0x04002DA3 RID: 11683
		[FieldOffset(Offset = "0xB0")]
		[Token(Token = "0x4002DA3")]
		public float airControl = 2f;

		// Token: 0x04002DA4 RID: 11684
		[FieldOffset(Offset = "0xB4")]
		[Token(Token = "0x4002DA4")]
		public float jumpPower = 12f;

		// Token: 0x04002DA5 RID: 11685
		[FieldOffset(Offset = "0xB8")]
		[Token(Token = "0x4002DA5")]
		public float jumpRepeatDelayTime;

		// Token: 0x04002DA6 RID: 11686
		[FieldOffset(Offset = "0xBC")]
		[Token(Token = "0x4002DA6")]
		[SerializeField]
		[Header("Wall Running")]
		private LayerMask wallRunLayers;

		// Token: 0x04002DA7 RID: 11687
		[FieldOffset(Offset = "0xC0")]
		[Token(Token = "0x4002DA7")]
		public float wallRunMaxLength = 1f;

		// Token: 0x04002DA8 RID: 11688
		[FieldOffset(Offset = "0xC4")]
		[Token(Token = "0x4002DA8")]
		public float wallRunMinMoveMag = 0.6f;

		// Token: 0x04002DA9 RID: 11689
		[FieldOffset(Offset = "0xC8")]
		[Token(Token = "0x4002DA9")]
		public float wallRunMinVelocityY = -1f;

		// Token: 0x04002DAA RID: 11690
		[FieldOffset(Offset = "0xCC")]
		[Token(Token = "0x4002DAA")]
		public float wallRunRotationSpeed = 1.5f;

		// Token: 0x04002DAB RID: 11691
		[FieldOffset(Offset = "0xD0")]
		[Token(Token = "0x4002DAB")]
		public float wallRunMaxRotationAngle = 70f;

		// Token: 0x04002DAC RID: 11692
		[FieldOffset(Offset = "0xD4")]
		[Token(Token = "0x4002DAC")]
		public float wallRunWeightSpeed = 5f;

		// Token: 0x04002DAD RID: 11693
		[FieldOffset(Offset = "0xD8")]
		[Token(Token = "0x4002DAD")]
		[Header("Crouching")]
		public float crouchCapsuleScaleMlp = 0.6f;

		// Token: 0x04002DAF RID: 11695
		[FieldOffset(Offset = "0xE0")]
		[Token(Token = "0x4002DAF")]
		public CharacterThirdPerson.AnimState animState;

		// Token: 0x04002DB0 RID: 11696
		[FieldOffset(Offset = "0xF4")]
		[Token(Token = "0x4002DB0")]
		protected Vector3 moveDirection;

		// Token: 0x04002DB1 RID: 11697
		[FieldOffset(Offset = "0x100")]
		[Token(Token = "0x4002DB1")]
		private Animator animator;

		// Token: 0x04002DB2 RID: 11698
		[FieldOffset(Offset = "0x108")]
		[Token(Token = "0x4002DB2")]
		private Vector3 normal;

		// Token: 0x04002DB3 RID: 11699
		[FieldOffset(Offset = "0x114")]
		[Token(Token = "0x4002DB3")]
		private Vector3 platformVelocity;

		// Token: 0x04002DB4 RID: 11700
		[FieldOffset(Offset = "0x120")]
		[Token(Token = "0x4002DB4")]
		private Vector3 platformAngularVelocity;

		// Token: 0x04002DB5 RID: 11701
		[FieldOffset(Offset = "0x12C")]
		[Token(Token = "0x4002DB5")]
		private RaycastHit hit;

		// Token: 0x04002DB6 RID: 11702
		[FieldOffset(Offset = "0x158")]
		[Token(Token = "0x4002DB6")]
		private float jumpLeg;

		// Token: 0x04002DB7 RID: 11703
		[FieldOffset(Offset = "0x15C")]
		[Token(Token = "0x4002DB7")]
		private float jumpEndTime;

		// Token: 0x04002DB8 RID: 11704
		[FieldOffset(Offset = "0x160")]
		[Token(Token = "0x4002DB8")]
		private float forwardMlp;

		// Token: 0x04002DB9 RID: 11705
		[FieldOffset(Offset = "0x164")]
		[Token(Token = "0x4002DB9")]
		private float groundDistance;

		// Token: 0x04002DBA RID: 11706
		[FieldOffset(Offset = "0x168")]
		[Token(Token = "0x4002DBA")]
		private float lastAirTime;

		// Token: 0x04002DBB RID: 11707
		[FieldOffset(Offset = "0x16C")]
		[Token(Token = "0x4002DBB")]
		private float stickyForce;

		// Token: 0x04002DBC RID: 11708
		[FieldOffset(Offset = "0x170")]
		[Token(Token = "0x4002DBC")]
		private Vector3 wallNormal;

		// Token: 0x04002DBD RID: 11709
		[FieldOffset(Offset = "0x17C")]
		[Token(Token = "0x4002DBD")]
		private Vector3 moveDirectionVelocity;

		// Token: 0x04002DBE RID: 11710
		[FieldOffset(Offset = "0x188")]
		[Token(Token = "0x4002DBE")]
		private float wallRunWeight;

		// Token: 0x04002DBF RID: 11711
		[FieldOffset(Offset = "0x18C")]
		[Token(Token = "0x4002DBF")]
		private float lastWallRunWeight;

		// Token: 0x04002DC0 RID: 11712
		[FieldOffset(Offset = "0x190")]
		[Token(Token = "0x4002DC0")]
		private Vector3 fixedDeltaPosition;

		// Token: 0x04002DC1 RID: 11713
		[FieldOffset(Offset = "0x19C")]
		[Token(Token = "0x4002DC1")]
		private Quaternion fixedDeltaRotation;

		// Token: 0x04002DC2 RID: 11714
		[FieldOffset(Offset = "0x1AC")]
		[Token(Token = "0x4002DC2")]
		private bool fixedFrame;

		// Token: 0x04002DC3 RID: 11715
		[FieldOffset(Offset = "0x1B0")]
		[Token(Token = "0x4002DC3")]
		private float wallRunEndTime;

		// Token: 0x04002DC4 RID: 11716
		[FieldOffset(Offset = "0x1B4")]
		[Token(Token = "0x4002DC4")]
		private Vector3 gravity;

		// Token: 0x04002DC5 RID: 11717
		[FieldOffset(Offset = "0x1C0")]
		[Token(Token = "0x4002DC5")]
		private Vector3 verticalVelocity;

		// Token: 0x04002DC6 RID: 11718
		[FieldOffset(Offset = "0x1CC")]
		[Token(Token = "0x4002DC6")]
		private float velocityY;

		// Token: 0x020003E7 RID: 999
		[Token(Token = "0x20003E7")]
		[Serializable]
		public enum MoveMode
		{
			// Token: 0x04002DC8 RID: 11720
			[Token(Token = "0x4002DC8")]
			Directional,
			// Token: 0x04002DC9 RID: 11721
			[Token(Token = "0x4002DC9")]
			Strafe
		}

		// Token: 0x020003E8 RID: 1000
		[Token(Token = "0x20003E8")]
		public struct AnimState
		{
			// Token: 0x04002DCA RID: 11722
			[FieldOffset(Offset = "0x0")]
			[Token(Token = "0x4002DCA")]
			public Vector3 moveDirection;

			// Token: 0x04002DCB RID: 11723
			[FieldOffset(Offset = "0xC")]
			[Token(Token = "0x4002DCB")]
			public bool jump;

			// Token: 0x04002DCC RID: 11724
			[FieldOffset(Offset = "0xD")]
			[Token(Token = "0x4002DCC")]
			public bool crouch;

			// Token: 0x04002DCD RID: 11725
			[FieldOffset(Offset = "0xE")]
			[Token(Token = "0x4002DCD")]
			public bool onGround;

			// Token: 0x04002DCE RID: 11726
			[FieldOffset(Offset = "0xF")]
			[Token(Token = "0x4002DCE")]
			public bool isStrafing;

			// Token: 0x04002DCF RID: 11727
			[FieldOffset(Offset = "0x10")]
			[Token(Token = "0x4002DCF")]
			public float yVelocity;
		}
	}
}
