using System;
using System.Linq.Expressions;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x0200006E RID: 110
[Token(Token = "0x200006E")]
public class AI_GhostC : AI_NPC
{
	// Token: 0x06000494 RID: 1172 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000494")]
	[Address(RVA = "0x17AAAD0", Offset = "0x17A98D0", VA = "0x1817AAAD0", Slot = "4")]
	public override void Start(GameObject This, NPCManage NPCM)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000495 RID: 1173 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000495")]
	[Address(RVA = "0x17AB4F0", Offset = "0x17AA2F0", VA = "0x1817AB4F0", Slot = "5")]
	public override void Update(float fDeltaTime)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000496 RID: 1174 RVA: 0x0000BC88 File Offset: 0x00009E88
	[Token(Token = "0x6000496")]
	[Address(RVA = "0x17A4AE0", Offset = "0x17A38E0", VA = "0x1817A4AE0", Slot = "6")]
	public override void LateUpdate()
	{
		this.g_ShakeHead.Update();
		this.g_ShakeBody.Update();
	}

	// Token: 0x06000497 RID: 1175 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000497")]
	[Address(RVA = "0x17A4560", Offset = "0x17A3360", VA = "0x1817A4560", Slot = "38")]
	public virtual void InitStatus(AI_NPC.AIStatus Status)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000498 RID: 1176 RVA: 0x0000BCB4 File Offset: 0x00009EB4
	[Token(Token = "0x6000498")]
	[Address(RVA = "0x17A2920", Offset = "0x17A1720", VA = "0x1817A2920")]
	public void EndStatus(AI_NPC.AIStatus Status)
	{
		if (Status == AI_NPC.AIStatus.LookFor)
		{
			Animator g_Anim = this.g_Anim;
			int num = 0;
			g_Anim.CrossFade("IdleOrMove", 0.2f, num);
		}
	}

	// Token: 0x06000499 RID: 1177 RVA: 0x0000BCE8 File Offset: 0x00009EE8
	[Token(Token = "0x6000499")]
	[Address(RVA = "0x11DB210", Offset = "0x11DA010", VA = "0x1811DB210", Slot = "29")]
	public override void ResurrectionStatus()
	{
		base.Initialize();
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			int parameterCount = ((IParameterProvider)this).ParameterCount;
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
	}

	// Token: 0x0600049A RID: 1178 RVA: 0x0000BD18 File Offset: 0x00009F18
	[Token(Token = "0x600049A")]
	[Address(RVA = "0x17A9ED0", Offset = "0x17A8CD0", VA = "0x1817A9ED0", Slot = "7")]
	public override void Special()
	{
		base.Initialize();
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			int parameterCount = ((IParameterProvider)this).ParameterCount;
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
	}

	// Token: 0x0600049B RID: 1179 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600049B")]
	[Address(RVA = "0x17A4190", Offset = "0x17A2F90", VA = "0x1817A4190", Slot = "8")]
	public override void Idle()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600049C RID: 1180 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600049C")]
	[Address(RVA = "0x17A69A0", Offset = "0x17A57A0", VA = "0x1817A69A0", Slot = "11")]
	public override void Patrol()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600049D RID: 1181 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600049D")]
	[Address(RVA = "0x17A34F0", Offset = "0x17A22F0", VA = "0x1817A34F0", Slot = "19")]
	public override void GoHome()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600049E RID: 1182 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600049E")]
	[Address(RVA = "0x17A21B0", Offset = "0x17A0FB0", VA = "0x1817A21B0", Slot = "12")]
	public override void Confirming()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600049F RID: 1183 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600049F")]
	[Address(RVA = "0x17AB260", Offset = "0x17AA060", VA = "0x1817AB260", Slot = "13")]
	public override void Track()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004A0 RID: 1184 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004A0")]
	[Address(RVA = "0x17AB460", Offset = "0x17AA260", VA = "0x1817AB460", Slot = "17")]
	public override void TurnPlayer()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004A1 RID: 1185 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004A1")]
	[Address(RVA = "0x17A6950", Offset = "0x17A5750", VA = "0x1817A6950", Slot = "16")]
	public override void LookFor()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004A2 RID: 1186 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004A2")]
	[Address(RVA = "0x17A2F90", Offset = "0x17A1D90", VA = "0x1817A2F90", Slot = "22")]
	public override void Fighting()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004A3 RID: 1187 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004A3")]
	[Address(RVA = "0x17A41E0", Offset = "0x17A2FE0", VA = "0x1817A41E0")]
	private void InitFightingType(AI_GhostC.AIFighting Type)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004A4 RID: 1188 RVA: 0x0000BD48 File Offset: 0x00009F48
	[Token(Token = "0x60004A4")]
	[Address(RVA = "0x17AAA70", Offset = "0x17A9870", VA = "0x1817AAA70", Slot = "39")]
	protected virtual void SetFightTrackWaitTime()
	{
		this.g_fWaitTime = 6f;
	}

