Исправлены файлы BuildingUI и ResourceCollector после конфликта
This commit is contained in:
@@ -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()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user