Add detective board

This commit is contained in:
2026-02-10 03:00:41 +01:00
parent d4a728a150
commit b172762d4f
51 changed files with 1502 additions and 92 deletions
@@ -0,0 +1,41 @@
using UnityEngine;
namespace Unheimlich.Data.DetectiveBoard
{
/// <summary>
/// Represents a single clue/evidence node on the detective board.
/// Unlocked through various triggers (audio, objects, dialogues, hallucinations, etc.).
/// </summary>
[CreateAssetMenu(fileName = "ClueData", menuName = "Unheimlich/Detective Board/Clue Data")]
public class ClueData : ScriptableObject
{
[Header("Clue Identity")]
[Tooltip("Unique identifier for this clue")]
public string ClueID;
[Tooltip("Display title on the board")]
public string Title;
[Tooltip("Detailed description of the clue")]
[TextArea(3, 6)]
public string Description;
[Header("Visual Representation")]
[Tooltip("Icon or image for the node (post-it/card visual)")]
public Sprite Icon;
[Tooltip("Color tint for the node")]
public Color NodeColor = Color.white;
[Header("Connection Rules")]
[Tooltip("IDs of clues this can connect to")]
public string[] PossibleConnections;
[Header("Meta")]
[Tooltip("Category for organization (e.g., 'Evidence', 'Witness', 'Location')")]
public string Category;
[Tooltip("Initial position on the board (normalized 0-1)")]
public Vector2 InitialPosition = new Vector2(0.5f, 0.5f);
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 166ae120db91b064c9b98086267b9783
@@ -0,0 +1,42 @@
using UnityEngine;
namespace Unheimlich.Data.DetectiveBoard
{
/// <summary>
/// Configuration for detective board UI behavior and appearance.
/// Defines node visuals, connection rules, and interaction parameters.
/// </summary>
[CreateAssetMenu(fileName = "DetectiveBoardSettings", menuName = "Unheimlich/Detective Board/Board Settings")]
public class DetectiveBoardSettings : ScriptableObject
{
[Header("Node Visuals")]
[Tooltip("Default sprite for nodes (post-it/card)")]
public Sprite DefaultNodeSprite;
[Tooltip("Scale of node objects on the board")]
public float NodeScale = 1f;
[Tooltip("Spacing between nodes when auto-arranged")]
public float NodeSpacing = 0.5f;
[Header("Connection Visuals")]
[Tooltip("Line width for connections")]
public float ConnectionLineWidth = 0.05f;
[Tooltip("Color for confirmed connections")]
public Color ConfirmedConnectionColor = Color.green;
[Tooltip("Color for uncertain connections")]
public Color UncertainConnectionColor = Color.yellow;
[Tooltip("Color for eliminated connections")]
public Color EliminatedConnectionColor = Color.red;
[Header("Interaction")]
[Tooltip("Distance at which nodes can be interacted with")]
public float InteractionRange = 2f;
[Tooltip("Highlight color when hovering over a node")]
public Color HoverHighlightColor = new Color(1f, 1f, 0.5f, 1f);
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: f6b20768fe570fb429fcf6a348431232