protected override Spell GetEntity(ModelBuilder builder)
        {
            Spell spell = GetSpell();
            Table?table = GetTable(new TableBuilder());

            builder.AddTable(spell, table);
            builder.AddSourcePage(spell, GetSourcePage(), e => e.SourcePageId);
            builder.AddTraits(spell, GetTraits());
            builder.AddTextBlocks(spell, GetSpellDetailBlocks(), e => e.Details);
            builder.AddRollableEffects(spell, GetRollableEffects(), e => e.RollableEffects);
            builder.AddActionEffects(spell, GetActionEffects(), e => e.ActionEffects);
            builder.AddStaggeredEffect(spell, GetStaggeredEffect(), e => e.StaggeredEffectId);
            builder.HasJoinData <Spell, SpellComponent>(spell, GetSpellComponents());
            builder.HasJoinData <Spell, Creature>(spell, GetSummonedCreatures());

            foreach (SpellHeightening heightening in GetHeightenings())
            {
                builder.AddTextBlocks(heightening, heightening.Details, e => e.Details);

                heightening.Details = new TextBlock[0];
                heightening.SpellId = spell.Id;

                builder.AddData(heightening);
            }

            spell.TableId = table?.Id;
            return(spell);
        }
예제 #2
0
        protected override Stave GetEntity(ModelBuilder builder)
        {
            Stave stave = GetStave();

            builder.AddSourcePage(stave, GetSourcePage(), e => e.SourcePageId);
            builder.AddTraits(stave, GetTraits());
            builder.AddTextBlocks(stave, GetDetails(), e => e.Details);
            builder.AddActionEffects(stave, GetActionEffects(), e => e.Effects);

            foreach (StavePotencyBinding potency in GetPotencies())
            {
                potency.StaveId = stave.Id;

                foreach (StaveSpell spell in potency.Spells)
                {
                    spell.PotencyBindingId = potency.Id;
                    builder.AddData(spell);
                }
                potency.Spells = new StaveSpell[0];

                builder.AddTraits(potency, GetPotencyTraits(potency));
                builder.AddData(potency);
            }

            return(stave);
        }