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); }
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); }