Ритуалы!

This commit is contained in:
2025-05-06 19:25:11 +04:00
parent 5693fa8ce8
commit 6abda701a4
28 changed files with 1543 additions and 244 deletions
+27
View File
@@ -0,0 +1,27 @@
using NpgsqlTypes;
namespace Pf2eModel.Model.Enum;
public enum ElementEnum
{
[PgName("universal")]
Universal,
[PgName("air")]
Air,
[PgName("water")]
Water,
[PgName("earth")]
Earth,
[PgName("fire")]
Fire,
[PgName("wood")]
Wood,
[PgName("metal")]
Metal,
}
+3
View File
@@ -52,6 +52,9 @@ public enum EntityType
[PgName("spell")]
Spell,
[PgName("ritual")]
Ritual,
[PgName("language")]
Language,
}
+24
View File
@@ -0,0 +1,24 @@
using NpgsqlTypes;
namespace Pf2eModel.Model.Enum;
public enum TrainingRank
{
[PgName("untrained")]
Untrained,
[PgName("trained")]
Trained,
[PgName("expert")]
Expert,
[PgName("master")]
Master,
[PgName("legendary")]
Legendary,
[PgName("mythic")]
Mythic,
}
-14
View File
@@ -1,14 +0,0 @@
namespace Pf2eModel.Model.Enum;
public enum TrainingStage
{
Untrained = 0,
Trained = 1,
Expert = 2,
Master = 3,
Legendary = 4,
}
@@ -20,7 +20,7 @@ public class BackgroundTraining
public int TrainingId { get; set; }
[Column(Order = 4)]
public TrainingStage Level { get; set; }
public TrainingRank Rank { get; set; }
[JsonIgnore]
public Background Background { get; set; } = null!;
@@ -20,7 +20,7 @@ public class ClassTraining
public int? TrainingId { get; set; }
[Column(Order = 4)]
public TrainingStage Stage { get; set; }
public TrainingRank Rank { get; set; }
[JsonIgnore]
public Class Class { get; set; } = null!;
@@ -19,7 +19,7 @@ public class SubclassTrainings
public int TrainingId { get; set; }
[Column(Order = 4)]
public TrainingStage Stage { get; set; } = TrainingStage.Trained;
public TrainingRank Rank { get; set; } = TrainingRank.Trained;
public Subclass Subclass { get; set; } = null!;
+67
View File
@@ -0,0 +1,67 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Pf2eModel.Model.Base;
using Pf2eModel.Model.Common.I18n;
using Pf2eModel.Model.Enum;
using Pf2eModel.Model.Structure.RitualRelation;
namespace Pf2eModel.Model.Structure;
[EntityOfType(EntityType.Ritual)]
public class Ritual : IEntity
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Column(Order = 1)]
public int Id { get; set; }
public Entity Entity { get; set; } = null!;
[Column(Order = 2)]
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)]
public ElementEnum[] Elements { get; set; } = [];
[Column(Order = 6)]
public int Range { get; set; }
[Column(Order = 7)]
public TrainingRank PrimaryCheckRank { get; set; } = TrainingRank.Trained;
[Column(Order = 8)]
public LocaleString? PrimaryCheckSuffix { get; set; } = null;
[Column(Order = 9)]
public int SecondaryCasters { get; set; } = 0;
[Column(Order = 10)]
public int SecondaryCastersMax { get; set; } = 0;
[Column(Order = 11)]
public LocaleString? SecondaryCastersSuffix { get; set; } = null;
[Column(Order = 12)]
public LocaleString? RangeString { get; set; } = null;
[Column(Order = 13)]
public LocaleString? Target { get; set; } = null;
[Column(Order = 14)]
public LocaleString? Cost { get; set; } = null;
[Column(Order = 15)]
public LocaleString? Requirement { get; set; } = null;
public virtual RitualArea? Area { get; set; } = null;
public virtual ICollection<RitualCheck> Checks { get; set; } = [];
}
@@ -0,0 +1,23 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Pf2eModel.Model.Common.I18n;
using Pf2eModel.Model.Enum;
namespace Pf2eModel.Model.Structure.RitualRelation;
public class RitualArea
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Column(Order = 1)]
public int RitualId { get; set; }
[Column(Order = 2)]
[MaxLength(255)]
public LocaleString? Details { get; set; }
[Column(Order = 3)]
public SpellAreaType Type { get; set; }
public virtual Ritual Ritual { get; set; } = null!;
}
@@ -0,0 +1,34 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Pf2eModel.Model.Common;
using Pf2eModel.Model.Common.I18n;
using Pf2eModel.Model.Enum;
namespace Pf2eModel.Model.Structure.RitualRelation;
public class RitualCheck
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column(Order = 1)]
public int Id { get; set; }
[Column(Order = 2)]
public int RitualId { get; set; }
public Ritual Ritual { get; set; } = null!;
[Column(Order = 3)]
public int? TrainingId { get; set; }
public Training? Training { get; set; } = null!;
[Column(Order = 4)]
public LocaleString? TrainingString { get; set; } = null;
[Column(Order = 5)]
public TrainingRank Rank { get; set; }
[Column(Order = 6)]
public bool IsSecondary { get; set; }
}
+19 -12
View File
@@ -21,27 +21,36 @@ public class Spell : IEntity
public int Level { get; set; }
[Column(Order = 3)]
public ActionEnum Actions { get; set; } = ActionEnum.Other;
[Column(Order = 4)]
[MaxLength(255)]
public int? Duration { get; set; } = null;
[Column(Order = 5)]
public bool IsFocus { get; set; }
[Column(Order = 6)]
public SpellTradition[] Traditions { get; set; } = [];
[Column(Order = 4)]
public ActionEnum Actions { get; set; } = ActionEnum.Other;
[Column(Order = 5)]
[MaxLength(255)]
public int? Duration { get; set; } = null;
[Column(Order = 6)]
public int Range { get; set; }
[Column(Order = 7)]
public LocaleString? Trigger { get; set; } = null;
public SpellTradition[] Traditions { get; set; } = [];
[Column(Order = 8)]
public ElementEnum[] Elements { get; set; } = [];
[Column(Order = 9)]
public LocaleString? Trigger { get; set; } = null;
[Column(Order = 10)]
public LocaleString? Target { get; set; } = null;
[Column(Order = 11)]
public LocaleString? Cost { get; set; } = null;
[Column(Order = 12)]
public LocaleString? Requirement { get; set; } = null;
/*
[Column(Order = 4)]
public bool Counteraction { get; set; }
@@ -71,7 +80,5 @@ public class Spell : IEntity
public virtual ICollection<SpellArea> SpellAreas { get; set; } = [];
public virtual SpellRitual? SpellRitual { get; set; }
public virtual ICollection<SpellDefense> SpellDefenses { get; set; } = new List<SpellDefense>();
}
@@ -1,25 +0,0 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Pf2eModel.Model.Structure.SpellRelation;
public class SpellRitual
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Column(Order = 1)]
public int SpellId { get; set; }
[Column(Order = 2)]
[MaxLength(255)]
public string PrimaryCheck { get; set; } = null!;
[Column(Order = 3)]
public int SecondaryCasters { get; set; }
[Column(Order = 4)]
[MaxLength(255)]
public string SecondaryChecks { get; set; } = null!;
public virtual Spell Spell { get; set; } = null!;
}