using System; using Newtonsoft.Json; using UnityEngine; namespace GeometryTD.Definition { /// /// 防御塔独立属性快照。 /// 注意:这里是塔实例的独立值,不通过组件引用实时计算。 /// [Serializable] public sealed class TowerStatsData { 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 TagRuntimeData[] TagRuntimes { get; set; } public TagType[] Tags { get; set; } } /// /// 背包内防御塔实例数据。 /// [Serializable] public sealed class TowerItemData { /// /// 防御塔实例唯一 Id。 /// public long InstanceId { get; set; } /// /// 防御塔显示名称。 /// public string Name { get; set; } /// /// 防御塔品质。 /// public RarityType Rarity { get; set; } public bool IsParticipatingInCombat { get; set; } /// /// 构成该防御塔的枪口组件实例 Id。 /// public long MuzzleComponentInstanceId { get; set; } /// /// 构成该防御塔的轴承组件实例 Id。 /// public long BearingComponentInstanceId { get; set; } /// /// 构成该防御塔的底座组件实例 Id。 /// public long BaseComponentInstanceId { get; set; } /// /// 防御塔独立属性,不依赖组件对象引用。 /// public TowerStatsData Stats { get; set; } = new TowerStatsData(); [JsonIgnore] public Sprite ComposedIconSprite { get; set; } [JsonIgnore] public string ComposedIconKey { get; set; } } }