using System.Runtime.InteropServices;
using Decal.Interop.SpellFilter;

namespace Decal.SpellFilter
{
    [ComVisible(true)]
    [Guid("3040368A-B77A-4FE1-B8CC-D77FA3F36A6D")]
    [ClassInterface(ClassInterfaceType.None)]
    [ProgId("SpellFilter.Spell")]
    public class SpellImpl : ISpell
    {
        public int SpellID { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public int SpellSchool { get; set; }
        public int Icon { get; set; }
        public int Effect { get; set; }
        public int Flags { get; set; }
        public int ManaCost { get; set; }
        public int Difficulty { get; set; }
        public float Economy { get; set; }
        public int SpellVersion { get; set; }
        public int SpellType { get; set; }
        public double Duration { get; set; }
        public bool Researchable { get; set; }
        public int Component { get; set; }
        public int Misc { get; set; }
        public float FUnknown1 { get; set; }
        public float FUnknown2 { get; set; }
        public float FUnknown3 { get; set; }
        public int LUnknown1 { get; set; }
        public int LUnknown2 { get; set; }
        public int LUnknown3 { get; set; }
        public int ComponentCount { get; set; }
        public int LUnknown4 { get; set; }
        public int LUnknown5 { get; set; }
        public int LUnknown6 { get; set; }
        public int TargetMask { get; set; }
        public float RangeBase { get; set; }
        public float RangeModifier { get; set; }
        public float Speed { get; set; }
        public int ID2 { get; set; }
        public int SortOrder { get; set; }
        public int Misc2 { get; set; }
        public int EffectOnCaster { get; set; }
        public int EffectOnTarget { get; set; }
        public double DurationUnk { get; set; }
    }
}
