using System; namespace FinTOKMAK.WeaponSystem.Runtime { /// /// Two basic WeaponData types /// public enum WeaponDataType { /// /// The weapon data stored for weapon config. /// Config, /// /// The runtime WeaponData for Weapon System usage. /// Runtime } /// /// The interface for WeaponData /// public interface IWeaponData { /// /// The ID of the WeaponData /// string id { get; set; } /// /// The WeaponDataType of current WeaponData class. /// public WeaponDataType weaponDataType { get; } /// /// Get a deep copy of current WeaponData. /// /// Deep copy version of current WeaponData public IWeaponData DeepCopy(); /// /// Convert Config WeaponData to Runtime WeaponData. /// /// The Runtime WeaponData generated from current Config WeaponData /// when current WeaponData class is already a Runtime WeaponData. public IWeaponData ToRuntime(); } }