36 lines
1.3 KiB
C#
36 lines
1.3 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
// Склад или Амбар (этап 1): каждый уровень поднимает лимит хранения.
|
|
// Склад -- дерево, камень, металл, золото; Амбар -- еда. Числа -- EconomyConfig, раздел "Склады и лимиты".
|
|
// Здание появляется в списке стройки кодом (App/StorageBootstrap), отдельных префабов пока нет.
|
|
// Уровень сохраняет модуль Поселения (ILeveledBuilding), лимиты считает App/CitySync.
|
|
public class StorageBuilding : MonoBehaviour, ILeveledBuilding
|
|
{
|
|
public enum Kind { Warehouse, Granary }
|
|
|
|
public static event Action<StorageBuilding> Tapped;
|
|
|
|
public Kind kind;
|
|
public int level = 1;
|
|
|
|
public int Level { get => level; set => level = Mathf.Max(1, value); }
|
|
|
|
public string Title => kind == Kind.Warehouse ? StorageBootstrap.WarehouseName : StorageBootstrap.GranaryName;
|
|
|
|
Vector3 downPos;
|
|
|
|
void OnMouseDown()
|
|
{
|
|
downPos = Input.mousePosition;
|
|
}
|
|
|
|
// Тап, а не перетаскивание камеры
|
|
void OnMouseUpAsButton()
|
|
{
|
|
if (UIBlocker.IsPointerOverUI()) return;
|
|
if ((Input.mousePosition - downPos).magnitude > 25f) return;
|
|
Tapped?.Invoke(this);
|
|
}
|
|
}
|