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

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

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

        /// <summary> id品质*100000+部位*1000+等级 </summary>
        public int Id { get; private set; } // sc

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

        /// <summary> 1：武器2：其他 </summary>
        public int Type { get; private set; } // sc

        /// <summary> 装备等级 </summary>
        public int Level { get; private set; } // sc

        /// <summary> 生命 </summary>
        public int[] Hp { get; private set; } // sc

        /// <summary> 攻击 </summary>
        public int[] Atk { get; private set; } // sc

        /// <summary> 防御 </summary>
        public int[] Def { get; private set; } // sc

        /// <summary> 攻速攻速=值/10000 </summary>
        public int AtkSpeek { get; private set; } // sc

        void ISerializable.Deserialize(IReader reader)
        {
            Id = reader.ReadInt();
            Quality = (EQualityLevel)reader.ReadInt();
            Type = reader.ReadInt();
            Level = reader.ReadInt();
            Hp = reader.ReadEnumerable<int[]>();
            Atk = reader.ReadEnumerable<int[]>();
            Def = reader.ReadEnumerable<int[]>();
            AtkSpeek = reader.ReadInt();
        }

        void ISerializable.Serialize(IWriter writer)
        {
            writer.Write(Id);
            writer.Write((int)Quality);
            writer.Write(Type);
            writer.Write(Level);
            writer.Write(Hp);
            writer.Write(Atk);
            writer.Write(Def);
            writer.Write(AtkSpeek);
        }
    }
}
