using System;
namespace GeometryTD.Definition
{
///
/// 防御塔独立属性快照。
/// 注意:这里是塔实例的独立值,不通过组件引用实时计算。
///
[Serializable]
public sealed class DefenseTowerStatsData
{
public int[] AttackDamage { get; set; }
public float[] DamageRandomRate { get; set; }
public float[] RotateSpeed { get; set; }
public float[] AttackRange { get; set; }
public float[] AttackSpeed { get; set; }
public AttackMethodType AttackMethodType { get; set; }
public AttackPropertyType AttackPropertyType { get; set; }
public TagType[] Tags { get; set; }
}
///
/// 背包内防御塔实例数据。
///
[Serializable]
public sealed class DefenseTowerItemData
{
///
/// 防御塔实例唯一 Id。
///
public long InstanceId { get; set; }
///
/// 防御塔显示名称。
///
public string Name { get; set; }
///
/// 防御塔品质。
///
public RarityType Rarity { get; set; }
///
/// 当前耐久(0~100)。
///
public float Endurance { get; set; } = 100f;
///
/// 构成该防御塔的枪口组件实例 Id。
///
public long MuzzleComponentInstanceId { get; set; }
///
/// 构成该防御塔的轴承组件实例 Id。
///
public long BearingComponentInstanceId { get; set; }
///
/// 构成该防御塔的底座组件实例 Id。
///
public long BaseComponentInstanceId { get; set; }
///
/// 防御塔独立属性,不依赖组件对象引用。
///
public DefenseTowerStatsData Stats { get; set; } = new DefenseTowerStatsData();
}
}