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

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

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

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

        /// <summary> 等级期间 </summary>
        public int[] LevelPeriod { get; private set; }

        /// <summary> 掉落白色装备ID </summary>
        public int[] DropPool1 { get; private set; }

        /// <summary> 掉落绿色装备ID </summary>
        public int[] DropPool2 { get; private set; }

        /// <summary> 掉落蓝色装备ID </summary>
        public int[] DropPool3 { get; private set; }

        /// <summary> 掉落紫色装备ID </summary>
        public int[] DropPool4 { get; private set; }

        /// <summary> 掉落黄色装备ID </summary>
        public int[] DropPool5 { get; private set; }

        /// <summary> 掉落橙色装备ID </summary>
        public int[] DropPool6 { get; private set; }

        /// <summary> 掉落红色装备ID </summary>
        public int[] DropPool7 { get; private set; }

        /// <summary> 掉落粉色装备ID </summary>
        public int[] DropPool8 { get; private set; }

        /// <summary> 掉落蓝钻装备ID </summary>
        public int[] DropPool9 { get; private set; }

        /// <summary> 掉落鎏金装备ID </summary>
        public int[] DropPool10 { get; private set; }

        /// <summary> 掉落璀璨装备ID </summary>
        public int[] DropPool11 { get; private set; }

        void ISerializable.Deserialize(IReader reader)
        {
            Id = reader.ReadInt();
            LevelPeriod = reader.ReadEnumerable<int[]>();
            DropPool1 = reader.ReadEnumerable<int[]>();
            DropPool2 = reader.ReadEnumerable<int[]>();
            DropPool3 = reader.ReadEnumerable<int[]>();
            DropPool4 = reader.ReadEnumerable<int[]>();
            DropPool5 = reader.ReadEnumerable<int[]>();
            DropPool6 = reader.ReadEnumerable<int[]>();
            DropPool7 = reader.ReadEnumerable<int[]>();
            DropPool8 = reader.ReadEnumerable<int[]>();
            DropPool9 = reader.ReadEnumerable<int[]>();
            DropPool10 = reader.ReadEnumerable<int[]>();
            DropPool11 = reader.ReadEnumerable<int[]>();
        }

        void ISerializable.Serialize(IWriter writer)
        {
            writer.Write(Id);
            writer.Write(LevelPeriod);
            writer.Write(DropPool1);
            writer.Write(DropPool2);
            writer.Write(DropPool3);
            writer.Write(DropPool4);
            writer.Write(DropPool5);
            writer.Write(DropPool6);
            writer.Write(DropPool7);
            writer.Write(DropPool8);
            writer.Write(DropPool9);
            writer.Write(DropPool10);
            writer.Write(DropPool11);
        }
    }
}
