using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x02000081 RID: 129
[Token(Token = "0x2000081")]
public class AI_GhostE02 : AI_NPC
{
	// Token: 0x06000551 RID: 1361 RVA: 0x0000D198 File Offset: 0x0000B398
	[Token(Token = "0x6000551")]
	[Address(RVA = "0x16AE530", Offset = "0x16AD330", VA = "0x1816AE530", Slot = "4")]
	public override void Start(GameObject This, NPCManage NPCM)
	{
		base.Start(This, NPCM);
		Shake shake = new Shake();
		this.g_ShakeHead = shake;
		GameObject g_This = this.g_This;
		Shake shake2 = this.g_ShakeHead;
		Transform transform = Common.FindChild(g_This.transform, "Bip001 Head");
		int num = 0;
		shake2.Start(transform, num != 0);
		Shake shake3 = new Shake();
		this.g_ShakeSpine = shake3;
		GameObject g_This2 = this.g_This;
		Shake shake4 = this.g_ShakeSpine;
		Transform transform2 = Common.FindChild(g_This2.transform, "Bip001 Spine1");
		int num2 = 0;
		shake4.Start(transform2, num2 != 0);
		Shake shake5 = new Shake();
		this.g_ShakeUpperArmL = shake5;
		GameObject g_This3 = this.g_This;
		Shake shake6 = this.g_ShakeUpperArmL;
		Transform transform3 = Common.FindChild(g_This3.transform, "Bip001 L UpperArm");
		int num3 = 0;
		shake6.Start(transform3, num3 != 0);
		Shake shake7 = new Shake();
		this.g_ShakeUpperArmR = shake7;
		GameObject g_This4 = this.g_This;
		Shake shake8 = this.g_ShakeUpperArmR;
		Transform transform4 = Common.FindChild(g_This4.transform, "Bip001 R UpperArm");
		int num4 = 0;
		shake8.Start(transform4, num4 != 0);
		Shake shake9 = new Shake();
		this.g_ShakeThighL = shake9;
		GameObject g_This5 = this.g_This;
		Shake shake10 = this.g_ShakeThighL;
		Transform transform5 = Common.FindChild(g_This5.transform, "Bip001 L Thigh");
		int num5 = 0;
		shake10.Start(transform5, num5 != 0);
		Shake shake11 = new Shake();
		this.g_ShakeThighR = shake11;
		GameObject g_This6 = this.g_This;
		Shake shake12 = this.g_ShakeThighR;
		Transform transform6 = Common.FindChild(g_This6.transform, "Bip001 R Thigh");
		int num6 = 0;
		shake12.Start(transform6, num6 != 0);
		Shake shake13 = new Shake();
		this.g_ShakeAll = shake13;
		GameObject g_This7 = this.g_This;
		Shake shake14 = this.g_ShakeAll;
		Transform transform7 = Common.FindChild(g_This7.transform, "Bip_GhostE");
		int num7 = 0;
		shake14.Start(transform7, num7 != 0);
		this.g_bLookAtEnable = true;
		this.g_Status = (AI_NPC.AIStatus)((ulong)17L);
		this.InitFightStatus(AI_GhostE02.AIFighting.Watch);
	}

	// Token: 0x06000552 RID: 1362 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000552")]
	[Address(RVA = "0x16AE930", Offset = "0x16AD730", VA = "0x1816AE930", Slot = "5")]
	public override void Update(float fDeltaTime)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000553 RID: 1363 RVA: 0x0000D384 File Offset: 0x0000B584
	[Token(Token = "0x6000553")]
	[Address(RVA = "0x16AE490", Offset = "0x16AD290", VA = "0x1816AE490", Slot = "6")]
	public override void LateUpdate()
	{
		this.g_ShakeHead.Update();
		this.g_ShakeSpine.Update();
		this.g_ShakeUpperArmL.Update();
		this.g_ShakeUpperArmR.Update();
		this.g_ShakeThighL.Update();
		this.g_ShakeThighR.Update();
		this.g_ShakeAll.Update();
	}

	// Token: 0x06000554 RID: 1364 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000554")]
	[Address(RVA = "0x16AD6A0", Offset = "0x16AC4A0", VA = "0x1816AD6A0", Slot = "22")]
	public override void Fighting()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000555 RID: 1365 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000555")]
	[Address(RVA = "0x16ADFD0", Offset = "0x16ACDD0", VA = "0x1816ADFD0")]
	private void InitFightStatus(AI_GhostE02.AIFighting Status)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000556 RID: 1366 RVA: 0x0000D3E4 File Offset: 0x0000B5E4
	[Token(Token = "0x6000556")]
	[Address(RVA = "0x16AD260", Offset = "0x16AC060", VA = "0x1816AD260")]
	private void AttackSelect()
	{
		int num = UnityEngine.Random.Range(0, 4);
		if (num != 0)
		{
			if (num == 0)
			{
				this.g_NextFighting = (AI_GhostE02.AIFighting)((ulong)7L);
				return;
			}
			if (num == 0)
			{
				this.g_NextFighting = (AI_GhostE02.AIFighting)((ulong)8L);
				return;
			}
			if (num == 1)
			{
				this.g_NextFighting = (AI_GhostE02.AIFighting)((ulong)9L);
				return;
			}
		}
		else
		{
			this.g_NextFighting = (AI_GhostE02.AIFighting)((ulong)6L);
		}
	}

