using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x0200008F RID: 143
[Token(Token = "0x200008F")]
public class AI_SpecterArmorGirl04 : AI_NPC
{
	// Token: 0x0600062D RID: 1581 RVA: 0x0000E738 File Offset: 0x0000C938
	[Token(Token = "0x600062D")]
	[Address(RVA = "0x183A300", Offset = "0x1839300", VA = "0x18183A300", 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);
		base.CompleteDisposed();
	}

	// Token: 0x0600062E RID: 1582 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600062E")]
	[Address(RVA = "0x183A690", Offset = "0x1839690", VA = "0x18183A690", Slot = "5")]
	public override void Update(float fDeltaTime)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600062F RID: 1583 RVA: 0x0000E914 File Offset: 0x0000CB14
	[Token(Token = "0x600062F")]
	[Address(RVA = "0x1839E00", Offset = "0x1838E00", VA = "0x181839E00", Slot = "6")]
	public override void LateUpdate()
	{
		this.g_ShakeHead.Update();
		this.g_ShakeBody.Update();
		this.g_ShakeAll.Update();
		this.g_ShakeWeapon.Update();
	}

	// Token: 0x06000630 RID: 1584 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000630")]
	[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0")]
	public void EndStatus(AI_NPC.AIStatus Status)
	{
		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 = "0x18395C0", Offset = "0x18385C0", VA = "0x1818395C0", Slot = "38")]
	public virtual void InitStatus(AI_NPC.AIStatus Status)
	{
		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 = "0x183A2A0", Offset = "0x18392A0", VA = "0x18183A2A0", Slot = "9")]
	public override void Sky()
	{
		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 = "0x1839D90", Offset = "0x1838D90", VA = "0x181839D90", Slot = "10")]
	public override void Land()
	{
		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 = "0x1838DF0", Offset = "0x1837DF0", VA = "0x181838DF0", Slot = "8")]
	public override void Idle()
	{
		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 = "0x1839EC0", Offset = "0x1838EC0", VA = "0x181839EC0", Slot = "11")]
	public override void Patrol()
	{
		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 = "0x1837920", Offset = "0x1836920", VA = "0x181837920", Slot = "19")]
	public override void GoHome()
	{
		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 = "0x18358A0", Offset = "0x18348A0", VA = "0x1818358A0", Slot = "12")]
	public override void Confirming()
	{
		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 = "0x1839E60", Offset = "0x1838E60", VA = "0x181839E60", Slot = "16")]
	public override void LookFor()
	{
		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 = "0x1837BE0", Offset = "0x1836BE0", VA = "0x181837BE0", Slot = "20")]
	public override void Hear()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600063A RID: 1594 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600063A")]
	[Address(RVA = "0x1837A50", Offset = "0x1836A50", VA = "0x181837A50", Slot = "21")]
	public override void HearCheck()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600063B RID: 1595 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600063B")]
	[Address(RVA = "0x1835B60", Offset = "0x1834B60", VA = "0x181835B60", Slot = "23")]
	public override void Damaged()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600063C RID: 1596 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600063C")]
	[Address(RVA = "0x1835B60", Offset = "0x1834B60", VA = "0x181835B60", Slot = "25")]
	public override void DamagedFly()
	{
		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 = "0x1835B60", Offset = "0x1834B60", VA = "0x181835B60", Slot = "24")]
	public override void DamagedDown()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600063E RID: 1598 RVA: 0x0000E954 File Offset: 0x0000CB54
	[Token(Token = "0x600063E")]
	[Address(RVA = "0x1835BB0", Offset = "0x1834BB0", VA = "0x181835BB0", 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)
		{
			base.CompleteDisposed();
			return;
		}
		this.g_fWaitTime = g_fWaitTime;
		float num3 = this.g_fAttackRotate;
		while (num3 <= (float)num2)
		{
		}
		this.g_fAttackRotate = num3;
		this.g_Effect.Death();
	}

	// Token: 0x0600063F RID: 1599 RVA: 0x0000E9AC File Offset: 0x0000CBAC
	[Token(Token = "0x600063F")]
	[Address(RVA = "0x1835C50", Offset = "0x1834C50", VA = "0x181835C50", 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: 0x06000640 RID: 1600 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000640")]
	[Address(RVA = "0x1837570", Offset = "0x1836570", VA = "0x181837570", Slot = "22")]
	public override void Fighting()
	{
		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 = "0x1838E50", Offset = "0x1837E50", VA = "0x181838E50")]
	protected void InitFightingType(AI_SpecterArmorGirl04.AIFighting Type)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000642 RID: 1602 RVA: 0x0000E9FC File Offset: 0x0000CBFC
	[Token(Token = "0x6000642")]
	[Address(RVA = "0x1835D80", Offset = "0x1834D80", VA = "0x181835D80")]
	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: 0x06000643 RID: 1603 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000643")]
	[Address(RVA = "0x18361E0", Offset = "0x18351E0", VA = "0x1818361E0")]
	private void FightReadyBattle()
	{
		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 = "0x1836C30", Offset = "0x1835C30", VA = "0x181836C30")]
	private void FightWatch()
	{
		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 = "0x1836050", Offset = "0x1835050", VA = "0x181836050")]
	private void FightPlayerDead()
	{
		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 = "0x1835F80", Offset = "0x1834F80", VA = "0x181835F80")]
	private void FightAttack()
	{
		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 = "0x1835CB0", Offset = "0x1834CB0", VA = "0x181835CB0")]
	private void FightAttack02()
	{
		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 = "0x18363B0", Offset = "0x18353B0", VA = "0x1818363B0")]
	private void FightSkill02Ready()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000649 RID: 1609 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000649")]
	[Address(RVA = "0x1836660", Offset = "0x1835660", VA = "0x181836660")]
	private void FightSkill02()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600064A RID: 1610 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600064A")]
	[Address(RVA = "0x1836360", Offset = "0x1835360", VA = "0x181836360")]
	private void FightSkill02End()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600064B RID: 1611 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600064B")]
	[Address(RVA = "0x1837DA0", Offset = "0x1836DA0", VA = "0x181837DA0", Slot = "33")]
	public override void Hit(AttackData Data)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600064C RID: 1612 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600064C")]
	[Address(RVA = "0x183A030", Offset = "0x1839030", VA = "0x18183A030", 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: 0x0600064D RID: 1613 RVA: 0x0000EB14 File Offset: 0x0000CD14
	[Token(Token = "0x600064D")]
	[Address(RVA = "0x183A160", Offset = "0x1839160", VA = "0x18183A160", Slot = "30")]
	public override void Resurrection()
	{
		base.Resurrection();
		this.g_bDeath = false;
		this.Create();
		base.CompleteDisposed();
	}

	// Token: 0x0600064E RID: 1614 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600064E")]
	[Address(RVA = "0x1835A00", Offset = "0x1834A00", VA = "0x181835A00", Slot = "31")]
	public override void Create()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600064F RID: 1615 RVA: 0x0000EB3C File Offset: 0x0000CD3C
	[Token(Token = "0x600064F")]
	[Address(RVA = "0x183A100", Offset = "0x1839100", VA = "0x18183A100", 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: 0x06000650 RID: 1616 RVA: 0x0000EB88 File Offset: 0x0000CD88
	[Token(Token = "0x6000650")]
	[Address(RVA = "0x183A260", Offset = "0x1839260", VA = "0x18183A260", Slot = "35")]
	public override void SetTimeScale(float fTimeScale)
	{
		base.SetTimeScale(fTimeScale);
		this.g_Effect.SetTimeScale(fTimeScale);
	}

	// Token: 0x06000651 RID: 1617 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000651")]
	[Address(RVA = "0x183A1B0", Offset = "0x18391B0", VA = "0x18183A1B0", Slot = "36")]
	public override void SetAiStatus(AI_NPC.AIStatus Status)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000652 RID: 1618 RVA: 0x0000EBB0 File Offset: 0x0000CDB0
	[Token(Token = "0x6000652")]
	[Address(RVA = "0x183A930", Offset = "0x1839930", VA = "0x18183A930")]
	public AI_SpecterArmorGirl04()
	{
	}

	// Token: 0x04000769 RID: 1897
	[FieldOffset(Offset = "0x180")]
	[Token(Token = "0x4000769")]
	private SpecterArmorGirl04EffectPlay g_Effect;

	// Token: 0x0400076A RID: 1898
	[Token(Token = "0x400076A")]
	private const float g_fAttackRadius = 3f;

	// Token: 0x0400076B RID: 1899
	[FieldOffset(Offset = "0x188")]
	[Token(Token = "0x400076B")]
	private float g_fAttackRadiusMin;

	// Token: 0x0400076C RID: 1900
	[FieldOffset(Offset = "0x18C")]
	[Token(Token = "0x400076C")]
	private float g_fAttackRadiusMax;

	// Token: 0x0400076D RID: 1901
	[FieldOffset(Offset = "0x190")]
	[Token(Token = "0x400076D")]
	private float g_fAniMoveSpeed;

	// Token: 0x0400076E RID: 1902
	[FieldOffset(Offset = "0x194")]
	[Token(Token = "0x400076E")]
	private float g_fAniMoveAngle;

	// Token: 0x0400076F RID: 1903
	[FieldOffset(Offset = "0x198")]
	[Token(Token = "0x400076F")]
	private Vector3 g_v3PreForward;

	// Token: 0x04000770 RID: 1904
	[FieldOffset(Offset = "0x1A4")]
	[Token(Token = "0x4000770")]
	private AI_SpecterArmorGirl04.AIFighting g_Fightting = (AI_SpecterArmorGirl04.AIFighting)((ulong)2L);

	// Token: 0x04000771 RID: 1905
	[FieldOffset(Offset = "0x1A8")]
	[Token(Token = "0x4000771")]
	private AI_SpecterArmorGirl04.AIFighting g_AttackType = (AI_SpecterArmorGirl04.AIFighting)((ulong)4L);

	// Token: 0x04000772 RID: 1906
	[FieldOffset(Offset = "0x1AC")]
	[Token(Token = "0x4000772")]
	private int g_iBattleWatchType;

	// Token: 0x04000773 RID: 1907
	[FieldOffset(Offset = "0x1B0")]
	[Token(Token = "0x4000773")]
	private float g_fAniBattleMoveDirection;

	// Token: 0x04000774 RID: 1908
	[FieldOffset(Offset = "0x1B4")]
	[Token(Token = "0x4000774")]
	private float g_fTrackTime;

	// Token: 0x04000775 RID: 1909
	[FieldOffset(Offset = "0x1B8")]
	[Token(Token = "0x4000775")]
	private float g_fAttackRotate;

	// Token: 0x04000776 RID: 1910
	[FieldOffset(Offset = "0x1C0")]
	[Token(Token = "0x4000776")]
	private Shake g_ShakeHead;

	// Token: 0x04000777 RID: 1911
	[FieldOffset(Offset = "0x1C8")]
	[Token(Token = "0x4000777")]
	private Shake g_ShakeBody;

	// Token: 0x04000778 RID: 1912
	[FieldOffset(Offset = "0x1D0")]
	[Token(Token = "0x4000778")]
	private Shake g_ShakeAll;

	// Token: 0x04000779 RID: 1913
	[FieldOffset(Offset = "0x1D8")]
	[Token(Token = "0x4000779")]
	private Shake g_ShakeWeapon;

	// Token: 0x02000090 RID: 144
	[Token(Token = "0x2000090")]
	protected enum AIFighting
	{
		// Token: 0x0400077B RID: 1915
		[Token(Token = "0x400077B")]
		ReadyBattle,
		// Token: 0x0400077C RID: 1916
		[Token(Token = "0x400077C")]
		WatchFirst,
		// Token: 0x0400077D RID: 1917
		[Token(Token = "0x400077D")]
		Watch,
		// Token: 0x0400077E RID: 1918
		[Token(Token = "0x400077E")]
		PlayerDead,
		// Token: 0x0400077F RID: 1919
		[Token(Token = "0x400077F")]
		Attack01,
		// Token: 0x04000780 RID: 1920
		[Token(Token = "0x4000780")]
		Attack02,
		// Token: 0x04000781 RID: 1921
		[Token(Token = "0x4000781")]
		Attack03,
		// Token: 0x04000782 RID: 1922
		[Token(Token = "0x4000782")]
		Skill01,
		// Token: 0x04000783 RID: 1923
		[Token(Token = "0x4000783")]
		Skill03,
		// Token: 0x04000784 RID: 1924
		[Token(Token = "0x4000784")]
		Skill04,
		// Token: 0x04000785 RID: 1925
		[Token(Token = "0x4000785")]
		Skill02Ready,
		// Token: 0x04000786 RID: 1926
		[Token(Token = "0x4000786")]
		Skill02,
		// Token: 0x04000787 RID: 1927
		[Token(Token = "0x4000787")]
		Skill02End,
		// Token: 0x04000788 RID: 1928
		[Token(Token = "0x4000788")]
		AttackDebut
	}
}
