first commit

This commit is contained in:
2026-06-04 14:27:16 +03:00
commit 96cb7e9f0e
79 changed files with 8862 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
using UnityEngine;
public class PuzzleManager : MonoBehaviour
{
public bool keyPlaced;
public bool gemPlaced;
public bool puzzleSolved;
public PuzzleUI puzzleUI;
public DraggableObject gemItem;
private const string KeyObjective = "Перетащите ключ в слот";
private const string GemAvailableObjective = "Дверь открыта. Возьмите самоцвет за дверью";
private const string GemObjective = "Перетащите самоцвет во второй слот";
private const string SolvedObjective = "Пазл решён. Выход открыт";
private void Start()
{
// Самоцвет становится доступен только после решения первого шага.
if (gemItem != null)
{
gemItem.SetInteractable(false);
}
if (puzzleUI != null)
{
puzzleUI.SetObjective(KeyObjective);
puzzleUI.SetSolvedVisible(false);
puzzleUI.UpdateDebug(keyPlaced, gemPlaced, puzzleSolved);
}
}
public void OnKeyPlaced()
{
keyPlaced = true;
if (gemItem != null)
{
gemItem.SetInteractable(true);
}
if (puzzleUI != null)
{
puzzleUI.SetObjective(GemAvailableObjective);
puzzleUI.ShowMessage(GemObjective);
}
CheckPuzzleSolved();
}
public void OnGemPlaced()
{
gemPlaced = true;
if (puzzleUI != null)
{
puzzleUI.SetObjective(SolvedObjective);
}
CheckPuzzleSolved();
}
public void CheckPuzzleSolved()
{
// Финальное состояние наступает только после обоих правильных размещений.
puzzleSolved = keyPlaced && gemPlaced;
if (puzzleUI != null)
{
puzzleUI.UpdateDebug(keyPlaced, gemPlaced, puzzleSolved);
if (puzzleSolved)
{
puzzleUI.SetSolvedVisible(true);
puzzleUI.ShowMessage("Пазл решён!");
}
}
}
}