using System; using GeometryTD.CustomUtility; using UnityEngine; namespace GeometryTD.Definition { [Serializable] public sealed class AttackPayload { public int BaseDamage { get; set; } public AttackPropertyType AttackPropertyType { get; set; } public int SourceEntityId { get; set; } public int ProjectileEntityId { get; set; } public Vector3 OriginPosition { get; set; } public TagRuntimeData[] TagRuntimes { get; set; } = Array.Empty(); public AttackPayload Clone() { return new AttackPayload { BaseDamage = BaseDamage, AttackPropertyType = AttackPropertyType, SourceEntityId = SourceEntityId, ProjectileEntityId = ProjectileEntityId, OriginPosition = OriginPosition, TagRuntimes = InventoryCloneUtility.CloneTagRuntimes(TagRuntimes) }; } } }