sea-battle/Assets/Scripts/UI/Panels/PlacementChoiceOverlay.cs

51 lines
1.5 KiB
C#

using UnityEngine;
using UnityEngine.UI;
public class PlacementChoiceOverlay : MonoBehaviour
{
[SerializeField] private GameManager gameManager;
[SerializeField] private UIManager uiManager;
[SerializeField] private Button autoButton;
[SerializeField] private Button manualButton;
[Header("Optional focus after auto")]
[SerializeField] private Button focusAfterAuto; // êíîïêà "â áîé" íà ýêðàíå ðàññòàíîâêè
private void Awake()
{
if (autoButton != null) autoButton.onClick.AddListener(OnAuto);
if (manualButton != null) manualButton.onClick.AddListener(OnManual);
}
private void OnAuto()
{
if (gameManager == null || uiManager == null) return;
uiManager.HideAllOverlays();
gameManager.SetState(GameState.ShipPlacement);
gameManager.SetInputMode(GameManager.InputMode.UI);
// Àâòî-ðàññòàíîâêà
gameManager.ArrangeGame();
// Íàâåñòè êóðñîð íà êíîïêó "â áîé"
if (focusAfterAuto != null)
{
var highlight = focusAfterAuto.GetComponent<UIButtonHighlight>();
if (highlight != null)
highlight.SetHighlighted(true);
}
}
private void OnManual()
{
if (gameManager == null || uiManager == null) return;
uiManager.HideAllOverlays();
gameManager.SetState(GameState.ShipPlacement);
gameManager.SetInputMode(GameManager.InputMode.ShipPlacement);
gameManager.InitTargetCursor(true);
// Íè÷åãî íå ðàññòàâëÿåì — èãðîê äåëàåò ñàì
}
}