53 lines
1.7 KiB
C#
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);
|
|
// Ничего не расставляем - игрок делает сам
|
|
}
|
|
}
|