DRHPS/code-csharp/en_US/OverworldEnemy_Interaction.cs
2025-04-08 11:31:35 +08:00

73 lines
2.0 KiB
C#

using System.Collections;
using UnityEngine;
public class OverworldEnemy_Interaction : MonoBehaviour
{
[SerializeField]
private Animator EnemyAnimator;
[SerializeField]
private string SpotPlayerAnimation;
[SerializeField]
private AudioClip SpotPlayerSound;
[SerializeField]
private GameObject CheckmarkObject;
[SerializeField]
private bool LWM_CouldBeOpen;
[SerializeField]
private bool DWM_CouldBeOpen;
public Battle Battle;
[HideInInspector]
public bool HasBeganBattle;
private void Awake()
{
if ((bool)Battle.BattleSong)
{
Battle.BattleSong.LoadAudioData();
}
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "Player" && !HasBeganBattle)
{
HasBeganBattle = true;
StartCoroutine(SpotPlayerTimed());
}
}
public void ForceTriggerBattle()
{
if (!HasBeganBattle)
{
HasBeganBattle = true;
StartCoroutine(SpotPlayerTimed());
}
}
private IEnumerator SpotPlayerTimed()
{
BattleSystem.PlayBattleSoundEffect(SpotPlayerSound);
MusicManager.PauseMusic();
CheckmarkObject.SetActive(value: true);
PlayerManager.Instance._PlayerState = PlayerManager.PlayerState.Cutscene;
LWM_CouldBeOpen = LightworldMenu.Instance.CanOpenMenu;
DWM_CouldBeOpen = DarkworldMenu.Instance.CanOpenMenu;
DarkworldMenu.Instance.CanOpenMenu = false;
LightworldMenu.Instance.CanOpenMenu = false;
EnemyAnimator.Play(SpotPlayerAnimation);
yield return new WaitForSeconds(1f);
DarkworldMenu.Instance.CanOpenMenu = DWM_CouldBeOpen;
LightworldMenu.Instance.CanOpenMenu = LWM_CouldBeOpen;
BattleSystem.StartBattle(Battle, base.transform.position);
Object.Destroy(base.gameObject);
}
}