using System;
using Cpp2IlInjected;
using RootMotion.FinalIK;
using UnityEngine;
using UnityEngine.AI;

// Token: 0x020000AA RID: 170
[Token(Token = "0x20000AA")]
public class NPC_GhostB : NPC
{
	// Token: 0x0600079E RID: 1950 RVA: 0x00011630 File Offset: 0x0000F830
	[Token(Token = "0x600079E")]
	[Address(RVA = "0xEC8B50", Offset = "0xEC7950", VA = "0x180EC8B50", Slot = "4")]
	public override void Init()
	{
		Animator component = base.GetComponent<Animator>();
		this.g_Ani = component;
		MoveController moveController = new MoveController();
		this.g_Move = moveController;
		MoveController g_Move = this.g_Move;
		Transform transform = base.transform;
		g_Move.Init(transform);
		this.g_Move.gravity = 10f;
		this.g_Move.SetDragRotation(0.6f);
		NavMeshPath navMeshPath = new NavMeshPath();
		this.g_NavPath = navMeshPath;
		float g_fWalkSpeed = this.g_fWalkSpeed;
		this.g_fNavMoveSpeed = g_fWalkSpeed;
		Transform transform2 = base.transform.Find("IK");
		int num = 0;
		bool flag = transform2 != num;
		int num2 = 0;
		if (flag)
		{
			LookAtIK component2 = transform2.GetComponent<LookAtIK>();
			this.g_LookAt = component2;
			Transform target = this.g_LookAt.solver.target;
			this.g_LookAtTarget = target;
			this.g_LookAtTargetSet = num2;
		}
		this.g_bLookAtEnable = num2 != 0;
		this.g_fLookAtWeight = (float)num2;
		Transform transform3 = base.transform.Find("Dialogue");
		int num3 = 0;
		Dialogue g_Dialog;
		if (!(transform3 == num3))
		{
			Dialogue component3 = transform3.GetComponent<Dialogue>();
			this.g_Dialog = component3;
			g_Dialog = this.g_Dialog;
			int num4 = 0;
			if (g_Dialog == num4)
			{
				Debug.LogError("Dialogue錯誤");
			}
			this.g_Dialog.Init();
			GameObject gameObject = this.g_Dialog.gameObject;
			int num5 = 0;
			gameObject.SetActive(num5 != 0);
		}
		this.g_Dialog = g_Dialog;
		GameObject semoveObject = this.SEMoveObject;
		int num6 = 0;
		if (semoveObject != num6)
		{
			GameObject semoveObject2 = this.SEMoveObject;
			Transform transform4 = base.transform;
			SoundEffect soundEffectOfPrefabs = Common.GetSoundEffectOfPrefabs(semoveObject2, transform4);
			this.g_SEMove = soundEffectOfPrefabs;
			Game.BindStageTimeScale(this.g_SEMove);
			this.g_SEMove.DistanceMin = 6f;
			this.g_SEMove.DistanceMax = 30f;
		}
	}

	// Token: 0x0600079F RID: 1951 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600079F")]
	[Address(RVA = "0xEC9060", Offset = "0xEC7E60", VA = "0x180EC9060", Slot = "6")]
	protected override void Update()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060007A0 RID: 1952 RVA: 0x00011804 File Offset: 0x0000FA04
	[Token(Token = "0x60007A0")]
	[Address(RVA = "0xEC8FC0", Offset = "0xEC7DC0", VA = "0x180EC8FC0", Slot = "5")]
	protected override void OnEnable()
	{
		base.OnEnable();
		SoundEffect soundEffect = this.g_SEMove;
		int num = 0;
		if (soundEffect != num)
		{
			this.g_SEMove.PlayRandom(1f, 1f);
		}
	}

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

	// Token: 0x060007A2 RID: 1954 RVA: 0x00011848 File Offset: 0x0000FA48
	[Token(Token = "0x60007A2")]
	[Address(RVA = "0xEC7D40", Offset = "0xEC6B40", VA = "0x180EC7D40")]
	public NPC_GhostB()
	{
	}

	// Token: 0x040008E3 RID: 2275
	[FieldOffset(Offset = "0x100")]
	[Token(Token = "0x40008E3")]
	public GameObject SEMoveObject;

	// Token: 0x040008E4 RID: 2276
	[FieldOffset(Offset = "0x108")]
	[Token(Token = "0x40008E4")]
	public GameObject SEChargeObject;

	// Token: 0x040008E5 RID: 2277
	[FieldOffset(Offset = "0x110")]
	[Token(Token = "0x40008E5")]
	private SoundEffect g_SEMove;

	// Token: 0x040008E6 RID: 2278
	[FieldOffset(Offset = "0x118")]
	[Token(Token = "0x40008E6")]
	private SoundEffect g_SECharge;
}
