using Fie.Object;
using UnityEngine;

namespace Fie.Ponies.Twilight
{
	[FiePrefabInfo("Prefabs/Twilight/Power/TwiilghtSummonTrapExplosion")]
	public class FieEmitObjectTwilightSummonTrap : FieEmittableObjectBase
	{
		[SerializeField]
		private float ExplodeDuration = 0.5f;

		[SerializeField]
		private float ExplodeWarmup = 0.5f;

		[SerializeField]
		private float ExplodeDestroyDuration = 1f;

		[SerializeField]
		private float ExplodePysicalForce = 1f;

		private bool _isEndUpdate;

		private float _lifeCount;

		private void Update()
		{
			if (!_isEndUpdate)
			{
				_lifeCount += Time.deltaTime;
				if (_lifeCount > ExplodeDuration)
				{
					destoryEmitObject(ExplodeDestroyDuration);
					_isEndUpdate = true;
				}
			}
		}

		private void OnTriggerStay(Collider collider)
		{
			if (!_isEndUpdate && !(_lifeCount > ExplodeDuration + ExplodeWarmup) && !(_lifeCount < ExplodeWarmup) && collider.gameObject.tag == getHostileTagString())
			{
				FieGameCharacter fieGameCharacter = addDamageToCollisionCharacter(collider, getDefaultDamageObject());
				if (fieGameCharacter != null)
				{
					Vector3 a = collider.ClosestPointOnBounds(base.transform.position);
					Vector3 vector = a - base.transform.position;
					vector = new Vector3(vector.x, 0f, vector.z).normalized;
					fieGameCharacter.resetMoveForce();
					fieGameCharacter.setMoveForce(vector * ExplodePysicalForce, 0f, useRound: false);
				}
			}
		}
	}
}