using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.Demos
{
	// Token: 0x0200043D RID: 1085
	[Token(Token = "0x200043D")]
	[RequireComponent(typeof(Rigidbody))]
	[RequireComponent(typeof(CapsuleCollider))]
	public abstract class CharacterBase : MonoBehaviour
	{
		// Token: 0x060026B8 RID: 9912
		[Token(Token = "0x60026B8")]
		[Address(Slot = "4")]
		public abstract void Move(Vector3 deltaPosition, Quaternion deltaRotation);

		// Token: 0x060026B9 RID: 9913 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026B9")]
		[Address(RVA = "0xB94FD0", Offset = "0xB93FD0", VA = "0x180B94FD0")]
		protected Vector3 GetGravity()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026BA RID: 9914 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026BA")]
		[Address(RVA = "0xB95920", Offset = "0xB94920", VA = "0x180B95920", Slot = "5")]
		protected virtual void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026BB RID: 9915 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026BB")]
		[Address(RVA = "0xB95220", Offset = "0xB94220", VA = "0x180B95220", Slot = "6")]
		protected virtual RaycastHit GetSpherecastHit()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026BC RID: 9916 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026BC")]
		[Address(RVA = "0xB930E0", Offset = "0xB920E0", VA = "0x180B930E0")]
		public float GetAngleFromForward(Vector3 worldDirection)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026BD RID: 9917 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026BD")]
		[Address(RVA = "0xB95530", Offset = "0xB94530", VA = "0x180B95530")]
		protected void RigidbodyRotateAround(Vector3 point, Vector3 axis, float angle)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026BE RID: 9918 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026BE")]
		[Address(RVA = "0xB95760", Offset = "0xB94760", VA = "0x180B95760")]
		protected void ScaleCapsule(float mlp)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026BF RID: 9919 RVA: 0x000591BC File Offset: 0x000573BC
		[Token(Token = "0x60026BF")]
		[Address(RVA = "0xB95500", Offset = "0xB94500", VA = "0x180B95500")]
		protected void HighFriction()
		{
			CapsuleCollider capsuleCollider = this.capsule;
			PhysicMaterial physicMaterial = this.highFrictionMaterial;
			capsuleCollider.material = physicMaterial;
		}

		// Token: 0x060026C0 RID: 9920 RVA: 0x000591E4 File Offset: 0x000573E4
		[Token(Token = "0x60026C0")]
		[Address(RVA = "0xB95B30", Offset = "0xB94B30", VA = "0x180B95B30")]
		protected void ZeroFriction()
		{
			CapsuleCollider capsuleCollider = this.capsule;
			PhysicMaterial physicMaterial = this.zeroFrictionMaterial;
			capsuleCollider.material = physicMaterial;
		}

		// Token: 0x060026C1 RID: 9921 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026C1")]
		[Address(RVA = "0xB95190", Offset = "0xB94190", VA = "0x180B95190")]
		protected float GetSlopeDamper(Vector3 velocity, Vector3 groundNormal)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026C2 RID: 9922 RVA: 0x0005920C File Offset: 0x0005740C
		[Token(Token = "0x60026C2")]
		[Address(RVA = "0xB95B60", Offset = "0xB94B60", VA = "0x180B95B60")]
		protected CharacterBase()
		{
		}

		// Token: 0x04003070 RID: 12400
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4003070")]
		[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.")]
		[Header("Base Parameters")]
		public Transform gravityTarget;

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

		// Token: 0x04003072 RID: 12402
		[FieldOffset(Offset = "0x24")]
		[Token(Token = "0x4003072")]
		[SerializeField]
		protected float airborneThreshold = 0.6f;

		// Token: 0x04003073 RID: 12403
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4003073")]
		[SerializeField]
		private float slopeStartAngle = 50f;

		// Token: 0x04003074 RID: 12404
		[FieldOffset(Offset = "0x2C")]
		[Token(Token = "0x4003074")]
		[SerializeField]
		private float slopeEndAngle = 85f;

		// Token: 0x04003075 RID: 12405
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4003075")]
		[SerializeField]
		private float spherecastRadius = 0.1f;

		// Token: 0x04003076 RID: 12406
		[FieldOffset(Offset = "0x34")]
		[Token(Token = "0x4003076")]
		[SerializeField]
		private LayerMask groundLayers;

		// Token: 0x04003077 RID: 12407
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003077")]
		private PhysicMaterial zeroFrictionMaterial;

		// Token: 0x04003078 RID: 12408
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4003078")]
		private PhysicMaterial highFrictionMaterial;

		// Token: 0x04003079 RID: 12409
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4003079")]
		protected Rigidbody r;

		// Token: 0x0400307A RID: 12410
		[Token(Token = "0x400307A")]
		protected const float half = 0.5f;

		// Token: 0x0400307B RID: 12411
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x400307B")]
		protected float originalHeight;

		// Token: 0x0400307C RID: 12412
		[FieldOffset(Offset = "0x54")]
		[Token(Token = "0x400307C")]
		protected Vector3 originalCenter;

		// Token: 0x0400307D RID: 12413
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x400307D")]
		protected CapsuleCollider capsule;
	}
}
