using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.Demos
{
	// Token: 0x020003E5 RID: 997
	[Token(Token = "0x20003E5")]
	[RequireComponent(typeof(Rigidbody))]
	[RequireComponent(typeof(CapsuleCollider))]
	public abstract class CharacterBase : MonoBehaviour
	{
		// Token: 0x060023EF RID: 9199
		[Token(Token = "0x60023EF")]
		[Address(Slot = "4")]
		public abstract void Move(Vector3 deltaPosition, Quaternion deltaRotation);

		// Token: 0x060023F0 RID: 9200 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023F0")]
		[Address(RVA = "0xE83F50", Offset = "0xE82D50", VA = "0x180E83F50")]
		protected Vector3 GetGravity()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060023F1 RID: 9201 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023F1")]
		[Address(RVA = "0xE848A0", Offset = "0xE836A0", VA = "0x180E848A0", Slot = "5")]
		protected virtual void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060023F2 RID: 9202 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023F2")]
		[Address(RVA = "0xE841A0", Offset = "0xE82FA0", VA = "0x180E841A0", Slot = "6")]
		protected virtual RaycastHit GetSpherecastHit()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060023F3 RID: 9203 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023F3")]
		[Address(RVA = "0xE820B0", Offset = "0xE80EB0", VA = "0x180E820B0")]
		public float GetAngleFromForward(Vector3 worldDirection)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060023F4 RID: 9204 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023F4")]
		[Address(RVA = "0xE844B0", Offset = "0xE832B0", VA = "0x180E844B0")]
		protected void RigidbodyRotateAround(Vector3 point, Vector3 axis, float angle)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060023F5 RID: 9205 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023F5")]
		[Address(RVA = "0xE846E0", Offset = "0xE834E0", VA = "0x180E846E0")]
		protected void ScaleCapsule(float mlp)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060023F6 RID: 9206 RVA: 0x00051F5C File Offset: 0x0005015C
		[Token(Token = "0x60023F6")]
		[Address(RVA = "0xE84480", Offset = "0xE83280", VA = "0x180E84480")]
		protected void HighFriction()
		{
			CapsuleCollider capsuleCollider = this.capsule;
			PhysicMaterial physicMaterial = this.highFrictionMaterial;
			capsuleCollider.material = physicMaterial;
		}

		// Token: 0x060023F7 RID: 9207 RVA: 0x00051F84 File Offset: 0x00050184
		[Token(Token = "0x60023F7")]
		[Address(RVA = "0xE84AB0", Offset = "0xE838B0", VA = "0x180E84AB0")]
		protected void ZeroFriction()
		{
			CapsuleCollider capsuleCollider = this.capsule;
			PhysicMaterial physicMaterial = this.zeroFrictionMaterial;
			capsuleCollider.material = physicMaterial;
		}

		// Token: 0x060023F8 RID: 9208 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60023F8")]
		[Address(RVA = "0xE84110", Offset = "0xE82F10", VA = "0x180E84110")]
		protected float GetSlopeDamper(Vector3 velocity, Vector3 groundNormal)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060023F9 RID: 9209 RVA: 0x00051FAC File Offset: 0x000501AC
		[Token(Token = "0x60023F9")]
		[Address(RVA = "0xE84AE0", Offset = "0xE838E0", VA = "0x180E84AE0")]
		protected CharacterBase()
		{
		}

		// Token: 0x04002D86 RID: 11654
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002D86")]
		[Header("Base Parameters")]
		[Tooltip("If specified, will use the direction from the character to this Transform as the gravity vector instead of Physics.gravity. Physics.gravity.magnitude will be used as the magnitude of the gravity vector.")]
		public Transform gravityTarget;

		// Token: 0x04002D87 RID: 11655
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002D87")]
		[SerializeField]
		[Tooltip("Multiplies gravity applied to the character even if 'Individual Gravity' is unchecked.")]
		protected float gravityMultiplier = 2f;

		// Token: 0x04002D88 RID: 11656
		[FieldOffset(Offset = "0x24")]
		[Token(Token = "0x4002D88")]
		[SerializeField]
		protected float airborneThreshold = 0.6f;

		// Token: 0x04002D89 RID: 11657
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4002D89")]
		[SerializeField]
		private float slopeStartAngle = 50f;

		// Token: 0x04002D8A RID: 11658
		[FieldOffset(Offset = "0x2C")]
		[Token(Token = "0x4002D8A")]
		[SerializeField]
		private float slopeEndAngle = 85f;

		// Token: 0x04002D8B RID: 11659
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4002D8B")]
		[SerializeField]
		private float spherecastRadius = 0.1f;

		// Token: 0x04002D8C RID: 11660
		[FieldOffset(Offset = "0x34")]
		[Token(Token = "0x4002D8C")]
		[SerializeField]
		private LayerMask groundLayers;

		// Token: 0x04002D8D RID: 11661
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4002D8D")]
		private PhysicMaterial zeroFrictionMaterial;

		// Token: 0x04002D8E RID: 11662
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4002D8E")]
		private PhysicMaterial highFrictionMaterial;

		// Token: 0x04002D8F RID: 11663
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4002D8F")]
		protected Rigidbody r;

		// Token: 0x04002D90 RID: 11664
		[Token(Token = "0x4002D90")]
		protected const float half = 0.5f;

		// Token: 0x04002D91 RID: 11665
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4002D91")]
		protected float originalHeight;

		// Token: 0x04002D92 RID: 11666
		[FieldOffset(Offset = "0x54")]
		[Token(Token = "0x4002D92")]
		protected Vector3 originalCenter;

		// Token: 0x04002D93 RID: 11667
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002D93")]
		protected CapsuleCollider capsule;
	}
}