	// Token: 0x060004A5 RID: 1189 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004A5")]
	[Address(RVA = "0x17A2E20", Offset = "0x17A1C20", VA = "0x1817A2E20")]
	private void FWatch()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004A6 RID: 1190 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004A6")]
	[Address(RVA = "0x17A2CE0", Offset = "0x17A1AE0", VA = "0x1817A2CE0")]
	private void FTrack()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004A7 RID: 1191 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004A7")]
	[Address(RVA = "0x17A2990", Offset = "0x17A1790", VA = "0x1817A2990")]
	private void FBite()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004A8 RID: 1192 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004A8")]
	[Address(RVA = "0x17A2B70", Offset = "0x17A1970", VA = "0x1817A2B70")]
	private void FRunBite01()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004A9 RID: 1193 RVA: 0x0000BD60 File Offset: 0x00009F60
	[Token(Token = "0x60004A9")]
	[Address(RVA = "0x17A2CB0", Offset = "0x17A1AB0", VA = "0x1817A2CB0")]
	private void FRunBite02()
	{
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			int num2 = 0;
			this.InitFightingType((AI_GhostC.AIFighting)num2);
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
	}

	// Token: 0x060004AA RID: 1194 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004AA")]
	[Address(RVA = "0x17A3780", Offset = "0x17A2580", VA = "0x1817A3780", Slot = "20")]
	public override void Hear()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004AB RID: 1195 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004AB")]
	[Address(RVA = "0x17A3610", Offset = "0x17A2410", VA = "0x1817A3610", Slot = "21")]
	public override void HearCheck()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004AC RID: 1196 RVA: 0x0000BD8C File Offset: 0x00009F8C
	[Token(Token = "0x60004AC")]
	[Address(RVA = "0x11D5AB0", Offset = "0x11D48B0", VA = "0x1811D5AB0", Slot = "23")]
	public override void Damaged()
	{
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			int parameterCount = ((IParameterProvider)this).ParameterCount;
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
	}

