Окна зданий, уровни Казарм и открытие войск по уровню Казарм; население: группы, найм, голод
This commit is contained in:
@@ -1,13 +1,18 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
// МОДУЛЬ ПОСЕЛЕНИЯ. Документ: Docs/Modules/Settlement.md
|
||||
// Вешается на объект Ратуши, который уже стоит на карте.
|
||||
// Хранит текущий уровень -- от него зависит, какие здания разблокированы в BuildManager.
|
||||
// Тап по Ратуше открывает окно Ратуши (слой приложения подписан на Tapped), улучшение -- кнопкой в окне.
|
||||
|
||||
public class TownHall : MonoBehaviour
|
||||
{
|
||||
public static TownHall Instance { get; private set; }
|
||||
|
||||
// Тап по Ратуше: интерфейс откроет её окно (модуль про интерфейс не знает)
|
||||
public static event Action<TownHall> Tapped;
|
||||
|
||||
[Header("Уровень")]
|
||||
public int currentLevel = 1;
|
||||
public int maxLevel = 10;
|
||||
@@ -64,10 +69,18 @@ public class TownHall : MonoBehaviour
|
||||
EventBus.Publish(new TownHallLevelChangedEvent { Level = currentLevel });
|
||||
Debug.Log($"[РАТУША] Улучшена до уровня {currentLevel}!");
|
||||
}
|
||||
Vector3 downPos;
|
||||
|
||||
void OnMouseDown()
|
||||
{
|
||||
if (UIBlocker.IsPointerOverUI()) return; // клик по панели HUD не должен улучшать Ратушу под ней
|
||||
Debug.Log($"[Ратуша] Клик! текущий уровень: {currentLevel}. Улучшение...");
|
||||
Upgrade();
|
||||
downPos = Input.mousePosition;
|
||||
}
|
||||
|
||||
// Отпустил палец на Ратуше, почти не сдвинув (а не тащил камеру) -- окно Ратуши. Раньше тап сразу улучшал
|
||||
void OnMouseUpAsButton()
|
||||
{
|
||||
if (UIBlocker.IsPointerOverUI()) return; // клик по панели HUD не должен проходить на Ратушу под ней
|
||||
if ((Input.mousePosition - downPos).magnitude > 25f) return;
|
||||
Tapped?.Invoke(this);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user