private void storeSpell(SpellSlot spell_slot, AbilityExecutionContext context)
            {
                var spell = getSpellOrVariant(spell_slot.Spell);

                FactStoreSpell.storeSpell(context.MaybeOwner.Descriptor, fact, spell);
                spendSpellSlot(spell_slot);
                spell.SpendMaterialComponent();
            }
 public bool CorrectCaster(UnitEntityData caster)
 {
     return(FactStoreSpell.hasSpellStoredInFact(caster.Descriptor, store_fact));
 }
 public override bool IsAvailable()
 {
     return(FactStoreSpell.hasSpellStoredInFact(Owner, fact));
 }