using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class DiceRollHandler : MonoBehaviour { [SerializeField] private DiceView diceView; [SerializeField] private int diceTestValue = 0; private InputManager inputManager; private void OnMouseDown() { inputManager = inputManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : inputManager; // RollDiceOnClick(); } private void Update() { inputManager = inputManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : inputManager; } public void OnUserDiceRollComplete(int rolledVal) { inputManager.SetDiceRollValue(rolledVal); } public void HandleDiceViewForUser() { if (!inputManager.GameplayManager.CanRollDiceForUser) return; SoundManager soundManager = InterfaceManager.Instance?.GetInterfaceInstance(); soundManager?.PlayGameSoundClip(SoundType.Dice); if (inputManager.GameplayManager.IsDebugPlayerTest) OnUserDiceRollComplete(GetDiceTestVal()); else diceView.Roll(onComplete: (rolledVal) => OnUserDiceRollComplete(rolledVal), false); } public void HandleDiceViewForBot(Action onComplete) { diceView.Roll(onComplete: onComplete, true); } public void HandleDiceViewForBot(Action onComplete, int val) { onComplete?.Invoke(val); } private int GetDiceTestVal() => diceTestValue == 0 ? UnityEngine.Random.Range(1, Ludo_3D_Constants.Max_Dice_Rolls + 1) : diceTestValue; }