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

// Token: 0x0200007F RID: 127
[Token(Token = "0x200007F")]
public class AI_GhostE : AI_NPC
{
	// Token: 0x0600053B RID: 1339 RVA: 0x0000CC70 File Offset: 0x0000AE70
	[Token(Token = "0x600053B")]
	[Address(RVA = "0x16B1AF0", Offset = "0x16B08F0", VA = "0x1816B1AF0", Slot = "4")]
	public override void Start(GameObject This, NPCManage NPCM)
	{
		base.Start(This, NPCM);
		Animator component = Common.FindChild(this.g_This.transform, "GhostE_Face").GetComponent<Animator>();
		this.g_AniFace = component;
		Animator component2 = Common.FindChild(this.g_This.transform, "GhostE_Face_ZWrite").GetComponent<Animator>();
		this.g_AniFaceZWrite = component2;
		GhostEEffectPlay component3 = This.GetComponent<GhostEEffectPlay>();
		this.g_Effect = component3;
		GhostEEffectPlay ghostEEffectPlay = this.g_Effect;
		MoveController g_Move = this.g_Move;
		ghostEEffectPlay.InitData(g_Move);
		MoveController g_Move2 = this.g_Move;
		this.g_fDragRotation = 0.6f;
		g_Move2.SetDragRotation(0.6f);
		this.g_Move.SetDragMove(9f);
		MoveController g_Move3 = this.g_Move;
		int num = 0;
		this.g_fGravity = (float)num;
		g_Move3.gravity = (float)num;
		this.g_fVisionDistance = 200f;
		this.g_fVisionAngle = 60f;
		this.g_fWalkSpeed = 6f;
		this.g_fRunSpeed = 9f;
		this.g_fDashSpeed = 18f;
		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 num2 = 0;
		shake2.Start(transform, num2 != 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 num3 = 0;
		shake4.Start(transform2, num3 != 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 num4 = 0;
		shake6.Start(transform3, num4 != 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 num5 = 0;
		shake8.Start(transform4, num5 != 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 num6 = 0;
		shake10.Start(transform5, num6 != 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 num7 = 0;
		shake12.Start(transform6, num7 != 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 num8 = 0;
		shake14.Start(transform7, num8 != 0);
		Animator g_Anim = this.g_Anim;
		this.g_fAniSkirtWeights = 1f;
		g_Anim.SetLayerWeight(1, 1f);
		this.g_Status = (AI_NPC.AIStatus)((ulong)17L);
	}

	// Token: 0x0600053C RID: 1340 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600053C")]
	[Address(RVA = "0x16B20C0", Offset = "0x16B0EC0", VA = "0x1816B20C0", Slot = "5")]
	public override void Update(float fDeltaTime)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600053D RID: 1341 RVA: 0x0000CF60 File Offset: 0x0000B160
	[Token(Token = "0x600053D")]
	[Address(RVA = "0x16B1750", Offset = "0x16B0550", VA = "0x1816B1750", 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: 0x0600053E RID: 1342 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600053E")]
	[Address(RVA = "0x16B0030", Offset = "0x16AEE30", VA = "0x1816B0030", Slot = "22")]
	public override void Fighting()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600053F RID: 1343 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600053F")]
	[Address(RVA = "0x16B0C60", Offset = "0x16AFA60", VA = "0x1816B0C60")]
	private void InitFightStatus(AI_GhostE.AIFighting Status)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000540 RID: 1344 RVA: 0x0000CFC0 File Offset: 0x0000B1C0
	[Token(Token = "0x6000540")]
	[Address(RVA = "0x16AEA00", Offset = "0x16AD800", VA = "0x1816AEA00")]
	private void AttackSelect()
	{
		int num = UnityEngine.Random.Range(0, 6);
		if (num == 0)
		{
			this.g_NextFighting = (AI_GhostE.AIFighting)((ulong)4L);
			this.g_fPlayerDistanceFar = 12f;
			this.g_fPlayerDistanceNear = 9f;
			return;
		}
		if (num == 0)
		{
			this.g_NextFighting = (AI_GhostE.AIFighting)((ulong)7L);
			this.g_fPlayerDistanceNear = 4.5f;
			this.g_fPlayerDistanceFar = 6f;
			return;
		}
		if (num == 0)
		{
			this.g_NextFighting = (AI_GhostE.AIFighting)((ulong)8L);
			this.g_fPlayerDistanceFar = 15f;
			this.g_fPlayerDistanceNear = 9f;
			return;
		}
		if (num != 0)
		{
			if (num != 1)
			{
				this.g_NextFighting = (AI_GhostE.AIFighting)((ulong)11L);
			}
			this.g_NextFighting = (AI_GhostE.AIFighting)((ulong)10L);
			this.g_fPlayerDistanceNear = 6f;
			this.g_fPlayerDistanceFar = 7.5f;
			return;
		}
		this.g_NextFighting = (AI_GhostE.AIFighting)((ulong)9L);
		this.g_fPlayerDistanceNear = 12f;
		this.g_fPlayerDistanceFar = 18f;
	}

	// Token: 0x06000541 RID: 1345 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000541")]
	[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00")]
	private void FDebut()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000542 RID: 1346 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000542")]
	[Address(RVA = "0x16AFC40", Offset = "0x16AEA40", VA = "0x1816AFC40")]
	private void FWatch()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000543 RID: 1347 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000543")]
	[Address(RVA = "0x16AEEF0", Offset = "0x16ADCF0", VA = "0x1816AEEF0")]
	private void FAttackMove()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000544 RID: 1348 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000544")]
	[Address(RVA = "0x16AF920", Offset = "0x16AE720", VA = "0x1816AF920")]
	private void FDodge()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000545 RID: 1349 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000545")]
	[Address(RVA = "0x16AF2B0", Offset = "0x16AE0B0", VA = "0x1816AF2B0")]
	private void FAttack()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000546 RID: 1350 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000546")]
	[Address(RVA = "0x16AEC80", Offset = "0x16ADA80", VA = "0x1816AEC80")]
	private void FAttack01()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000547 RID: 1351 RVA: 0x0000D09C File Offset: 0x0000B29C
	[Token(Token = "0x6000547")]
	[Address(RVA = "0x16AF730", Offset = "0x16AE530", VA = "0x1816AF730")]
	private void FDamage()
	{
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			this.InitFightStatus(AI_GhostE.AIFighting.WatchFast);
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
	}

	// Token: 0x06000548 RID: 1352 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000548")]
	[Address(RVA = "0x16AF760", Offset = "0x16AE560", VA = "0x1816AF760")]
	private void FDeath()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000549 RID: 1353 RVA: 0x0000D0C8 File Offset: 0x0000B2C8
	[Token(Token = "0x6000549")]
	[Address(RVA = "0x16AF8F0", Offset = "0x16AE6F0", VA = "0x1816AF8F0")]
	private void FDestory()
	{
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			this.InitFightStatus(AI_GhostE.AIFighting.End);
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
	}

	// Token: 0x0600054A RID: 1354 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600054A")]
	[Address(RVA = "0x16B0340", Offset = "0x16AF140", VA = "0x1816B0340", Slot = "33")]
	public override void Hit(AttackData Data)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600054B RID: 1355 RVA: 0x0000D0F4 File Offset: 0x0000B2F4
	[Token(Token = "0x600054B")]
	[Address(RVA = "0x16B1840", Offset = "0x16B0640", VA = "0x1816B1840", Slot = "30")]
	public override void Resurrection()
	{
		this.g_bDeath = false;
		int parameterCount = ((IParameterProvider)this).ParameterCount;
	}

	// Token: 0x0600054C RID: 1356 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600054C")]
	[Address(RVA = "0x16AEB00", Offset = "0x16AD900", VA = "0x1816AEB00", Slot = "31")]
	public override void Create()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600054D RID: 1357 RVA: 0x0000D110 File Offset: 0x0000B310
	[Token(Token = "0x600054D")]
	[Address(RVA = "0x16B17F0", Offset = "0x16B05F0", VA = "0x1816B17F0", Slot = "32")]
	public override void Remove()
	{
		NPCManage g_NPCM = this.g_NPCM;
		int num = 0;
		g_NPCM.SetLockPoint(num != 0);
		this.g_Effect.RemoveEnemy();
		GameObject g_This = this.g_This;
		int num2 = 0;
		g_This.SetActive(num2 != 0);
	}

	// Token: 0x0600054E RID: 1358 RVA: 0x0000D150 File Offset: 0x0000B350
	[Token(Token = "0x600054E")]
	[Address(RVA = "0x16B1AA0", Offset = "0x16B08A0", VA = "0x1816B1AA0", Slot = "35")]
	public override void SetTimeScale(float fTimeScale)
	{
		this.g_Anim.speed = fTimeScale;
		this.g_Effect.SetTimeScale(fTimeScale);
	}

	// Token: 0x0600054F RID: 1359 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600054F")]
	[Address(RVA = "0x16B1860", Offset = "0x16B0660", VA = "0x1816B1860", Slot = "36")]
	public override void SetAiStatus(AI_NPC.AIStatus Status)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000550 RID: 1360 RVA: 0x0000D17C File Offset: 0x0000B37C
	[Token(Token = "0x6000550")]
	[Address(RVA = "0x16B24B0", Offset = "0x16B12B0", VA = "0x1816B24B0")]
	public AI_GhostE()
	{
	}

	// Token: 0x040005FB RID: 1531
	[FieldOffset(Offset = "0x170")]
	[Token(Token = "0x40005FB")]
	private Animator g_AniFace;

	// Token: 0x040005FC RID: 1532
	[FieldOffset(Offset = "0x178")]
	[Token(Token = "0x40005FC")]
	private Animator g_AniFaceZWrite;

	// Token: 0x040005FD RID: 1533
	[FieldOffset(Offset = "0x180")]
	[Token(Token = "0x40005FD")]
	private GhostEEffectPlay g_Effect;

	// Token: 0x040005FE RID: 1534
	[FieldOffset(Offset = "0x188")]
	[Token(Token = "0x40005FE")]
	private Vector3 g_v3PrePosition;

	// Token: 0x040005FF RID: 1535
	[FieldOffset(Offset = "0x194")]
	[Token(Token = "0x40005FF")]
	private Vector3 g_v3PreForward;

	// Token: 0x04000600 RID: 1536
	[FieldOffset(Offset = "0x1A0")]
	[Token(Token = "0x4000600")]
	private float g_fAnifMoveHorizontal;

	// Token: 0x04000601 RID: 1537
	[FieldOffset(Offset = "0x1A4")]
	[Token(Token = "0x4000601")]
	private float g_fAnifMoveVertical;

	// Token: 0x04000602 RID: 1538
	[FieldOffset(Offset = "0x1A8")]
	[Token(Token = "0x4000602")]
	private float g_fAniTrunAngle;

	// Token: 0x04000603 RID: 1539
	[FieldOffset(Offset = "0x1AC")]
	[Token(Token = "0x4000603")]
	private float g_fAniSkirtWeights;

	// Token: 0x04000604 RID: 1540
	[FieldOffset(Offset = "0x1B0")]
	[Token(Token = "0x4000604")]
	private Shake g_ShakeHead;

	// Token: 0x04000605 RID: 1541
	[FieldOffset(Offset = "0x1B8")]
	[Token(Token = "0x4000605")]
	private Shake g_ShakeSpine;

	// Token: 0x04000606 RID: 1542
	[FieldOffset(Offset = "0x1C0")]
	[Token(Token = "0x4000606")]
	private Shake g_ShakeUpperArmL;

	// Token: 0x04000607 RID: 1543
	[FieldOffset(Offset = "0x1C8")]
	[Token(Token = "0x4000607")]
	private Shake g_ShakeUpperArmR;

	// Token: 0x04000608 RID: 1544
	[FieldOffset(Offset = "0x1D0")]
	[Token(Token = "0x4000608")]
	private Shake g_ShakeThighL;

	// Token: 0x04000609 RID: 1545
	[FieldOffset(Offset = "0x1D8")]
	[Token(Token = "0x4000609")]
	private Shake g_ShakeThighR;

	// Token: 0x0400060A RID: 1546
	[FieldOffset(Offset = "0x1E0")]
	[Token(Token = "0x400060A")]
	private Shake g_ShakeAll;

	// Token: 0x0400060B RID: 1547
	[FieldOffset(Offset = "0x1E8")]
	[Token(Token = "0x400060B")]
	private AI_GhostE.AIFighting g_Fighting = (AI_GhostE.AIFighting)((ulong)1L);

	// Token: 0x0400060C RID: 1548
	[FieldOffset(Offset = "0x1EC")]
	[Token(Token = "0x400060C")]
	private AI_GhostE.AIFighting g_NextFighting;

	// Token: 0x0400060D RID: 1549
	[FieldOffset(Offset = "0x1F0")]
	[Token(Token = "0x400060D")]
	private int g_iAWatchMoveDir;

	// Token: 0x0400060E RID: 1550
	[FieldOffset(Offset = "0x1F4")]
	[Token(Token = "0x400060E")]
	private float g_fPlayerDistanceNear;

	// Token: 0x0400060F RID: 1551
	[FieldOffset(Offset = "0x1F8")]
	[Token(Token = "0x400060F")]
	private float g_fPlayerDistanceFar;

	// Token: 0x04000610 RID: 1552
	[FieldOffset(Offset = "0x1FC")]
	[Token(Token = "0x4000610")]
	private float g_fAttackMove;

	// Token: 0x04000611 RID: 1553
	[FieldOffset(Offset = "0x200")]
	[Token(Token = "0x4000611")]
	private float g_fAttackRotate;

	// Token: 0x04000612 RID: 1554
	[FieldOffset(Offset = "0x204")]
	[Token(Token = "0x4000612")]
	private float g_fAttackNext;

	// Token: 0x04000613 RID: 1555
	[Token(Token = "0x4000613")]
	private const float g_fAttack01Number = 6f;

	// Token: 0x04000614 RID: 1556
	[FieldOffset(Offset = "0x208")]
	[Token(Token = "0x4000614")]
	private float g_fAttack01NumberVal;

	// Token: 0x04000615 RID: 1557
	[FieldOffset(Offset = "0x20C")]
	[Token(Token = "0x4000615")]
	private bool g_bDodge;

	// Token: 0x04000616 RID: 1558
	[FieldOffset(Offset = "0x210")]
	[Token(Token = "0x4000616")]
	private int g_iScript;

	// Token: 0x02000080 RID: 128
	[Token(Token = "0x2000080")]
	private enum AIFighting
	{
		// Token: 0x04000618 RID: 1560
		[Token(Token = "0x4000618")]
		Null,
		// Token: 0x04000619 RID: 1561
		[Token(Token = "0x4000619")]
		Watch,
		// Token: 0x0400061A RID: 1562
		[Token(Token = "0x400061A")]
		WatchFast,
		// Token: 0x0400061B RID: 1563
		[Token(Token = "0x400061B")]
		AttackMove,
		// Token: 0x0400061C RID: 1564
		[Token(Token = "0x400061C")]
		Attack0101,
		// Token: 0x0400061D RID: 1565
		[Token(Token = "0x400061D")]
		Attack0102,
		// Token: 0x0400061E RID: 1566
		[Token(Token = "0x400061E")]
		Attack0103,
		// Token: 0x0400061F RID: 1567
		[Token(Token = "0x400061F")]
		Attack02,
		// Token: 0x04000620 RID: 1568
		[Token(Token = "0x4000620")]
		Attack03,
		// Token: 0x04000621 RID: 1569
		[Token(Token = "0x4000621")]
		Attack04,
		// Token: 0x04000622 RID: 1570
		[Token(Token = "0x4000622")]
		Attack05,
		// Token: 0x04000623 RID: 1571
		[Token(Token = "0x4000623")]
		Attack06,
		// Token: 0x04000624 RID: 1572
		[Token(Token = "0x4000624")]
		DodgeL,
		// Token: 0x04000625 RID: 1573
		[Token(Token = "0x4000625")]
		DodgeR,
		// Token: 0x04000626 RID: 1574
		[Token(Token = "0x4000626")]
		Damage,
		// Token: 0x04000627 RID: 1575
		[Token(Token = "0x4000627")]
		Death,
		// Token: 0x04000628 RID: 1576
		[Token(Token = "0x4000628")]
		Destroy,
		// Token: 0x04000629 RID: 1577
		[Token(Token = "0x4000629")]
		End,
		// Token: 0x0400062A RID: 1578
		[Token(Token = "0x400062A")]
		Debut
	}
}
