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();
}
}