using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.EntityFrameworkCore; using Pf2e.Database.Model.Base; using Pf2e.Database.Model.Common.I18n; using Pf2e.Database.Model.Enum; using Pf2e.Database.Model.Structure.RitualRelation; namespace Pf2e.Database.Model.Structure; /// /// Ритуал. /// [EntityOfType(EntityType.Ritual)] public class Ritual : IEntity { /// [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [Column(Order = 1)] [Comment("Идентификатор")] public int Id { get; set; } /// public Entity Entity { get; set; } = null!; /// /// Уровень ритуала. /// [Column(Order = 2)] [Comment("Уровень ритуала")] public int Level { get; set; } /// /// Продолжительность ритуала в секундах. /// [Column(Order = 3)] [Comment("Продолжительность ритуала в секундах")] public int CastTime { get; set; } /// /// Время действия эффекта ритуала в секундах. /// [Column(Order = 4)] [Comment("Время действия эффекта ритуала в секундах")] public int Duration { get; set; } /// /// Элементы ритуала. /// [Column(Order = 5)] [Comment("Элементы ритуала")] public ElementEnum[] Elements { get; set; } = []; /// /// Дальнность ритуала в футах. /// [Column(Order = 6)] [Comment("Дальнность ритуала")] public int Range { get; set; } /// /// Ранг основной проверки. /// [Column(Order = 7)] [Comment("Ранг основной проверки")] public TrainingRank PrimaryCheckRank { get; set; } = TrainingRank.Trained; /// /// Дополнительная информация об основной проверки. /// [Column(Order = 8)] [Comment("Дополнительная информация об основной проверки")] public LocaleString? PrimaryCheckSuffix { get; set; } = null; /// /// Количество дополнительных заклинателей, необходимых для ритуала. /// [Column(Order = 9)] [Comment("Количество дополнительных заклинателей")] public int SecondaryCasters { get; set; } = 0; /// /// Максимальное количество дополнительных заклинателей, необходимых для ритуала. /// [Column(Order = 10)] [Comment("Максимальное количество дополнительных заклинателей")] public int SecondaryCastersMax { get; set; } = 0; /// /// Дополнительная информация о дополнительных заклинателях. /// [Column(Order = 11)] [Comment("Дополнительная информация о дополнительных заклинателях")] public LocaleString? SecondaryCastersSuffix { get; set; } = null; /// /// Строка, описывающая дальность ритуала. /// [Column(Order = 12)] [Comment("Дальность ритуала")] public LocaleString? RangeString { get; set; } = null; /// /// Строка, описывающая цель ритуала. /// [Column(Order = 13)] [Comment("Цель ритуала")] public LocaleString? Target { get; set; } = null; /// /// Строка, описывающая стоимость ритуала. /// [Column(Order = 14)] [Comment("Стоимость ритуала")] public LocaleString? Cost { get; set; } = null; /// /// Строка, описывающая требования к ритуалу. /// [Column(Order = 15)] [Comment("Требования к ритуалу")] public LocaleString? Requirement { get; set; } = null; /// /// Коллекция областей ритуала. /// public RitualArea? Area { get; set; } = null; /// /// Коллекция проверок ритуала. /// public ICollection Checks { get; set; } = []; }