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

// Token: 0x0200008E RID: 142
[Token(Token = "0x200008E")]
public class AI_SpecterArmorGirl04 : AI_NPC
{
	// Token: 0x06000629 RID: 1577 RVA: 0x0000EBE4 File Offset: 0x0000CDE4
	[Token(Token = "0x6000629")]
	[Address(RVA = "0x18C9130", Offset = "0x18C7F30", VA = "0x1818C9130", Slot = "4")]
	public override void Start(GameObject This, NPCManage NPCM)
	{
		base.Start(This, NPCM);
		SpecterArmorGirl04EffectPlay component = This.GetComponent<SpecterArmorGirl04EffectPlay>();
		this.g_Effect = component;
		SpecterArmorGirl04EffectPlay specterArmorGirl04EffectPlay = this.g_Effect;
		MoveController g_Move = this.g_Move;
		specterArmorGirl04EffectPlay.InitData(g_Move);
		MoveController g_Move2 = this.g_Move;
		this.g_fAttackRadiusMax = 3f;
		this.g_fAttackRadiusMin = 3f;
		this.g_fDragRotation = 0.15f;
		g_Move2.SetDragRotation(0.15f);
		this.g_Move.SetDragMove(9f);
		this.g_Move.gravity = 10f;
		this.g_Move.fallSpeedMax = -30f;
		this.g_fVisionDistance = 20f;
		this.g_fVisionAngle = 135f;
		this.g_fWalkSpeed = 2.4f;
		this.g_fRunSpeed = 7.5f;
		this.g_fDashSpeed = 12f;
		Shake shake = new Shake();
		this.g_ShakeBody = shake;
		GameObject g_This = this.g_This;
		Shake shake2 = this.g_ShakeBody;
		Transform transform = Common.FindChild(g_This.transform, "Bip001 Spine1");
		int num = 0;
		shake2.Start(transform, num != 0);
		Shake shake3 = new Shake();
		this.g_ShakeHead = shake3;
		GameObject g_This2 = this.g_This;
		Shake shake4 = this.g_ShakeHead;
		Transform transform2 = Common.FindChild(g_This2.transform, "Bip001 Head");
		int num2 = 0;
		shake4.Start(transform2, num2 != 0);
		Shake shake5 = new Shake();
		this.g_ShakeAll = shake5;
		GameObject g_This3 = this.g_This;
		Shake shake6 = this.g_ShakeAll;
		Transform transform3 = Common.FindChild(g_This3.transform, "Bip001");
		int num3 = 0;
		shake6.Start(transform3, num3 != 0);
		Shake shake7 = new Shake();
		this.g_ShakeWeapon = shake7;
		GameObject g_This4 = this.g_This;
		Shake shake8 = this.g_ShakeWeapon;
		Transform transform4 = Common.FindChild(g_This4.transform, "shield");
		shake8.Start(transform4, true);
		int parameterCount = ((IParameterProvider)this).ParameterCount;
	}

	// Token: 0x0600062A RID: 1578 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600062A")]
	[Address(RVA = "0x18C94C0", Offset = "0x18C82C0", VA = "0x1818C94C0", Slot = "5")]
	public override void Update(float fDeltaTime)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600062B RID: 1579 RVA: 0x0000EDC0 File Offset: 0x0000CFC0
	[Token(Token = "0x600062B")]
	[Address(RVA = "0x18C9030", Offset = "0x18C7E30", VA = "0x1818C9030", Slot = "6")]
	public override void LateUpdate()
	{
		this.g_ShakeHead.Update();
		this.g_ShakeBody.Update();
		this.g_ShakeAll.Update();
		this.g_ShakeWeapon.Update();
	}