	// Token: 0x06000557 RID: 1367 RVA: 0x0000D434 File Offset: 0x0000B634
	[Token(Token = "0x6000557")]
	[Address(RVA = "0x16AD650", Offset = "0x16AC450", VA = "0x1816AD650")]
	private void FWatch()
	{
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			AI_GhostE02.AIFighting aifighting = this.g_NextFighting;
			this.InitFightStatus(aifighting);
			return;
		}
		float g_fPlayerDistance = this.g_fPlayerDistance;
		this.g_fWaitTime = g_fWaitTime;
		this.InitFightStatus((AI_GhostE02.AIFighting)((uint)3));
	}

	// Token: 0x06000558 RID: 1368 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000558")]
	[Address(RVA = "0x16AD410", Offset = "0x16AC210", VA = "0x1816AD410")]
	private void FMoveStart()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000559 RID: 1369 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000559")]
	[Address(RVA = "0x16AD520", Offset = "0x16AC320", VA = "0x1816AD520")]
	private void FMove()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600055A RID: 1370 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600055A")]
	[Address(RVA = "0x16AD300", Offset = "0x16AC100", VA = "0x1816AD300")]
	private void FMoveEnd()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600055B RID: 1371 RVA: 0x0000D474 File Offset: 0x0000B674
	[Token(Token = "0x600055B")]
	[Address(RVA = "0x16AD2D0", Offset = "0x16AC0D0", VA = "0x1816AD2D0")]
	private void FAttack()
	{
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			this.InitFightStatus(AI_GhostE02.AIFighting.Watch);
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
	}

	// Token: 0x0600055C RID: 1372 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600055C")]
	[Address(RVA = "0x16ADAC0", Offset = "0x16AC8C0", VA = "0x1816ADAC0", Slot = "33")]
	public override void Hit(AttackData Data)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600055D RID: 1373 RVA: 0x0000D4A0 File Offset: 0x0000B6A0
	[Token(Token = "0x600055D")]
	[Address(RVA = "0x16AE9E0", Offset = "0x16AD7E0", VA = "0x1816AE9E0")]
	public AI_GhostE02()
	{
	}

	// Token: 0x0400062B RID: 1579
	[FieldOffset(Offset = "0x170")]
	[Token(Token = "0x400062B")]
	private Shake g_ShakeHead;

	// Token: 0x0400062C RID: 1580
	[FieldOffset(Offset = "0x178")]
	[Token(Token = "0x400062C")]
	private Shake g_ShakeSpine;

	// Token: 0x0400062D RID: 1581
	[FieldOffset(Offset = "0x180")]
	[Token(Token = "0x400062D")]
	private Shake g_ShakeUpperArmL;

	// Token: 0x0400062E RID: 1582
	[FieldOffset(Offset = "0x188")]
	[Token(Token = "0x400062E")]
	private Shake g_ShakeUpperArmR;

	// Token: 0x0400062F RID: 1583
	[FieldOffset(Offset = "0x190")]
	[Token(Token = "0x400062F")]
	private Shake g_ShakeThighL;

	// Token: 0x04000630 RID: 1584
	[FieldOffset(Offset = "0x198")]
	[Token(Token = "0x4000630")]
	private Shake g_ShakeThighR;

	// Token: 0x04000631 RID: 1585
	[FieldOffset(Offset = "0x1A0")]
	[Token(Token = "0x4000631")]
	private Shake g_ShakeAll;

	// Token: 0x04000632 RID: 1586
	[FieldOffset(Offset = "0x1A8")]
	[Token(Token = "0x4000632")]
	private AI_GhostE02.AIFighting g_Fighting = (AI_GhostE02.AIFighting)((ulong)1L);

	// Token: 0x04000633 RID: 1587
	[FieldOffset(Offset = "0x1AC")]
	[Token(Token = "0x4000633")]
	private AI_GhostE02.AIFighting g_NextFighting;

	// Token: 0x04000634 RID: 1588
	[Token(Token = "0x4000634")]
	private const float g_fAttackRange = 10.5f;

	// Token: 0x04000635 RID: 1589
	[FieldOffset(Offset = "0x1B0")]
	[Token(Token = "0x4000635")]
	private bool g_bMove;

	// Token: 0x02000082 RID: 130
	[Token(Token = "0x2000082")]
	private enum AIFighting
	{
		// Token: 0x04000637 RID: 1591
		[Token(Token = "0x4000637")]
		Null,
		// Token: 0x04000638 RID: 1592
		[Token(Token = "0x4000638")]
		Watch,
		// Token: 0x04000639 RID: 1593
		[Token(Token = "0x4000639")]
		WatchFast,
		// Token: 0x0400063A RID: 1594
		[Token(Token = "0x400063A")]
		MoveStart,
		// Token: 0x0400063B RID: 1595
		[Token(Token = "0x400063B")]
		Move,
		// Token: 0x0400063C RID: 1596
		[Token(Token = "0x400063C")]
		MoveEnd,
		// Token: 0x0400063D RID: 1597
		[Token(Token = "0x400063D")]
		Attack01,
		// Token: 0x0400063E RID: 1598
		[Token(Token = "0x400063E")]
		Attack02,
		// Token: 0x0400063F RID: 1599
		[Token(Token = "0x400063F")]
		Attack03,
		// Token: 0x04000640 RID: 1600
		[Token(Token = "0x4000640")]
		Attack04,
		// Token: 0x04000641 RID: 1601
		[Token(Token = "0x4000641")]
		Death,
		// Token: 0x04000642 RID: 1602
		[Token(Token = "0x4000642")]
		Destroy,
		// Token: 0x04000643 RID: 1603
		[Token(Token = "0x4000643")]
		End
	}
}
