using System; using System.Collections.Generic; using System.ComponentModel; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using UnityEngine; [Serializable] /*[TypeConverter(typeof(KillRequiredSubjectDataTypeConverter))] */public class KillRequiredSubjectData : RequiredSubjectData { protected override string MODEL_LOCALIZATION => "Enemies/"; [SerializeField] public int CurrentAmount = 0; public KillRequiredSubjectData(int requiredAmount, string requiredObjectName) : base(requiredAmount, requiredObjectName) { } public KillRequiredSubjectData(int requiredAmount, string requiredObjectName, int currentAmount) : base(requiredAmount, requiredObjectName) { CurrentAmount = currentAmount; } public KillRequiredSubjectData(int requiredAmount, int currentAmount) : base(requiredAmount) { CurrentAmount = currentAmount; } public KillRequiredSubjectData(KillRequiredSubject requiredSubject) : base(requiredSubject) { CurrentAmount = requiredSubject.CurrentAmount; } public override RequiredSubject MapDataToObject(string prefarbAssetName) { var newKillRequirement = new KillRequiredSubject(RequiredAmount, CurrentAmount); newKillRequirement.RequiredObject = newKillRequirement.FindObjectInResource(prefarbAssetName); return newKillRequirement; } public override RequiredSubject MapDataToObject() { return new KillRequiredSubject(RequiredAmount, RequiredObjectName, CurrentAmount); } } /*[TypeConverter(typeof(KillRequiredSubjectDataTypeConverter))] public class KillRequiredSubjectDataTypeConverter : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return sourceType == typeof(RequiredSubjectData) || base.CanConvertFrom(context, sourceType); } public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { var castedFrom = value as RequiredSubjectData; return castedFrom != null ? new KillRequiredSubjectData(castedFrom.RequiredAmount, castedFrom.RequiredObjectName) : base.ConvertFrom(context, culture, value) ; } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { var castedTo = value as KillRequiredSubjectData; return destinationType == typeof(RequiredSubjectData) && castedTo != null ? new RequiredSubjectData(castedTo.RequiredAmount, castedTo.RequiredObjectName) : base.ConvertTo(context, culture, value, destinationType) ; } }*/