Czechdungeon Czech Dungeon 1 < 2026 Release >

// PhantomElixir.cs
using UnityEngine;
[CreateAssetMenu(menuName = "Items/Phantom Elixir")]
public class PhantomElixir : ScriptableObject, IConsumable
public float invisibilityDuration = 15f;
    public float runeVisionDuration = 30f;
public void Consume(PlayerController player)
player.StartCoroutine(ApplyEffects(player));
private System.Collections.IEnumerator ApplyEffects(PlayerController player)
// 1️⃣ Invisibility
        player.SetInvisible(true);
        yield return new WaitForSeconds(invisibilityDuration);
        player.SetInvisible(false);
// 2️⃣ Rune Vision (still active after invisibility ends)
        player.runeVisionTimer = runeVisionDuration;
        player.EnableRuneVision(true);
        yield return new WaitForSeconds(runeVisionDuration);
        player.EnableRuneVision(false);

Make sure your PlayerController implements SetInvisible(bool) (e.g., toggling the renderer’s layer to “InvisibleToAI”) and EnableRuneVision(bool) (e.g., swapping a post‑process material that highlights runes).

// JournalManager.cs (add a new entry method)
public void AddEntry(string title, string body, Sprite illustration = null)
// Your existing UI logic…
// In AlchemyPuzzle.cs, after puzzle solved:
private void SpawnElixir()
// … existing spawn code …
    JournalManager.Instance.AddEntry(
        "The Alchemist’s Secret",
        "The hidden lab belonged to Master Radek, a 16th‑century alchemist…\n" +
        "His Phantom Elixir grants temporary invisibility and reveals the unseen runes.",
        Resources.Load<Sprite>("Journal/AlchemistSketch"));
// Unlock achievement
    AchievementManager.Instance.Unlock("AlchemistApprentice");

Collect all herbs in the level (they appear as glowing blue clusters on floor tiles). czechdungeon czech dungeon 1