using UnityEngine; namespace Jovian.EncounterSystem { /// /// Authored reward asset. Designers create one file per reusable reward ("10 Gold", "Rusty Sword", /// "Town Unlock: Riverfort") and reference it from on dialog options. /// The payload chooses the reward type; the enclosing asset carries identity /// and presentation data shared across all types. /// [CreateAssetMenu(fileName = "Reward", menuName = "Jovian/Encounter System/Reward", order = 3)] public class Reward : ScriptableObject { /// Designer-facing short slug (e.g. "gold_10"). public string id; /// Display name shown to the player when the reward is granted. public string displayName; /// Type-specific payload (currency, item, experience, ...). Authored via the SubclassSelector drawer. [SerializeReference, SubclassSelector] public IRewardKind kind; } }