	// Token: 0x0600062C RID: 1580 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600062C")]
	[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00")]
	public void EndStatus(AI_NPC.AIStatus Status)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600062D RID: 1581 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600062D")]
	[Address(RVA = "0x18C8860", Offset = "0x18C7660", VA = "0x1818C8860", Slot = "38")]
	public virtual void InitStatus(AI_NPC.AIStatus Status)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600062E RID: 1582 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600062E")]
	[Address(RVA = "0x11DDF90", Offset = "0x11DCD90", VA = "0x1811DDF90", Slot = "9")]
	public override void Sky()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600062F RID: 1583 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600062F")]
	[Address(RVA = "0x11DD9A0", Offset = "0x11DC7A0", VA = "0x1811DD9A0", Slot = "10")]
	public override void Land()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000630 RID: 1584 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000630")]
	[Address(RVA = "0x11DC0F0", Offset = "0x11DAEF0", VA = "0x1811DC0F0", Slot = "8")]
	public override void Idle()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000631 RID: 1585 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000631")]
	[Address(RVA = "0x18BF4C0", Offset = "0x18BE2C0", VA = "0x1818BF4C0", Slot = "11")]
	public override void Patrol()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000632 RID: 1586 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000632")]
	[Address(RVA = "0x11DB270", Offset = "0x11DA070", VA = "0x1811DB270", Slot = "19")]
	public override void GoHome()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000633 RID: 1587 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000633")]
	[Address(RVA = "0x11D86F0", Offset = "0x11D74F0", VA = "0x1811D86F0", Slot = "12")]
	public override void Confirming()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000634 RID: 1588 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000634")]
	[Address(RVA = "0x11DDB10", Offset = "0x11DC910", VA = "0x1811DDB10", Slot = "16")]
	public override void LookFor()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000635 RID: 1589 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000635")]
	[Address(RVA = "0x18C6F40", Offset = "0x18C5D40", VA = "0x1818C6F40", Slot = "20")]
	public override void Hear()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000636 RID: 1590 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000636")]
	[Address(RVA = "0x178F470", Offset = "0x178E270", VA = "0x18178F470", Slot = "21")]
	public override void HearCheck()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000637 RID: 1591 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000637")]
	[Address(RVA = "0x11D89B0", Offset = "0x11D77B0", VA = "0x1811D89B0", Slot = "23")]
	public override void Damaged()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000638 RID: 1592 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000638")]
	[Address(RVA = "0x11D89B0", Offset = "0x11D77B0", VA = "0x1811D89B0", Slot = "25")]
	public override void DamagedFly()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000639 RID: 1593 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000639")]
	[Address(RVA = "0x11D89B0", Offset = "0x11D77B0", VA = "0x1811D89B0", Slot = "24")]
	public override void DamagedDown()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600063A RID: 1594 RVA: 0x0000EE00 File Offset: 0x0000D000
	[Token(Token = "0x600063A")]
	[Address(RVA = "0x18C5230", Offset = "0x18C4030", VA = "0x1818C5230", Slot = "27")]
	public override void Death()
	{
		int num = 0;
		this.EndStatus((AI_NPC.AIStatus)num);
		float g_fWaitTime = this.g_fWaitTime;
		int num2 = 0;
		if (g_fWaitTime <= (float)num2)
		{
			int parameterCount = ((IParameterProvider)this).ParameterCount;
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
		float num3 = this.g_fAttackRotate;
		while (num3 <= (float)num2)
		{
		}
		this.g_fAttackRotate = num3;
		this.g_Effect.Death();
	}

	// Token: 0x0600063B RID: 1595 RVA: 0x0000EE5C File Offset: 0x0000D05C
	[Token(Token = "0x600063B")]
	[Address(RVA = "0x11D5B50", Offset = "0x11D4950", VA = "0x1811D5B50", Slot = "28")]
	public override void Destroy()
	{
		float g_fWaitTime = this.g_fWaitTime;
		int num = 0;
		if (g_fWaitTime <= (float)num)
		{
			GameObject g_This = this.g_This;
			int num2 = 0;
			g_This.SetActive(num2 != 0);
			int num3 = 0;
			this.EndStatus((AI_NPC.AIStatus)num3);
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
		int num4 = 0;
		this.EndStatus((AI_NPC.AIStatus)num4);
	}

	// Token: 0x0600063C RID: 1596 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600063C")]
	[Address(RVA = "0x18C6B90", Offset = "0x18C5990", VA = "0x1818C6B90", Slot = "22")]
	public override void Fighting()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600063D RID: 1597 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600063D")]
	[Address(RVA = "0x18C80F0", Offset = "0x18C6EF0", VA = "0x1818C80F0")]
	protected void InitFightingType(AI_SpecterArmorGirl04.AIFighting Type)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600063E RID: 1598 RVA: 0x0000EEAC File Offset: 0x0000D0AC
	[Token(Token = "0x600063E")]
	[Address(RVA = "0x18C53A0", Offset = "0x18C41A0", VA = "0x1818C53A0")]
	private void FightAttackSelect()
	{
		int num = UnityEngine.Random.Range(0, 3);
		this.g_iBattleWatchType = num;
		float num2 = UnityEngine.Random.Range((float)0, 1f);
		if (this.g_fPlayerDistance < 9f)
		{
			this.g_fAttackRadiusMax = 12f;
		}
		this.g_fAttackRadiusMax = 12f;
		this.g_AttackType = (AI_SpecterArmorGirl04.AIFighting)((ulong)10L);
		this.g_fAttackRadiusMin = 4.5f;
	}

	// Token: 0x0600063F RID: 1599 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600063F")]
	[Address(RVA = "0x18C5800", Offset = "0x18C4600", VA = "0x1818C5800")]
	private void FightReadyBattle()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000640 RID: 1600 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000640")]
	[Address(RVA = "0x18C6250", Offset = "0x18C5050", VA = "0x1818C6250")]
	private void FightWatch()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000641 RID: 1601 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000641")]
	[Address(RVA = "0x18C5670", Offset = "0x18C4470", VA = "0x1818C5670")]
	private void FightPlayerDead()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000642 RID: 1602 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000642")]
	[Address(RVA = "0x18C55A0", Offset = "0x18C43A0", VA = "0x1818C55A0")]
	private void FightAttack()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000643 RID: 1603 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000643")]
	[Address(RVA = "0x18C52D0", Offset = "0x18C40D0", VA = "0x1818C52D0")]
	private void FightAttack02()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000644 RID: 1604 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000644")]
	[Address(RVA = "0x18C59D0", Offset = "0x18C47D0", VA = "0x1818C59D0")]
	private void FightSkill02Ready()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000645 RID: 1605 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000645")]
	[Address(RVA = "0x18C5C80", Offset = "0x18C4A80", VA = "0x1818C5C80")]
	private void FightSkill02()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000646 RID: 1606 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000646")]
	[Address(RVA = "0x18C5980", Offset = "0x18C4780", VA = "0x1818C5980")]
	private void FightSkill02End()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000647 RID: 1607 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000647")]
	[Address(RVA = "0x18C7100", Offset = "0x18C5F00", VA = "0x1818C7100", Slot = "33")]
	public override void Hit(AttackData Data)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000648 RID: 1608 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000648")]
	[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: 0x06000649 RID: 1609 RVA: 0x0000EFC4 File Offset: 0x0000D1C4
	[Token(Token = "0x6000649")]
	[Address(RVA = "0x1791340", Offset = "0x1790140", VA = "0x181791340", Slot = "30")]
	public override void Resurrection()
	{
		base.Resurrection();
		this.g_bDeath = false;
		this.Create();
		int parameterCount = ((IParameterProvider)this).ParameterCount;
	}

	// Token: 0x0600064A RID: 1610 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600064A")]
	[Address(RVA = "0x18C50D0", Offset = "0x18C3ED0", VA = "0x1818C50D0", Slot = "31")]
	public override void Create()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600064B RID: 1611 RVA: 0x0000EFEC File Offset: 0x0000D1EC
	[Token(Token = "0x600064B")]
	[Address(RVA = "0x18C9090", Offset = "0x18C7E90", VA = "0x1818C9090", Slot = "32")]
	public override void Remove()
	{
		int num = 0;
		this.EndStatus((AI_NPC.AIStatus)num);
		NPCManage g_NPCM = this.g_NPCM;
		int num2 = 0;
		g_NPCM.SetLockPoint(num2 != 0);
		this.g_Effect.Remove();
		GameObject g_This = this.g_This;
		int num3 = 0;
		g_This.SetActive(num3 != 0);
	}

	// Token: 0x0600064C RID: 1612 RVA: 0x0000F038 File Offset: 0x0000D238
	[Token(Token = "0x600064C")]
	[Address(RVA = "0x18C90F0", Offset = "0x18C7EF0", VA = "0x1818C90F0", Slot = "35")]
	public override void SetTimeScale(float fTimeScale)
	{
		base.SetTimeScale(fTimeScale);
		this.g_Effect.SetTimeScale(fTimeScale);
	}

	// Token: 0x0600064D RID: 1613 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600064D")]
	[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: 0x0600064E RID: 1614 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600064E")]
	[Address(RVA = "0x18C9760", Offset = "0x18C8560", VA = "0x1818C9760")]
	public AI_SpecterArmorGirl04()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0400073E RID: 1854
	[FieldOffset(Offset = "0x170")]
	[Token(Token = "0x400073E")]
	private SpecterArmorGirl04EffectPlay g_Effect;

	// Token: 0x0400073F RID: 1855
	[Token(Token = "0x400073F")]
	private const float g_fAttackRadius = 3f;

	// Token: 0x04000740 RID: 1856
	[FieldOffset(Offset = "0x178")]
	[Token(Token = "0x4000740")]
	private float g_fAttackRadiusMin;

	// Token: 0x04000741 RID: 1857
	[FieldOffset(Offset = "0x17C")]
	[Token(Token = "0x4000741")]
	private float g_fAttackRadiusMax;

	// Token: 0x04000742 RID: 1858
	[FieldOffset(Offset = "0x180")]
	[Token(Token = "0x4000742")]
	private float g_fAniMoveSpeed;

	// Token: 0x04000743 RID: 1859
	[FieldOffset(Offset = "0x184")]
	[Token(Token = "0x4000743")]
	private float g_fAniMoveAngle;

	// Token: 0x04000744 RID: 1860
	[FieldOffset(Offset = "0x188")]
	[Token(Token = "0x4000744")]
	private Vector3 g_v3PreForward;

	// Token: 0x04000745 RID: 1861
	[FieldOffset(Offset = "0x194")]
	[Token(Token = "0x4000745")]
	private AI_SpecterArmorGirl04.AIFighting g_Fightting;

	// Token: 0x04000746 RID: 1862
	[FieldOffset(Offset = "0x198")]
	[Token(Token = "0x4000746")]
	private AI_SpecterArmorGirl04.AIFighting g_AttackType;

	// Token: 0x04000747 RID: 1863
	[FieldOffset(Offset = "0x19C")]
	[Token(Token = "0x4000747")]
	private int g_iBattleWatchType;

	// Token: 0x04000748 RID: 1864
	[FieldOffset(Offset = "0x1A0")]
	[Token(Token = "0x4000748")]
	private float g_fAniBattleMoveDirection;

	// Token: 0x04000749 RID: 1865
	[FieldOffset(Offset = "0x1A4")]
	[Token(Token = "0x4000749")]
	private float g_fTrackTime;

	// Token: 0x0400074A RID: 1866
	[FieldOffset(Offset = "0x1A8")]
	[Token(Token = "0x400074A")]
	private float g_fAttackRotate;

	// Token: 0x0400074B RID: 1867
	[FieldOffset(Offset = "0x1B0")]
	[Token(Token = "0x400074B")]
	private Shake g_ShakeHead;

	// Token: 0x0400074C RID: 1868
	[FieldOffset(Offset = "0x1B8")]
	[Token(Token = "0x400074C")]
	private Shake g_ShakeBody;

	// Token: 0x0400074D RID: 1869
	[FieldOffset(Offset = "0x1C0")]
	[Token(Token = "0x400074D")]
	private Shake g_ShakeAll;

	// Token: 0x0400074E RID: 1870
	[FieldOffset(Offset = "0x1C8")]
	[Token(Token = "0x400074E")]
	private Shake g_ShakeWeapon;

	// Token: 0x0200008F RID: 143
	[Token(Token = "0x200008F")]
	protected enum AIFighting
	{
		// Token: 0x04000750 RID: 1872
		[Token(Token = "0x4000750")]
		ReadyBattle,
		// Token: 0x04000751 RID: 1873
		[Token(Token = "0x4000751")]
		WatchFirst,
		// Token: 0x04000752 RID: 1874
		[Token(Token = "0x4000752")]
		Watch,
		// Token: 0x04000753 RID: 1875
		[Token(Token = "0x4000753")]
		PlayerDead,
		// Token: 0x04000754 RID: 1876
		[Token(Token = "0x4000754")]
		Attack01,
		// Token: 0x04000755 RID: 1877
		[Token(Token = "0x4000755")]
		Attack02,
		// Token: 0x04000756 RID: 1878
		[Token(Token = "0x4000756")]
		Attack03,
		// Token: 0x04000757 RID: 1879
		[Token(Token = "0x4000757")]
		Skill01,
		// Token: 0x04000758 RID: 1880
		[Token(Token = "0x4000758")]
		Skill03,
		// Token: 0x04000759 RID: 1881
		[Token(Token = "0x4000759")]
		Skill04,
		// Token: 0x0400075A RID: 1882
		[Token(Token = "0x400075A")]
		Skill02Ready,
		// Token: 0x0400075B RID: 1883
		[Token(Token = "0x400075B")]
		Skill02,
		// Token: 0x0400075C RID: 1884
		[Token(Token = "0x400075C")]
		Skill02End,
		// Token: 0x0400075D RID: 1885
		[Token(Token = "0x400075D")]
		AttackDebut
	}
}
