using System; using UnityEngine; [Serializable] public abstract class Resource { public abstract string Name { get; } public abstract string SourceLabel { get; } public override string ToString() { return this.Name; } } [Serializable] // [CreateAssetMenu(fileName = "Metal", menuName = "Resources/Metal")] public class Metal : Resource { public override string Name => "Metal"; public override string SourceLabel => "Metal source"; } [Serializable] // [CreateAssetMenu(fileName = "Electronics", menuName = "Resources/Electronics")] public class Electronics : Resource { public override string Name => "Electronics"; public override string SourceLabel => "Electronics Factory"; } [Serializable] // [CreateAssetMenu(fileName = "Energy", menuName = "Resources/Energy")] public class Energy : Resource { public override string Name => "Energy"; public override string SourceLabel => "Power Plant"; } [Serializable] // [CreateAssetMenu(fileName = "Metal", menuName = "Resources/Metal")] public class Money : Resource { public override string Name => "Money"; public override string SourceLabel => "---"; }