Files
ichni_Official/Assets/Scripts/Game/GameElements/Notes/JudgeSubmodules/TriggerConnectJudgeUnit.cs

50 lines
1.6 KiB
C#
Raw Normal View History

2025-06-03 02:42:28 -04:00
using System;
using Ichni.RhythmGame.Beatmap;
using TMPro;
using UnityEngine;
namespace Ichni.RhythmGame
{
public class TriggerConnectJudgeUnit : NoteJudgeUnit
{
2026-03-14 03:13:10 -04:00
#region [] Properties
2025-06-03 02:42:28 -04:00
public GameElement connectedJudgeTrigger;
2026-03-14 03:13:10 -04:00
#endregion
#region [] Initialization
2025-06-03 02:42:28 -04:00
public TriggerConnectJudgeUnit(NoteBase note, GameElement judgeTrigger) : base(note)
{
this.connectedJudgeTrigger = judgeTrigger;
}
2026-03-14 03:13:10 -04:00
#endregion
#region [] Judge Overrides
protected override GameObject GetHintImagePrefab() => GameManager.Instance.basePrefabs.triggerHint;
2025-06-03 02:42:28 -04:00
public override void SetShowingJudge(bool isShowing)
{
if(connectedJudgeTrigger == null) return;
base.SetShowingJudge(isShowing);
if (judgeHintImage != null)
{
judgeHintImage.GetComponent<TMP_Text>().text = connectedJudgeTrigger.elementName;
}
}
public override void UpdateJudge()
{
if(note.isFirstJudged || connectedJudgeTrigger == null) return;
Vector2 noteScreenPosition = note.noteScreenPosition;
2026-03-14 03:13:10 -04:00
RectTransform canvasRect = GameManager.Instance.judgeHintCanvas.GetComponent<RectTransform>();
2025-06-03 02:42:28 -04:00
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, noteScreenPosition, null, out Vector2 uiPosition))
{
judgeHintImage.anchoredPosition = uiPosition;
}
}
2026-03-14 03:13:10 -04:00
#endregion
2025-06-03 02:42:28 -04:00
}
}