	// Token: 0x060004AD RID: 1197 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004AD")]
	[Address(RVA = "0x17A2630", Offset = "0x17A1430", VA = "0x1817A2630", Slot = "27")]
	public override void Death()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004AE RID: 1198 RVA: 0x0000BDB8 File Offset: 0x00009FB8
	[Token(Token = "0x60004AE")]
	[Address(RVA = "0x17A2750", Offset = "0x17A1550", VA = "0x1817A2750", Slot = "28")]
	public override void Destroy()
	{
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			this.g_DeathEffect.Stop(true);
			GameObject g_This = this.g_This;
			int num2 = 0;
			g_This.SetActive(num2 != 0);
			if (Game.GetPlayerManager().GetIsDead())
			{
				goto IL_A2;
			}
			NPCManage g_NPCM = this.g_NPCM;
			int num3 = 0;
			SceneEvent[] deathOpenEvent = g_NPCM.DeathOpenEvent;
			if (num3 >= deathOpenEvent.Length)
			{
				goto IL_A2;
			}
			if (g_NPCM.DeathOpenEvent[num3].gameObject.activeSelf)
			{
				this.g_NPCM.DeathOpenEvent[num3].OpenEvent();
			}
			NPCManage g_NPCM2 = this.g_NPCM;
			num3++;
		}
		this.g_fWaitTime = g_fWaitTime;
		IL_A2:
		base.Initialize();
	}

	// Token: 0x060004AF RID: 1199 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004AF")]
	[Address(RVA = "0x17A3920", Offset = "0x17A2720", VA = "0x1817A3920", Slot = "33")]
	public override void Hit(AttackData Data)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004B0 RID: 1200 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004B0")]
	[Address(RVA = "0x1791130", Offset = "0x178FF30", VA = "0x181791130", Slot = "34")]
	public override void ReceiveSound(Vector3 v3Source, float fSize, SceneManager.SoundWaveType SoundType)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004B1 RID: 1201 RVA: 0x0000BE74 File Offset: 0x0000A074
	[Token(Token = "0x60004B1")]
	[Address(RVA = "0x17A9DF0", Offset = "0x17A8BF0", VA = "0x1817A9DF0", Slot = "30")]
	public override void Resurrection()
	{
		base.Resurrection();
		this.g_bDeath = false;
		this.Create();
		int parameterCount = ((IParameterProvider)this).ParameterCount;
	}

	// Token: 0x060004B2 RID: 1202 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004B2")]
	[Address(RVA = "0x17A23B0", Offset = "0x17A11B0", VA = "0x1817A23B0", Slot = "31")]
	public override void Create()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004B3 RID: 1203 RVA: 0x0000BE9C File Offset: 0x0000A09C
	[Token(Token = "0x60004B3")]
	[Address(RVA = "0x17AA9D0", Offset = "0x17A97D0", VA = "0x1817AA9D0", Slot = "32")]
	public override void Remove()
	{
		base.Initialize();
		SkinnedMeshRenderer skinnedMeshRenderer = this.g_MeshRender01;
		int num = 0;
		skinnedMeshRenderer.enabled = num != 0;
		CharacterController characterController = this.g_CC;
		int num2 = 0;
		characterController.enabled = num2 != 0;
		CapsuleCollider capsuleCollider = this.g_CC02;
		int num3 = 0;
		capsuleCollider.enabled = num3 != 0;
		NPCManage g_NPCM = this.g_NPCM;
		int num4 = 0;
		g_NPCM.SetLockPoint(num4 != 0);
		this.g_DeathEffect.Stop(true);
		GameObject g_This = this.g_This;
		int num5 = 0;
		g_This.SetActive(num5 != 0);
	}

	// Token: 0x060004B4 RID: 1204 RVA: 0x0000BF20 File Offset: 0x0000A120
	[Token(Token = "0x60004B4")]
	[Address(RVA = "0x17AAA80", Offset = "0x17A9880", VA = "0x1817AAA80", Slot = "35")]
	public override void SetTimeScale(float fTimeScale)
	{
		base.SetTimeScale(fTimeScale);
		Common.SetEffectTimeScale(this.g_BodyEffect, fTimeScale);
		Common.SetEffectTimeScale(this.g_DeathEffect, fTimeScale);
	}

	// Token: 0x060004B5 RID: 1205 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60004B5")]
	[Address(RVA = "0x1791390", Offset = "0x1790190", VA = "0x181791390", Slot = "36")]
	public override void SetAiStatus(AI_NPC.AIStatus Status)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060004B6 RID: 1206 RVA: 0x0000BF4C File Offset: 0x0000A14C
	[Token(Token = "0x60004B6")]
	[Address(RVA = "0x179F890", Offset = "0x179E690", VA = "0x18179F890")]
	public AI_GhostC()
	{
	}

	// Token: 0x0400057A RID: 1402
	[FieldOffset(Offset = "0x170")]
	[Token(Token = "0x400057A")]
	protected GhostCEffectPlay g_Effect;

	// Token: 0x0400057B RID: 1403
	[FieldOffset(Offset = "0x178")]
	[Token(Token = "0x400057B")]
	protected float g_fAttackRadius = 1.2f;

	// Token: 0x0400057C RID: 1404
	[FieldOffset(Offset = "0x17C")]
	[Token(Token = "0x400057C")]
	private float g_fAniMoveSpeed;

	// Token: 0x0400057D RID: 1405
	[FieldOffset(Offset = "0x180")]
	[Token(Token = "0x400057D")]
	protected Material g_Mat;

	// Token: 0x0400057E RID: 1406
	[FieldOffset(Offset = "0x188")]
	[Token(Token = "0x400057E")]
	protected Color g_EyeColor;

	// Token: 0x0400057F RID: 1407
	[FieldOffset(Offset = "0x198")]
	[Token(Token = "0x400057F")]
	protected Color g_BodyColor;

	// Token: 0x04000580 RID: 1408
	[FieldOffset(Offset = "0x1A8")]
	[Token(Token = "0x4000580")]
	protected Color g_DefaultColor;

	// Token: 0x04000581 RID: 1409
	[FieldOffset(Offset = "0x1B8")]
	[Token(Token = "0x4000581")]
	protected SkinnedMeshRenderer g_MeshRender01;

	// Token: 0x04000582 RID: 1410
	[FieldOffset(Offset = "0x1C0")]
	[Token(Token = "0x4000582")]
	protected CharacterController g_CC;

	// Token: 0x04000583 RID: 1411
	[FieldOffset(Offset = "0x1C8")]
	[Token(Token = "0x4000583")]
	protected CapsuleCollider g_CC02;

	// Token: 0x04000584 RID: 1412
	[FieldOffset(Offset = "0x1D0")]
	[Token(Token = "0x4000584")]
	protected ParticleSystem g_BodyEffect;

	// Token: 0x04000585 RID: 1413
	[FieldOffset(Offset = "0x1D8")]
	[Token(Token = "0x4000585")]
	protected ParticleSystem g_DeathEffect;

	// Token: 0x04000586 RID: 1414
	[FieldOffset(Offset = "0x1E0")]
	[Token(Token = "0x4000586")]
	protected Shake g_ShakeHead;

	// Token: 0x04000587 RID: 1415
	[FieldOffset(Offset = "0x1E8")]
	[Token(Token = "0x4000587")]
	protected Shake g_ShakeBody;

	// Token: 0x04000588 RID: 1416
	[FieldOffset(Offset = "0x1F0")]
	[Token(Token = "0x4000588")]
	private AI_GhostC.AIFighting g_Fightting;

	// Token: 0x04000589 RID: 1417
	[FieldOffset(Offset = "0x1F4")]
	[Token(Token = "0x4000589")]
	private bool g_bRunBite;

	// Token: 0x0400058A RID: 1418
	[FieldOffset(Offset = "0x1F8")]
	[Token(Token = "0x400058A")]
	protected float g_fAttackMoveTime;

	// Token: 0x0400058B RID: 1419
	[FieldOffset(Offset = "0x1FC")]
	[Token(Token = "0x400058B")]
	protected float g_fAttackRotateTime;

	// Token: 0x0200006F RID: 111
	[Token(Token = "0x200006F")]
	private enum AIFighting
	{
		// Token: 0x0400058D RID: 1421
		[Token(Token = "0x400058D")]
		Watch,
		// Token: 0x0400058E RID: 1422
		[Token(Token = "0x400058E")]
		Bite,
		// Token: 0x0400058F RID: 1423
		[Token(Token = "0x400058F")]
		RunBite01,
		// Token: 0x04000590 RID: 1424
		[Token(Token = "0x4000590")]
		RunBite02,
		// Token: 0x04000591 RID: 1425
		[Token(Token = "0x4000591")]
		Track
	}
}
