#nullable enable
using System;
using System.Collections.Generic;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.Manager.Attributes;
using Robust.Shared.Utility;
using Robust.Shared.ViewVariables;
namespace Content.Shared.Research
{
[NetSerializable, Serializable, Prototype("technology")]
public class TechnologyPrototype : IPrototype
{
///
/// The ID of this technology prototype.
///
[ViewVariables]
[field: DataField("id", required: true)]
public string ID { get; } = default!;
///
/// The name this technology will have on user interfaces.
///
[ViewVariables]
[field: DataField("name")]
public string Name { get; } = string.Empty;
///
/// An icon that represent this technology.
///
[field: DataField("icon")]
public SpriteSpecifier Icon { get; } = SpriteSpecifier.Invalid;
///
/// A short description of the technology.
///
[ViewVariables]
[field: DataField("description")]
public string Description { get; } = string.Empty;
///
/// The required research points to unlock this technology.
///
[ViewVariables]
[field: DataField("requiredPoints")]
public int RequiredPoints { get; }
///
/// A list of technology IDs required to unlock this technology.
///
[ViewVariables]
[field: DataField("requiredTechnologies")]
public List RequiredTechnologies { get; } = new();
///
/// A list of recipe IDs this technology unlocks.
///
[ViewVariables]
[field: DataField("unlockedRecipes")]
public List UnlockedRecipes { get; } = new();
}
}