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

42 lines
1.3 KiB
C#

using UnityEngine;
public class INT_RunComponentOnChatIndex : MonoBehaviour
{
public INT_Chat TargetChatStarter;
public CHATBOXTEXT TargetChat;
public ChatboxManager ChatManager;
[Space(7.5f)]
[Header("WARNING! This component is removed once ran")]
public Component TargetComponent;
[Space(5f)]
public string MethodName;
[Space(7.5f)]
public int ChatTextIndexToPlay;
[Header("For text that requires the player to interact multiple times")]
public int AdditionalTextIndexToPlay;
private bool CurrentActiveChatIsTarget;
private bool hasRan;
private void Update()
{
if (ChatManager.storedchatboxtext == TargetChat)
{
CurrentActiveChatIsTarget = true;
}
if (CurrentActiveChatIsTarget && ChatManager.CurrentTextIndex == ChatTextIndexToPlay && ChatManager.CurrentAdditionalTextIndex == AdditionalTextIndexToPlay && TargetChatStarter.FinishedText && !hasRan && TargetComponent != null && TargetComponent.GetType().GetMethod(MethodName) != null)
{
hasRan = true;
TargetComponent.GetType().GetMethod(MethodName).Invoke(TargetComponent, null);
Object.Destroy(this, 0.5f);
}
}
}