// Generate By EToy
// Don't Edit It!!

using XGame.Framework.Database;
using XGame.Framework.Serialization;

namespace XGame.Database
{
    /// <summary> Epigraph </summary>
    public sealed class EpigraphTable : ITable
    {
        long ITable.Key => Id;

        /// <summary> 铭文ID </summary>
        public int Id { get; private set; }

        /// <summary> 图标 </summary>
        public string Icon { get; private set; } // c

        /// <summary> 名字 </summary>
        public string Name { get; private set; } // c

        /// <summary> 1: 白2：绿3：蓝4：紫5: 黄6：橙7：红8: 粉9：蓝钻10:鎏金11:璀璨 </summary>
        public EQualityLevel Quality { get; private set; }

        /// <summary> 元素系1：火2：雷3：冰4：毒5：风0：无元素 </summary>
        public EElementType Element { get; private set; }

        /// <summary> 效果参数 </summary>
        public int[] EffectArgs { get; private set; }

        void ISerializable.Deserialize(IReader reader)
        {
            Id = reader.ReadInt();
            Icon = reader.ReadString();
            Name = reader.ReadString();
            Quality = (EQualityLevel)reader.ReadInt();
            Element = (EElementType)reader.ReadInt();
            EffectArgs = reader.ReadEnumerable<int[]>();
        }

        void ISerializable.Serialize(IWriter writer)
        {
            writer.Write(Id);
            writer.Write(Icon);
            writer.Write(Name);
            writer.Write((int)Quality);
            writer.Write((int)Element);
            writer.Write(EffectArgs);
        }
    }
}
