Исправлены файлы BuildingUI и ResourceCollector после конфликта

This commit is contained in:
2026-09-05 16:39:40 +03:00
parent 1bf238d2ff
commit 629b5016df
4 changed files with 419 additions and 194 deletions
+20 -85
View File
@@ -1,22 +1,17 @@
using UnityEngine;
using System.Collections;
<<<<<<< HEAD
using System;
=======
>>>>>>> origin/main
public class ResourceCollector : MonoBehaviour
{
[Header("Что производит это здание")]
public ResourceType resourceType;
[Tooltip("База награды за клик (используется для расчета множителя уровня)")]
public float amountPerClick = 10f;
[Header("Параметры хранилища")]
[Tooltip("Максимальная вместимость")]
public float maxCapacity = 100f;
[Tooltip("Текущий запас (меняется автоматически)")]
public float currentStock = 0f;
@@ -36,10 +31,9 @@ public class ResourceCollector : MonoBehaviour
enabled = false;
return;
}
currentStock = 0f;
currentStock = 0f;
}
// НОВЫЙ МЕТОД: Чтобы UI мог спрашивать: "Сколько там сейчас?"
public float GetCurrentStock()
{
return currentStock;
@@ -52,105 +46,46 @@ public class ResourceCollector : MonoBehaviour
void OnMouseDown()
{
<<<<<<< HEAD
// Если уже идёт восстановление — ничего не делаем
if (isRecharging)
{
Debug.Log($"[КЛИК] {gameObject.name}: уже идёт восстановление, ждём.");
return;
}
// Если запас есть — забираем ресурсы
if (currentStock > 0)
{
float finalAmount = amountPerClick * Mathf.Pow(perLevelMultiplier, level - 1);
float reward = currentStock; // берём всё, что накопилось
_manager.AddResource(resourceType, reward);
currentStock = 0f;
Debug.Log($"[СБОР] Получено {reward:F1} {resourceType}. Запас сброшен в 0.");
// Сразу запускаем восстановление после сбора
=======
if (currentStock <= 0)
if (isRecharging)
{
Debug.Log($"[КЛИК] {gameObject.name} пуст. Идет восстановление...");
Debug.Log($"[КЛИК] {gameObject.name}: уже идёт восстановление, ждём.");
return;
}
float finalAmount = amountPerClick * Mathf.Pow(perLevelMultiplier, level - 1);
// Отдаем всё, что накопилось
float reward = currentStock;
_manager.AddResource(resourceType, reward);
// СБРОС В НОЛЬ
currentStock = 0f;
Debug.Log($"[СБОР] Получено {reward:F1} {resourceType}. Запас сброшен в 0.");
>>>>>>> origin/main
if (!isRecharging)
if (currentStock > 0)
{
float reward = currentStock; // берём всё, что накопилось
_manager.AddResource(resourceType, reward);
currentStock = 0f;
Debug.Log($"[СБОР] Получено {reward:F1} {resourceType}. Запас сброшен в 0.");
StartCoroutine(RechargeRoutine());
}
else
{
Debug.Log($"[КЛИК] {gameObject.name} пуст, запускаем восстановление.");
StartCoroutine(RechargeRoutine());
}
}
<<<<<<< HEAD
else
{
// Если запаса нет и восстановление ещё не запущено — запускаем его
Debug.Log($"[КЛИК] {gameObject.name} пуст, запускаем восстановление.");
if (!isRecharging)
{
StartCoroutine(RechargeRoutine());
}
}
}
System.Collections.IEnumerator RechargeRoutine()
{
if (isRecharging) yield break;
isRecharging = true;
float rechargeRate = 5f; // единиц в секунду
float timeToFill = (maxCapacity - currentStock) / rechargeRate;
float elapsed = 0f;
while (elapsed < timeToFill)
{
elapsed += Time.deltaTime;
float progress = Mathf.Clamp01(elapsed / timeToFill);
currentStock = Mathf.Lerp(currentStock, maxCapacity, progress);
yield return null;
}
currentStock = maxCapacity;
isRecharging = false;
Debug.Log($"[ГОТОВО] {gameObject.name} полностью заполнен!");
}
=======
System.Collections.IEnumerator RechargeRoutine()
{
if (isRecharging) yield break;
isRecharging = true;
float rechargeRate = 5f; // Единиц в секунду
float rechargeRate = 5f; // единиц в секунду
while (currentStock < maxCapacity)
{
currentStock += rechargeRate * Time.deltaTime;
if (currentStock > maxCapacity) currentStock = maxCapacity;
yield return null;
}
isRecharging = false;
Debug.Log($"[ГОТОВО] {gameObject.name} полностью заполнен!");
}
>>>>>>> origin/main
public void Upgrade()
{