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

53 lines
1.7 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.StartShipPlacementCountdown();
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.StartShipPlacementCountdown();
gameManager.SetInputMode(GameManager.InputMode.ShipPlacement);
gameManager.InitTargetCursor(true);
// Ничего не расставляем - игрок делает сам
}
}