using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.Demos
{
	// Token: 0x0200043E RID: 1086
	[Token(Token = "0x200043E")]
	public class CharacterThirdPerson : CharacterBase
	{
		// Token: 0x1700022E RID: 558
		// (get) Token: 0x060026C3 RID: 9923 RVA: 0x00059258 File Offset: 0x00057458
		// (set) Token: 0x060026C4 RID: 9924 RVA: 0x0005926C File Offset: 0x0005746C
		[Token(Token = "0x1700022E")]
		public bool onGround
		{
			[Token(Token = "0x60026C3")]
			[Address(RVA = "0xB998D0", Offset = "0xB988D0", VA = "0x180B998D0")]
			get;
			[Token(Token = "0x60026C4")]
			[Address(RVA = "0xB998E0", Offset = "0xB988E0", VA = "0x180B998E0")]
			private set;
		}

		// Token: 0x060026C5 RID: 9925 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026C5")]
		[Address(RVA = "0xB98CC0", Offset = "0xB97CC0", VA = "0x180B98CC0", Slot = "5")]
		protected override void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026C6 RID: 9926 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026C6")]
		[Address(RVA = "0xB98630", Offset = "0xB97630", VA = "0x180B98630")]
		private void OnAnimatorMove()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026C7 RID: 9927 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026C7")]
		[Address(RVA = "0xB98540", Offset = "0xB97540", VA = "0x180B98540", Slot = "4")]
		public override void Move(Vector3 deltaPosition, Quaternion deltaRotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026C8 RID: 9928 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026C8")]
		[Address(RVA = "0xB96820", Offset = "0xB95820", VA = "0x180B96820")]
		private void FixedUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026C9 RID: 9929 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026C9")]
		[Address(RVA = "0xB98E60", Offset = "0xB97E60", VA = "0x180B98E60", Slot = "7")]
		protected virtual void Update()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026CA RID: 9930 RVA: 0x00059280 File Offset: 0x00057480
		[Token(Token = "0x60026CA")]
		[Address(RVA = "0xB97D40", Offset = "0xB96D40", VA = "0x180B97D40", 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: 0x060026CB RID: 9931 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026CB")]
		[Address(RVA = "0xB97E20", Offset = "0xB96E20", VA = "0x180B97E20")]
		private void MoveFixed(Vector3 deltaPosition)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026CC RID: 9932 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026CC")]
		[Address(RVA = "0xB98F20", Offset = "0xB97F20", VA = "0x180B98F20")]
		private void WallRun()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026CD RID: 9933 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026CD")]
		[Address(RVA = "0xB96780", Offset = "0xB95780", VA = "0x180B96780")]
		private bool CanWallRun()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026CE RID: 9934 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026CE")]
		[Address(RVA = "0xB97330", Offset = "0xB96330", VA = "0x180B97330")]
		private Vector3 GetMoveDirection()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026CF RID: 9935 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026CF")]
		[Address(RVA = "0xB986D0", Offset = "0xB976D0", VA = "0x180B986D0", Slot = "9")]
		protected virtual void Rotate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D0 RID: 9936 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D0")]
		[Address(RVA = "0xB97120", Offset = "0xB96120", VA = "0x180B97120")]
		private Vector3 GetForwardDirection()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D1 RID: 9937 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D1")]
		[Address(RVA = "0xB97B20", Offset = "0xB96B20", VA = "0x180B97B20", Slot = "10")]
		protected virtual bool Jump()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D2 RID: 9938 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D2")]
		[Address(RVA = "0xB97630", Offset = "0xB96630", VA = "0x180B97630")]
		private void GroundCheck()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D3 RID: 9939 RVA: 0x00059304 File Offset: 0x00057504
		[Token(Token = "0x60026D3")]
		[Address(RVA = "0xB997C0", Offset = "0xB987C0", VA = "0x180B997C0")]
		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: 0x0400307E RID: 12414
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x400307E")]
		[Header("References")]
		public CharacterAnimationBase characterAnimation;

		// Token: 0x0400307F RID: 12415
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x400307F")]
		public UserControlThirdPerson userControl;

		// Token: 0x04003080 RID: 12416
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x4003080")]
		public CameraController cam;

		// Token: 0x04003081 RID: 12417
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x4003081")]
		[Header("Movement")]
		public CharacterThirdPerson.MoveMode moveMode;

		// Token: 0x04003082 RID: 12418
		[FieldOffset(Offset = "0x84")]
		[Token(Token = "0x4003082")]
		public bool smoothPhysics = true;

		// Token: 0x04003083 RID: 12419
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4003083")]
		public float smoothAccelerationTime = 0.2f;

		// Token: 0x04003084 RID: 12420
		[FieldOffset(Offset = "0x8C")]
		[Token(Token = "0x4003084")]
		public float linearAccelerationSpeed = 3f;

		// Token: 0x04003085 RID: 12421
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4003085")]
		public float platformFriction = 7f;

		// Token: 0x04003086 RID: 12422
		[FieldOffset(Offset = "0x94")]
		[Token(Token = "0x4003086")]
		public float groundStickyEffect = 4f;

		// Token: 0x04003087 RID: 12423
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4003087")]
		public float maxVerticalVelocityOnGround = 3f;

		// Token: 0x04003088 RID: 12424
		[FieldOffset(Offset = "0x9C")]
		[Token(Token = "0x4003088")]
		public float velocityToGroundTangentWeight;

		// Token: 0x04003089 RID: 12425
		[FieldOffset(Offset = "0xA0")]
		[Token(Token = "0x4003089")]
		[Header("Rotation")]
		public bool lookInCameraDirection;

		// Token: 0x0400308A RID: 12426
		[FieldOffset(Offset = "0xA4")]
		[Token(Token = "0x400308A")]
		public float turnSpeed = 5f;

		// Token: 0x0400308B RID: 12427
		[FieldOffset(Offset = "0xA8")]
		[Token(Token = "0x400308B")]
		public float stationaryTurnSpeedMlp = 1f;

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

		// Token: 0x0400308D RID: 12429
		[FieldOffset(Offset = "0xB0")]
		[Token(Token = "0x400308D")]
		public float airControl = 2f;

		// Token: 0x0400308E RID: 12430
		[FieldOffset(Offset = "0xB4")]
		[Token(Token = "0x400308E")]
		public float jumpPower = 12f;

		// Token: 0x0400308F RID: 12431
		[FieldOffset(Offset = "0xB8")]
		[Token(Token = "0x400308F")]
		public float jumpRepeatDelayTime;

		// Token: 0x04003090 RID: 12432
		[FieldOffset(Offset = "0xBC")]
		[Token(Token = "0x4003090")]
		[SerializeField]
		[Header("Wall Running")]
		private LayerMask wallRunLayers;

		// Token: 0x04003091 RID: 12433
		[FieldOffset(Offset = "0xC0")]
		[Token(Token = "0x4003091")]
		public float wallRunMaxLength = 1f;

		// Token: 0x04003092 RID: 12434
		[FieldOffset(Offset = "0xC4")]
		[Token(Token = "0x4003092")]
		public float wallRunMinMoveMag = 0.6f;

		// Token: 0x04003093 RID: 12435
		[FieldOffset(Offset = "0xC8")]
		[Token(Token = "0x4003093")]
		public float wallRunMinVelocityY = -1f;

		// Token: 0x04003094 RID: 12436
		[FieldOffset(Offset = "0xCC")]
		[Token(Token = "0x4003094")]
		public float wallRunRotationSpeed = 1.5f;

		// Token: 0x04003095 RID: 12437
		[FieldOffset(Offset = "0xD0")]
		[Token(Token = "0x4003095")]
		public float wallRunMaxRotationAngle = 70f;

		// Token: 0x04003096 RID: 12438
		[FieldOffset(Offset = "0xD4")]
		[Token(Token = "0x4003096")]
		public float wallRunWeightSpeed = 5f;

		// Token: 0x04003097 RID: 12439
		[FieldOffset(Offset = "0xD8")]
		[Token(Token = "0x4003097")]
		[Header("Crouching")]
		public float crouchCapsuleScaleMlp = 0.6f;

		// Token: 0x04003099 RID: 12441
		[FieldOffset(Offset = "0xE0")]
		[Token(Token = "0x4003099")]
		public CharacterThirdPerson.AnimState animState;

		// Token: 0x0400309A RID: 12442
		[FieldOffset(Offset = "0xF4")]
		[Token(Token = "0x400309A")]
		protected Vector3 moveDirection;

		// Token: 0x0400309B RID: 12443
		[FieldOffset(Offset = "0x100")]
		[Token(Token = "0x400309B")]
		private Animator animator;

		// Token: 0x0400309C RID: 12444
		[FieldOffset(Offset = "0x108")]
		[Token(Token = "0x400309C")]
		private Vector3 normal;

		// Token: 0x0400309D RID: 12445
		[FieldOffset(Offset = "0x114")]
		[Token(Token = "0x400309D")]
		private Vector3 platformVelocity;

		// Token: 0x0400309E RID: 12446
		[FieldOffset(Offset = "0x120")]
		[Token(Token = "0x400309E")]
		private Vector3 platformAngularVelocity;

		// Token: 0x0400309F RID: 12447
		[FieldOffset(Offset = "0x12C")]
		[Token(Token = "0x400309F")]
		private RaycastHit hit;

		// Token: 0x040030A0 RID: 12448
		[FieldOffset(Offset = "0x158")]
		[Token(Token = "0x40030A0")]
		private float jumpLeg;

		// Token: 0x040030A1 RID: 12449
		[FieldOffset(Offset = "0x15C")]
		[Token(Token = "0x40030A1")]
		private float jumpEndTime;

		// Token: 0x040030A2 RID: 12450
		[FieldOffset(Offset = "0x160")]
		[Token(Token = "0x40030A2")]
		private float forwardMlp;

		// Token: 0x040030A3 RID: 12451
		[FieldOffset(Offset = "0x164")]
		[Token(Token = "0x40030A3")]
		private float groundDistance;

		// Token: 0x040030A4 RID: 12452
		[FieldOffset(Offset = "0x168")]
		[Token(Token = "0x40030A4")]
		private float lastAirTime;

		// Token: 0x040030A5 RID: 12453
		[FieldOffset(Offset = "0x16C")]
		[Token(Token = "0x40030A5")]
		private float stickyForce;

		// Token: 0x040030A6 RID: 12454
		[FieldOffset(Offset = "0x170")]
		[Token(Token = "0x40030A6")]
		private Vector3 wallNormal;

		// Token: 0x040030A7 RID: 12455
		[FieldOffset(Offset = "0x17C")]
		[Token(Token = "0x40030A7")]
		private Vector3 moveDirectionVelocity;

		// Token: 0x040030A8 RID: 12456
		[FieldOffset(Offset = "0x188")]
		[Token(Token = "0x40030A8")]
		private float wallRunWeight;

		// Token: 0x040030A9 RID: 12457
		[FieldOffset(Offset = "0x18C")]
		[Token(Token = "0x40030A9")]
		private float lastWallRunWeight;

		// Token: 0x040030AA RID: 12458
		[FieldOffset(Offset = "0x190")]
		[Token(Token = "0x40030AA")]
		private Vector3 fixedDeltaPosition;

		// Token: 0x040030AB RID: 12459
		[FieldOffset(Offset = "0x19C")]
		[Token(Token = "0x40030AB")]
		private Quaternion fixedDeltaRotation;

		// Token: 0x040030AC RID: 12460
		[FieldOffset(Offset = "0x1AC")]
		[Token(Token = "0x40030AC")]
		private bool fixedFrame;

		// Token: 0x040030AD RID: 12461
		[FieldOffset(Offset = "0x1B0")]
		[Token(Token = "0x40030AD")]
		private float wallRunEndTime;

		// Token: 0x040030AE RID: 12462
		[FieldOffset(Offset = "0x1B4")]
		[Token(Token = "0x40030AE")]
		private Vector3 gravity;

		// Token: 0x040030AF RID: 12463
		[FieldOffset(Offset = "0x1C0")]
		[Token(Token = "0x40030AF")]
		private Vector3 verticalVelocity;

		// Token: 0x040030B0 RID: 12464
		[FieldOffset(Offset = "0x1CC")]
		[Token(Token = "0x40030B0")]
		private float velocityY;

		// Token: 0x0200043F RID: 1087
		[Token(Token = "0x200043F")]
		[Serializable]
		public enum MoveMode
		{
			// Token: 0x040030B2 RID: 12466
			[Token(Token = "0x40030B2")]
			Directional,
			// Token: 0x040030B3 RID: 12467
			[Token(Token = "0x40030B3")]
			Strafe
		}

		// Token: 0x02000440 RID: 1088
		[Token(Token = "0x2000440")]
		public struct AnimState
		{
			// Token: 0x040030B4 RID: 12468
			[FieldOffset(Offset = "0x0")]
			[Token(Token = "0x40030B4")]
			public Vector3 moveDirection;

			// Token: 0x040030B5 RID: 12469
			[FieldOffset(Offset = "0xC")]
			[Token(Token = "0x40030B5")]
			public bool jump;

			// Token: 0x040030B6 RID: 12470
			[FieldOffset(Offset = "0xD")]
			[Token(Token = "0x40030B6")]
			public bool crouch;

			// Token: 0x040030B7 RID: 12471
			[FieldOffset(Offset = "0xE")]
			[Token(Token = "0x40030B7")]
			public bool onGround;

			// Token: 0x040030B8 RID: 12472
			[FieldOffset(Offset = "0xF")]
			[Token(Token = "0x40030B8")]
			public bool isStrafing;

			// Token: 0x040030B9 RID: 12473
			[FieldOffset(Offset = "0x10")]
			[Token(Token = "0x40030B9")]
			public float yVelocity;
		}
	}
}
