using TMPro; using UdonSharp; using UnityEngine; using VRC.SDK3.UdonNetworkCalling; using VRC.Udon.Common.Interfaces; [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] public class RiskCard : UdonSharpBehaviour { [UdonSynced] public int RiskAmount = 0; [SerializeField] private RiskCardGroup CardGroup = null; [SerializeField] private TextMeshProUGUI _RiskCardText; [SerializeField] private Transform _SpawnPosition; [SerializeField] private Transform _HeldPosition; void Start() { _RiskCardText.text = RiskAmount.ToString(); } public override void OnPickup() { NetworkCalling.SendCustomNetworkEvent((IUdonEventReceiver)CardGroup, NetworkEventTarget.All, "RiskCardPickedUp", RiskAmount); } public override void Interact() { NetworkCalling.SendCustomNetworkEvent((IUdonEventReceiver)CardGroup, NetworkEventTarget.All, "RiskCardInteract", RiskAmount); } public void SetCardGroup(RiskCardGroup ParentCardGroup) { CardGroup = ParentCardGroup; } [NetworkCallable] public void SetToHeldPosition() { transform.SetParent(_HeldPosition, false); transform.localPosition = Vector3.zero; transform.localEulerAngles = Vector3.zero; InteractionText = "Reveal"; } [NetworkCallable] public void ResetPosition() { transform.SetParent(_SpawnPosition, false); transform.localPosition = Vector3.zero; transform.localEulerAngles = Vector3.zero; InteractionText = "Choose"; } }