copy from github

This commit is contained in:
Sebastian Bularca
2026-03-27 15:13:27 +01:00
parent 83532f396d
commit 823e146df0
44 changed files with 2999 additions and 2 deletions

62
Runtime/ZoneData.cs Normal file
View File

@@ -0,0 +1,62 @@
using System.Collections.Generic;
using UnityEngine;
namespace Jovian.ZoneSystem {
[CreateAssetMenu(fileName = "NewZone", menuName = "ZoneSystem/Zone Data")]
public class ZoneData : ScriptableObject {
[Header("Identity")]
public string zoneId;
public string zoneName;
public ZoneRole role = ZoneRole.Base;
public int priority = 1;
[Header("Visual (Editor Only)")]
public Color debugColor = new(1f, 0.5f, 0f, 0.25f);
// ── Base zone fields ────────────────────────────────────────────
[Header("Base Zone Settings")]
[Tooltip("Only used when Role = Base")]
public string encounterTableId;
[Tooltip("Only used when Role = Base")]
public DifficultyTier baseDifficultyTier = DifficultyTier.Mild;
[Tooltip("Base encounter chance per check (0..1). Only used when Role = Base")]
[Range(0f, 1f)]
public float baseEncounterChance = 0.2f;
// ── Modifier zone fields ─────────────────────────────────────────
[Header("Modifier Zone Settings")]
[Tooltip("Multiplied onto the base encounter chance. Only used when Role = Modifier")]
public float encounterChanceMultiplier = 1f;
[Tooltip("Added to the base difficulty tier (clamped). Only used when Role = Modifier")]
public int difficultyTierBonus;
// ── Override zone fields ─────────────────────────────────────────
[Header("Override Zone Settings")]
[Tooltip("If true, no encounters occur in this zone. Only used when Role = Override")]
public bool isSafeZone;
[Tooltip("Only used when Role = Override and isSafeZone = false")]
public string overrideEncounterTableId;
[Tooltip("Only used when Role = Override and isSafeZone = false")]
[Range(0f, 1f)]
public float overrideEncounterChance = 1f;
[Tooltip("Only used when Role = Override and isSafeZone = false")]
public DifficultyTier overrideDifficultyTier = DifficultyTier.Deadly;
// ── Shape ────────────────────────────────────────────────────────
[HideInInspector]
public ZoneShape shape = ZoneShape.Square;
[HideInInspector]
public float circleRadius = 2f;
[HideInInspector]
public List<Vector2> polygon = new();
}
}