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

// Token: 0x02000086 RID: 134
[Token(Token = "0x2000086")]
public class AI_SealGhost : AI_NPC
{
	// Token: 0x060005AD RID: 1453 RVA: 0x0000DB4C File Offset: 0x0000BD4C
	[Token(Token = "0x60005AD")]
	[Address(RVA = "0x16B96B0", Offset = "0x16B84B0", VA = "0x1816B96B0", Slot = "4")]
	public override void Start(GameObject This, NPCManage NPCM)
	{
		base.Start(This, NPCM);
		SealGhostEffectPlay component = This.GetComponent<SealGhostEffectPlay>();
		this.g_Effect = component;
		SealGhostEffectPlay sealGhostEffectPlay = this.g_Effect;
		MoveController g_Move = this.g_Move;
		sealGhostEffectPlay.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;
		this.g_fGravity = 0f;
		g_Move3.gravity = 0f;
		this.g_fVisionDistance = 200f;
		this.g_fVisionAngle = 60f;
		this.g_fWalkSpeed = 7.5f;
		this.g_fRunSpeed = 12f;
		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 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);
		Animator g_Anim = this.g_Anim;
		this.g_fAniSkirtWeights = 0.3f;
		g_Anim.SetLayerWeight(1, 0.3f);
		Animator g_Anim2 = this.g_Anim;
		this.g_fAniDamageHead = 0f;
		int num8 = 0;
		g_Anim2.SetLayerWeight(2, (float)num8);
		this.g_Status = (AI_NPC.AIStatus)((ulong)17L);
	}

	// Token: 0x060005AE RID: 1454 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005AE")]
	[Address(RVA = "0x16B9BF0", Offset = "0x16B89F0", VA = "0x1816B9BF0", Slot = "5")]
	public override void Update(float fDeltaTime)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005AF RID: 1455 RVA: 0x0000DE18 File Offset: 0x0000C018
	[Token(Token = "0x60005AF")]
	[Address(RVA = "0x16B8E70", Offset = "0x16B7C70", VA = "0x1816B8E70", 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: 0x060005B0 RID: 1456 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005B0")]
	[Address(RVA = "0x16B7540", Offset = "0x16B6340", VA = "0x1816B7540", Slot = "22")]
	public override void Fighting()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005B1 RID: 1457 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005B1")]
	[Address(RVA = "0x16B8240", Offset = "0x16B7040", VA = "0x1816B8240")]
	private void InitFightStatus(AI_SealGhost.AIFighting Status)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005B2 RID: 1458 RVA: 0x0000DE78 File Offset: 0x0000C078
	[Token(Token = "0x60005B2")]
	[Address(RVA = "0x16B5F90", Offset = "0x16B4D90", VA = "0x1816B5F90")]
	private void AttackSelect()
	{
		int num = UnityEngine.Random.Range(0, 6);
		if (num == 0)
		{
			this.g_NextFighting = (AI_SealGhost.AIFighting)((ulong)4L);
			this.g_fPlayerDistanceFar = 12f;
			this.g_fPlayerDistanceNear = 9f;
			return;
		}
		if (num == 0)
		{
			this.g_NextFighting = (AI_SealGhost.AIFighting)((ulong)7L);
			this.g_fPlayerDistanceNear = 4.5f;
			this.g_fPlayerDistanceFar = 6f;
			return;
		}
		if (num == 0)
		{
			this.g_NextFighting = (AI_SealGhost.AIFighting)((ulong)8L);
			this.g_fPlayerDistanceFar = 15f;
			this.g_fPlayerDistanceNear = 9f;
			return;
		}
		if (num != 0)
		{
			if (num != 1)
			{
				this.g_NextFighting = (AI_SealGhost.AIFighting)((ulong)11L);
			}
			this.g_NextFighting = (AI_SealGhost.AIFighting)((ulong)10L);
			this.g_fPlayerDistanceNear = 6f;
			this.g_fPlayerDistanceFar = 7.5f;
			return;
		}
		this.g_NextFighting = (AI_SealGhost.AIFighting)((ulong)9L);
		this.g_fPlayerDistanceNear = 12f;
		this.g_fPlayerDistanceFar = 18f;
	}

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

	// Token: 0x060005B4 RID: 1460 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005B4")]
	[Address(RVA = "0x16B7160", Offset = "0x16B5F60", VA = "0x1816B7160")]
	private void FWatch()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005B5 RID: 1461 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005B5")]
	[Address(RVA = "0x16B6480", Offset = "0x16B5280", VA = "0x1816B6480")]
	private void FAttackMove()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005B6 RID: 1462 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005B6")]
	[Address(RVA = "0x16B6E40", Offset = "0x16B5C40", VA = "0x1816B6E40")]
	private void FDodge()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005B7 RID: 1463 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005B7")]
	[Address(RVA = "0x16B6840", Offset = "0x16B5640", VA = "0x1816B6840")]
	private void FAttack()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005B8 RID: 1464 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005B8")]
	[Address(RVA = "0x16B6210", Offset = "0x16B5010", VA = "0x1816B6210")]
	private void FAttack01()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005B9 RID: 1465 RVA: 0x0000DF54 File Offset: 0x0000C154
	[Token(Token = "0x60005B9")]
	[Address(RVA = "0x16B6CC0", Offset = "0x16B5AC0", VA = "0x1816B6CC0")]
	private void FDamage()
	{
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			this.InitFightStatus(AI_SealGhost.AIFighting.WatchFast);
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
	}

	// Token: 0x060005BA RID: 1466 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005BA")]
	[Address(RVA = "0x16B6CF0", Offset = "0x16B5AF0", VA = "0x1816B6CF0")]
	private void FDeath()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005BB RID: 1467 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005BB")]
	[Address(RVA = "0x16B77E0", Offset = "0x16B65E0", VA = "0x1816B77E0", Slot = "33")]
	public override void Hit(AttackData Data)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005BC RID: 1468 RVA: 0x0000DF80 File Offset: 0x0000C180
	[Token(Token = "0x60005BC")]
	[Address(RVA = "0x16B1840", Offset = "0x16B0640", VA = "0x1816B1840", Slot = "30")]
	public override void Resurrection()
	{
		this.g_bDeath = false;
		int parameterCount = ((IParameterProvider)this).ParameterCount;
	}

	// Token: 0x060005BD RID: 1469 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005BD")]
	[Address(RVA = "0x16B6090", Offset = "0x16B4E90", VA = "0x1816B6090", Slot = "31")]
	public override void Create()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005BE RID: 1470 RVA: 0x0000DF9C File Offset: 0x0000C19C
	[Token(Token = "0x60005BE")]
	[Address(RVA = "0x16B8F10", Offset = "0x16B7D10", VA = "0x1816B8F10", 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: 0x060005BF RID: 1471 RVA: 0x0000DFDC File Offset: 0x0000C1DC
	[Token(Token = "0x60005BF")]
	[Address(RVA = "0x16B9660", Offset = "0x16B8460", VA = "0x1816B9660", Slot = "35")]
	public override void SetTimeScale(float fTimeScale)
	{
		this.g_Anim.speed = fTimeScale;
		this.g_Effect.SetTimeScale(fTimeScale);
	}

	// Token: 0x060005C0 RID: 1472 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60005C0")]
	[Address(RVA = "0x16B8F60", Offset = "0x16B7D60", VA = "0x1816B8F60", Slot = "36")]
	public override void SetAiStatus(AI_NPC.AIStatus Status)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060005C1 RID: 1473 RVA: 0x0000E008 File Offset: 0x0000C208
	[Token(Token = "0x60005C1")]
	[Address(RVA = "0x1565630", Offset = "0x1564430", VA = "0x181565630")]
	public AI_SealGhost()
	{
	}

	// Token: 0x040006A0 RID: 1696
	[FieldOffset(Offset = "0x170")]
	[Token(Token = "0x40006A0")]
	private SealGhostEffectPlay g_Effect;

	// Token: 0x040006A1 RID: 1697
	[FieldOffset(Offset = "0x178")]
	[Token(Token = "0x40006A1")]
	private Vector3 g_v3PrePosition;

	// Token: 0x040006A2 RID: 1698
	[FieldOffset(Offset = "0x184")]
	[Token(Token = "0x40006A2")]
	private Vector3 g_v3PreForward;

	// Token: 0x040006A3 RID: 1699
	[FieldOffset(Offset = "0x190")]
	[Token(Token = "0x40006A3")]
	private float g_fAnifMoveHorizontal;

	// Token: 0x040006A4 RID: 1700
	[FieldOffset(Offset = "0x194")]
	[Token(Token = "0x40006A4")]
	private float g_fAnifMoveVertical;

	// Token: 0x040006A5 RID: 1701
	[FieldOffset(Offset = "0x198")]
	[Token(Token = "0x40006A5")]
	private float g_fAniTrunAngle;

	// Token: 0x040006A6 RID: 1702
	[FieldOffset(Offset = "0x19C")]
	[Token(Token = "0x40006A6")]
	private float g_fAniSkirtWeights;

	// Token: 0x040006A7 RID: 1703
	[FieldOffset(Offset = "0x1A0")]
	[Token(Token = "0x40006A7")]
	private float g_fAniDamageHead;

	// Token: 0x040006A8 RID: 1704
	[FieldOffset(Offset = "0x1A8")]
	[Token(Token = "0x40006A8")]
	private Shake g_ShakeHead;

	// Token: 0x040006A9 RID: 1705
	[FieldOffset(Offset = "0x1B0")]
	[Token(Token = "0x40006A9")]
	private Shake g_ShakeSpine;

	// Token: 0x040006AA RID: 1706
	[FieldOffset(Offset = "0x1B8")]
	[Token(Token = "0x40006AA")]
	private Shake g_ShakeUpperArmL;

	// Token: 0x040006AB RID: 1707
	[FieldOffset(Offset = "0x1C0")]
	[Token(Token = "0x40006AB")]
	private Shake g_ShakeUpperArmR;

	// Token: 0x040006AC RID: 1708
	[FieldOffset(Offset = "0x1C8")]
	[Token(Token = "0x40006AC")]
	private Shake g_ShakeThighL;

	// Token: 0x040006AD RID: 1709
	[FieldOffset(Offset = "0x1D0")]
	[Token(Token = "0x40006AD")]
	private Shake g_ShakeThighR;

	// Token: 0x040006AE RID: 1710
	[FieldOffset(Offset = "0x1D8")]
	[Token(Token = "0x40006AE")]
	private Shake g_ShakeAll;

	// Token: 0x040006AF RID: 1711
	[FieldOffset(Offset = "0x1E0")]
	[Token(Token = "0x40006AF")]
	private AI_SealGhost.AIFighting g_Fighting = (AI_SealGhost.AIFighting)((ulong)1L);

	// Token: 0x040006B0 RID: 1712
	[FieldOffset(Offset = "0x1E4")]
	[Token(Token = "0x40006B0")]
	private AI_SealGhost.AIFighting g_NextFighting;

	// Token: 0x040006B1 RID: 1713
	[FieldOffset(Offset = "0x1E8")]
	[Token(Token = "0x40006B1")]
	private int g_iAWatchMoveDir;

	// Token: 0x040006B2 RID: 1714
	[FieldOffset(Offset = "0x1EC")]
	[Token(Token = "0x40006B2")]
	private float g_fPlayerDistanceNear;

	// Token: 0x040006B3 RID: 1715
	[FieldOffset(Offset = "0x1F0")]
	[Token(Token = "0x40006B3")]
	private float g_fPlayerDistanceFar;

	// Token: 0x040006B4 RID: 1716
	[FieldOffset(Offset = "0x1F4")]
	[Token(Token = "0x40006B4")]
	private float g_fAttackMove;

	// Token: 0x040006B5 RID: 1717
	[FieldOffset(Offset = "0x1F8")]
	[Token(Token = "0x40006B5")]
	private float g_fAttackRotate;

	// Token: 0x040006B6 RID: 1718
	[FieldOffset(Offset = "0x1FC")]
	[Token(Token = "0x40006B6")]
	private float g_fAttackNext;

	// Token: 0x040006B7 RID: 1719
	[Token(Token = "0x40006B7")]
	private const float g_fAttack01Number = 6f;

	// Token: 0x040006B8 RID: 1720
	[FieldOffset(Offset = "0x200")]
	[Token(Token = "0x40006B8")]
	private float g_fAttack01NumberVal;

	// Token: 0x040006B9 RID: 1721
	[FieldOffset(Offset = "0x204")]
	[Token(Token = "0x40006B9")]
	private bool g_bDodge;

	// Token: 0x040006BA RID: 1722
	[FieldOffset(Offset = "0x208")]
	[Token(Token = "0x40006BA")]
	private int g_iScript;

	// Token: 0x02000087 RID: 135
	[Token(Token = "0x2000087")]
	private enum AIFighting
	{
		// Token: 0x040006BC RID: 1724
		[Token(Token = "0x40006BC")]
		Null,
		// Token: 0x040006BD RID: 1725
		[Token(Token = "0x40006BD")]
		Watch,
		// Token: 0x040006BE RID: 1726
		[Token(Token = "0x40006BE")]
		WatchFast,
		// Token: 0x040006BF RID: 1727
		[Token(Token = "0x40006BF")]
		AttackMove,
		// Token: 0x040006C0 RID: 1728
		[Token(Token = "0x40006C0")]
		Attack0101,
		// Token: 0x040006C1 RID: 1729
		[Token(Token = "0x40006C1")]
		Attack0102,
		// Token: 0x040006C2 RID: 1730
		[Token(Token = "0x40006C2")]
		Attack0103,
		// Token: 0x040006C3 RID: 1731
		[Token(Token = "0x40006C3")]
		Attack02,
		// Token: 0x040006C4 RID: 1732
		[Token(Token = "0x40006C4")]
		Attack03,
		// Token: 0x040006C5 RID: 1733
		[Token(Token = "0x40006C5")]
		Attack04,
		// Token: 0x040006C6 RID: 1734
		[Token(Token = "0x40006C6")]
		Attack05,
		// Token: 0x040006C7 RID: 1735
		[Token(Token = "0x40006C7")]
		Attack06,
		// Token: 0x040006C8 RID: 1736
		[Token(Token = "0x40006C8")]
		DodgeL,
		// Token: 0x040006C9 RID: 1737
		[Token(Token = "0x40006C9")]
		DodgeR,
		// Token: 0x040006CA RID: 1738
		[Token(Token = "0x40006CA")]
		Damage,
		// Token: 0x040006CB RID: 1739
		[Token(Token = "0x40006CB")]
		Death,
		// Token: 0x040006CC RID: 1740
		[Token(Token = "0x40006CC")]
		End,
		// Token: 0x040006CD RID: 1741
		[Token(Token = "0x40006CD")]
		Debut
	}
}
